为什么要在生产者和消费者的同步问题中加入互斥信号量mutex,而在计算进程和打印进程的两个进程之间的同步问题中不要加入互斥信号量mutex?

admin2016-05-14  35

问题 为什么要在生产者和消费者的同步问题中加入互斥信号量mutex,而在计算进程和打印进程的两个进程之间的同步问题中不要加入互斥信号量mutex?

选项

答案由于在生产者和消费者问题中的两个信号量buffers和products的值都可以大于1,因此就可能发生有多个生产者进程和消费者进程同时通过semWait(buffers)和sereSignal(products)操作,进入缓冲区存或取产品的情况。由于存放产品的缓冲区是一种数据结构,本身也是临界资源,故对该部分的操作是一个临界段,各个进程也要互斥地执行。 在计算进程和打印进程的两个进程之间的同步问题中,由于受对方的制约,两个进程不可能同时访问缓冲区,故这种同步中就隐含了互斥。如果像生产者和消费者问题一样,也加入互斥信号量mutex,尽管没有问题,但是这是没有必要的。

解析
转载请注明原文地址:https://jikaoti.com/ti/QsEaFFFM
本试题收录于: 操作系统题库理工类分类
0

最新回复(0)