全部科目 > 程序员 >
2012年下半年 上午试卷 综合知识
第 26 题
知识点 进程间的通信  
章/节 软件基础知识  
 
 
某企业有生产部和销售部,生产部负责生产产品并送入仓库,销售部从仓库取产品销售。假设仓库可存放n件产品。用PV操作实现他们之间的同步过程如下图所示。

其中,信号量s是一个互斥信号量,初值为(25);S1是一个(26);S2是一个(27)。
 
  A.  互斥信号量,表示仓库的容量,初值为n
 
  B.  互斥信号量,表示仓库是否有产品,初值为0
 
  C.  同步信号量,表示仓库的容量,初值为n
 
  D.  同步信号量,表示仓库是否有产品,初值为0
 
 




 
 
相关试题     进程管理 

  第26题    2009年上半年  
假设系统中进程的三态模型如下图所示,图中的a和b处应分别填写(26) ,图 中的c和d处应分别填写(27).


  第25题    2015年上半年  
假设有5个进程共享一个互斥段X,如果最多允许2个进程同时进入互斥段X,则信号量S的变化范围是(25);若信号量S的当前值为-3,则表示系统中有(26)个正在等待该资源的进程。

  第26题    2009年上半年  
假设系统中进程的三态模型如下图所示,图中的a和b处应分别填写(26) ,图 中的c和d处应分别填写(27).


 
知识点讲解
· 进程间的通信
 
        进程间的通信
               同步与互斥
               在操作系统中,多个进程并发执行,因此进程间必然存在资源共享和相互合作的问题。
               1)进程间的同步
               一般情况下,一个进程相对于另一个进程的速度是不可预测的,也就是说,进程之间是异步运行的。为了成功地协同工作,有关进程在某些确定的点上应当保持同步:一个进程到达了这些点后,除非另一进程已经完成了某个活动,否则就停下来,等待该活动结束。
               同步是指进程之间的一种协同工作关系,使这些进程相互合作,共同完成一项任务。进程间的直接相互作用构成进程的同步。同步机制应满足的基本要求是:有描述能力、可以实现、效率高、使用方便。
               2)进程间的互斥
               在多道系统中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用。这种资源称为临界资源,如打印机、公共变量、表格等。互斥是要保证临界资源在某一时刻只被一个进程访问。
               3)临界区管理的原则
               临界区是进程中对临界资源实施操作的那段程序。对互斥临界区管理的原则是:有空即进、无空则等、有限等待、让权等待。
               信号量机制
               信号量机制是一种有效的进程同步与互斥工具。目前主要有:整型信号量、记录型信号量、信号量集机制。
               1)整型信号量与P操作和V操作
               信号量是一个整型变量,根据控制对象的不同被赋予不同的值。信号量分为两类:公用信号量,实现进程间的互斥,初值为1或资源的数目;私用信号量,实现进程间的同步,初值为0或某个正整数。
               信号量S的物理意义:S≥0表示某资源的可用数,若S<0,则其绝对值表示阻塞队列中等待该资源的进程数。
               除了设置初值外,对信号量只能进行特殊的操作:P操作和V操作。P操作和V操作都是不可分割的原子动作,也称为原语,其中P操作表示申请一个资源,V操作表示释放一个资源。
               P操作和V操作都是原语。利用信号量S的取值表示共享资源的使用情况。在使用时,把信号量S放在进程运行的环境中,赋予其不同的初值,并在其上实施P操作和V操作,以实现进程间的同步与互斥。
               P操作和V操作的定义如下。
               P(S):①S=S-1;②若S<0,则该进程进入S信号量的队列中等待。
               V(S):①S=S+1; ②若S≤0,则释放S信号量队列上的一个等待进程,使之进入就绪队列。
               当S>0时,表示还有资源可以分配;当S<0时,其绝对值表示信号量等待队列中进程的数目。每执行一次P操作,意味着要求分配一个资源;每执行一次V操作,就意味着释放一个资源。
               2)利用P操作和V操作实现进程的互斥
               令信号量mutex的初值为1,进入临界区时执行P操作,退出临界区时执行V操作,于是临界区就改写成下列形式的代码段:
               
               由于mutex初值为1, 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
软考在线版权所有