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

admin2005-03-20  43

问题 在某并发系统中,有一个发送进程A、一个接收进程B、一个环形缓冲区BUFFER、信号量S1和S2。发送进程不断地产生消息并写入缓冲区BUFFER,接收进程不断地从缓冲区BUFFER取消息。假设发送进程和接收进程可以并发地执行,那么,当缓冲区的容量为N时,如何使用P、V操作才能保证系统的正常工作。发送进程A和接收进程B的工作流程如图4-1所示。请在图4-1中的空(1)~(4)处填入正确的内容。
设系统中只有进程A和进程B,除了互斥地使用CPU和打印机R外,进程A和B不使用其他资源。另外,进程B的优先级比A高,而进程A先于B准备好。进程A和 B的执行情况如图4-3所示,其中粗实线表示进程在执行中,细实线表示打印机R在使用中(每个进程具有三种状态:运行、就绪和阻塞)。

请分别说明进程A和B在图4-3所示的t1、t2、t3、t4时刻所处的状态;若是阻塞状态,请说明阻塞原因。

选项

答案[*]

解析 从题目中给出的进程A和B的执行情况可知,由于进程A先就绪,所以进程A先开始执行,当进程A使用打印机R时,就释放CPU。在进程A释放 CPU期间,进程B准备就绪而CPU空闲,所以进程B开始执行。在t1时刻,进程A在等待打印机R工作结束,所以处于阻塞状态,而进程B显然在运行状态。在t2时刻,进程A仍然在等待打印机R工作结束,所以处于阻塞状态,而进程B则由于需要使用临界声源R而进入阻塞状态。在t3时刻,进程A处于运行状态,而进程B则由于等待打印机R工作结束而处于阻塞状态。当进程B使用完打印机R后,由于其优先级高于进程A,所以将CPU分配给进程B而使得进程A转入就绪状态。因此在t4时刻,进程 B在运行而进程A处于就绪状态。
转载请注明原文地址:https://jikaoti.com/ti/Cli7FFFM
0

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