在生产者—消费者进程中,两个p操作为什么不能颠倒操作

来源:百度知道 编辑:UC知道 时间:2024/06/09 10:28:23
计算机操作系统的题目,请教各位高手!!!!!!!!!

第一回答已经很清晰了。为了大家更好明白。画了个图以便理解(结合第一回答进行理解)。

结论就是:p操作次序不能颠倒,v操作次序无关紧要。

最后 cpu只能在两个箭头键来回切换,陷入死锁!!!

如果将两个wait操作即wait(full)和wait(mutex)互换位置,或者将signal(mutex)与signal(full)互换位置,当缓冲区存满K件产品时。生产者又生产了一件产品,它欲向缓冲器存放时将在empty上等待,但它已经占有了使用缓冲器的权利。这时消费者要取产品时将停留在mutex上得不到使用缓冲器的权利,导致生产者等待消费者取走产品,而消费者却在等待生产者释放使用缓冲器的权利,这种相互等待永远结束不了。因此进程将会发生死锁。