在某并发系统中,有一个发送进程A、一个接收进程B、一个环形缓冲区BUFFER、信号量S1和S2。发送进程不断地产生消息并写入缓冲区BUFFER,接收进程不断地从缓冲区BUFFER取消息。假设发送进程和接收进程可以并发地执行,那么,当缓冲区的容量为N时,如何

admin2005-03-20  41

问题 在某并发系统中,有一个发送进程A、一个接收进程B、一个环形缓冲区BUFFER、信号量S1和S2。发送进程不断地产生消息并写入缓冲区BUFFER,接收进程不断地从缓冲区BUFFER取消息。假设发送进程和接收进程可以并发地执行,那么,当缓冲区的容量为N时,如何使用P、V操作才能保证系统的正常工作。发送进程A和接收进程B的工作流程如图4-1所示。请在图4-1中的空(1)~(4)处填入正确的内容。
若系统中有多个发送进程和接收进程,进程间的工作流程如图4-2所示,其中空 (1)~(4)的内容与图4-1相同。发送进程产生消息并顺序地写入环形缓冲区BUFFER,接收者进程顺序地从BUFFER中取消息,且每条消息只能读取一次。为了保证进程间的正常通信,增加了信号量SA和SB。
   ①请说明信号量SA和SB的物理意义,并在图4-2中的空(5)和空(6)处填入正确的内容。
   ②请从图4-2的(a)~(1)中选择四个位置正确地插入P(SA)、V(SA)、P(SB)、V(SB)。

选项

答案表示允许同时对缓冲区进行写操作的进程数量 表示允许同时对缓冲区进行读操作的进程数量 P(SA)插入位置(b),V(SA)插入位置(f),P(SB)插入位置(h),V(SB)插入位置(k)。 解法2: 表示允许同时对缓冲区进行读操作的进程数量 表示允许同时对缓冲区进行写操作的进程数量 P(SB)插入位置(b),V(SB)插入位置(f),P(SA)插入位置(h),V(SA)插入位置(k)。

解析 当系统中有多个发送进程和接收进程时,对缓冲区的写操作应互斥地进行,并且发送进程对下标i的修改要顺序地进行:同时,要保证每个消息只能被读取1次,对缓冲区的读操作也要互斥地进行,并且接收进程对下标j的修改要顺序地进行。因此,信号量SA和SB用于对缓冲区的写、读操作进行互斥控制。
转载请注明原文地址:https://jikaoti.com/ti/9li7FFFM
0

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