进程P不断地从外部设备输入数据后通过缓冲区K向进程Q成批(以缓冲区大小为单位)传送,进程Q接到数据并做进一步处理后通过缓冲区T向进程S成批传送,进程R接到数据后将它们打印出来,K和T大小一样。要求打印数据的次序与进程P接收数据的次序一样。 为了在保证结果

admin2009-02-15  187

问题 进程P不断地从外部设备输入数据后通过缓冲区K向进程Q成批(以缓冲区大小为单位)传送,进程Q接到数据并做进一步处理后通过缓冲区T向进程S成批传送,进程R接到数据后将它们打印出来,K和T大小一样。要求打印数据的次序与进程P接收数据的次序一样。

为了在保证结果正确性的前提下尽可能并行工作,需要设置(23)。

选项 A、两个信号量,初值分别为0,1
B、3个信号量,初值分别为1,1,0
C、4个信号量,初值分别为1,0,1,0
D、5个信号量,初值分别为1,0,1,1,0

答案C

解析 本题是考查信号量概念与P、V操作的实际运用,解决进程之间的同步与互斥问题。这个问题看起来是两对生产者与消费者组合的问题。由于进程P、Q、R存在着供给与消费的关系,这种关系体现了一种次序依赖关系。一方面,进程Q必须等待进程P接收到一批数据并将其放入缓冲区K后才可以取来加工,进程R必须等待进程Q将一批数据加工完成并放入缓冲区T以后才可以取来打印;另一方面,进程P必须等待进程Q取走缓冲区K的数据后才能将下一批数据放入K中,进程Q必须等进程R将缓冲区T的数据取走进行打印后才可以将加工好了的下一批数据放入T中。但是,进程P和Q之间并没有直接的依赖关系。因此,系统呈现这样一种工作流程:
        
   因此,进程P和Q之间存在两个同步条件,需要有两个信号量S1和S2来保证进程P和Q的同步关系,它们的初值分别为1和0;进程Q和R之间也一样,需要有两个信号量 S1和S2来保证它们的同步关系,初值也分别是1和0。
   下图表示这3个进程的工作流程。
转载请注明原文地址:https://kaotiyun.com/show/v3xZ777K
0

相关试题推荐
最新回复(0)