问答题
试题四(15 分)
阅读下列说明和图,回答问题1 至问题3,将解答填入答题纸的对应栏内。
[说明]
在并发系统设计中,通过对信号量S 的P、V 操作实现进程的同步与互斥控制。
P(S):S:=S-1,若S≥0,则执行P 操作的进程继续执行;若S<0,则置该进程为阻塞状态,并将其插入阻塞队列。
V(S):S:=S+1,若S>0,则执行V 操作的进程继续执行;若S≤0,则从阻塞队列唤醒一个进程,并将其插入就绪队列,然后执行V 操作的进程继续执行。
问答题
[问题1](4 分)
在某并发系统中,有一个发送进程A、一个接收进程B、一个环形缓冲区BUFFER、信号量S1 和S2。发送进程不断地产生消息并写入缓冲区BUFFER,接收进程不断地从缓冲区BUFFER 取消息。假设发送进程和接收进程可以并发地执行,那么,当缓冲区的容量为N 时,如何使用P、V 操作才能保证系统的正常工作。发送进程A 和接收进程B 的工作流程如图4-1 所示。请在图4-1 中的空(1)~(4)处填入正确的内容。
[图4-1]
【正确答案】(1)P(S1) (2)V(S2) (3)P(S2) (4)V(S1)
【答案解析】
问答题
[问题2](5 分)
若系统中有多个发送进程和接收进程,进程间的工作流程如图4-2 所示,其中空(1)~(4)的内容与图4-1 相同。发送进程产生消息并顺序地写入环形缓冲区BUFFER,接收者进程顺序地从BUFFER 中取消息,且每条消息只能读取一次。为了保证进程间的正常通讯,增加了信号量SA 和SB。
① 请说明信号量SA 和SB 的物理意义,并在图4-2 中的空(5)和空(6)处填入正确的内容。
② 请从图4-2 的(a)~(l)中选择四个位置正确地插入P(SA)、V(SA)、P(SB)、V(SB)。
[图4-2]
【正确答案】1、(5)1,表示允许同时对缓冲区进行写操作的进程数量(0.5 分)
(6)1,表示允许同时对缓冲区进行读操作的进程数量(0.5 分)
2、解法1

解法2

【答案解析】
问答题
[问题3](6 分)
设系统中只有进程A 和进程B,除了互斥地使用CPU 和打印机R 外,进程A 和B 不使用其他资源。另外,进程B 的优先级比A 高,而进程A 先于B 准备好。进程A 和B 的执行情况如图4-3 所示,其中粗实线表示进程在执行中,细实线表示打印机R 在使用中。(每个进程具有三种状态:运行、就绪和阻塞)
请分别说明进程A 和B 在图4-3 所示的t1、t2、t3、t4 时刻所处的状态;若是阻塞状态,请说明阻塞原因。
[图4-3]
【正确答案】 
【答案解析】