全部科目 > 软件设计师 >
2017年上半年 上午试卷 综合知识
第 28 题
知识点 进程间的通信  
章/节 计算机软件知识  
 
 
进程P1、P2 、P3、P4 和P5的前趋图如下所示:



若用PV操作控制进程P1、P2、P3、P4和P5并发执行的过程,需要设置5个信号量S1、S2、S3、S4和S5,且信号量S1~S5的初值都等于零。如下的进程执行图中a和b处应分别填写(26);c和d处应分别填写(27);e和f处应分别填写(28) 。

 
  A.  P(S4)和V(S5)
 
  B.  V(S5)和P(S4)
 
  C.  V(S4)和P(S5)
 
  D.  V(S4)和V(S5)
 
 




 
 
相关试题     进程管理 

  第27题    2016年下半年  
假设系统中有n个进程共享3台扫描仪,并采用PV操怍实现进程同步与互斥。若系统信号量S的当前值为-1,进程P1、P2又分别执行了1次P(S)操作,那么信号量S的值应为(27)。

  第26题    2013年上半年  
进程资源图如图(a)和(b)所示,其中:图(a)中(25);图(b)中(26)。

  第25题    2013年上半年  
进程资源图如图(a)和(b)所示,其中:图(a)中(25);图(b)中(26)。

 
知识点讲解
· 进程间的通信
 
        进程间的通信
               同步与互斥
               同步是合作进程间的直接制约问题,互斥是申请临界资源进程间的间接制约问题。
               1)同步
               相互合作的进程需要在某些确定点上协调它们的工作,当一个进程到达这些点后,除非另一个进程已经完成某些操作;否则就不得不停下来等待这些操作结束。这就是进程间的同步。
               2)互斥
               在多道程序系统中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,称为临界资源。这就产生了进程间的间接制约问题——互斥。
               3)临界区管理的原则
               临界区是进程中对临界资源实施操作的那段程序。互斥临界区管理的原则是:有空即进,无空则登;有限等待,让权等待。
               信号量与P、V操作
               信号量机制主要有整型信号量、记录性信号量、信号量集机制。
               1)整型信号量与P、V操作
               信号量是一个整型变量,根据控制对象的不同赋予不同的值。信号量可分为以下两类。
               (1)公用信号量。实现进程间的互斥,初值为1或资源的数目。
               (2)私用信号量。实现进程间的同步,初值为0或某个正整数。
               信号量S的物理意义为:S≥0,表示某资源的可用数;S<0,其绝对值表示阻塞队列中等待该资源的进程数。P、V操作是实现进程同步与互斥的常用方法。
               P操作定义:S:=S-1,若S≥0,则执行P操作的进程继续执行;否则,若S<0,则置该进程为阻塞状态,并将其插入阻塞队列。
               V操作定义:S:=S+1,若S>0,则执行V操作的进程继续执行;否则,若S≤0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,执行V操作的进程继续执行。
               2)利用P、V操作实现进程的互斥
               令信号量的初值为1,当进程进入临界区时执行P操作,退出临界区时执行V操作。则进入临界区的代码段如下。
               
               3)利用P、V操作实现进程的同步
               进程的同步是由于进程间合作而引起的相互制约问题。要实现进程的同步,可用一个信号量与消息联系起来。当信号量的值为0时表示消息未产生,当信号量的值为非0时表示希望的消息已经存在。假定用信号量S表示某条消息,进程可以通过调用P操作测试消息是否达到,调用V操作通知消息已经准备好。
               高级通信原语
               P、V操作是用来协调进程间关系的,编程较困难、效率低,通信对用户不透明,生产者每次只能向缓冲区放一个消息,消费者只能从缓冲区中取一个消息。所以交换的信息量多时要引入高级通信原语。进程高级通信的类型主要有以下几种。
               (1)共享存储系统。相互通信的进程共享某些数据结构或存储区,以实现进程之间的通信。
               (2)消息传递系统。进程间的数据交换以消息为单位,程序员直接利用系统提供的一组通信命令(原语)来实现通信,如Send(A)、Receive(A)。
               (3)管道通信。管道是指用于连接两个进程之间的一个打开的共享文件(pipe文件)。向管道(共享文件)提供输入的发送进程(即写进程),以字符流的形式将大量的数据送入管道;而接收进程可从管道的另一端接收大量的数据。由于通信时采用管道,所以叫管道通信。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有