列表

详情


某系统中有一个缓冲区,进程P1不断地生产产品送入缓冲区,进程P2不断地从缓冲中取产品消费。假设该缓存区只能容纳一个产品。进程P1和P2的同步模型如下图所示:

为此,应设信号量S1的初值为() ,信号量S2的初值为() 。

第 1 问

A. -2

B. -1

C. 0

D. 1

第 2 问

A. -2

B. -1

C. 0

D. 1

参考答案: D C

详细解析:

由于系统中只有一个缓冲区,需要设置一个信号量S1,且初值为1,表示缓冲区空,可以将产品送入缓冲区。为了实现P1与P2进程间地同步间题,设置另一个信号量S2,且初值为O,表示缓冲区有产品。这样,当生产者进程P1生产产品送入缓冲区时需要判断缓冲区是否为空,需要执行P(S1),产品放入缓冲区后需要执行V(s2),通知消费者缓冲区已经有产品。而消费者进程P2在取产品消费之前必须判断缓冲区是否有产品,需要执行P(S2),取走产品后缓冲区空了,需要执行V(S1),释放缓冲区。

上一题