在两个进程间的同步,如计算进程和打印进程的经典例子中,为什么对一个缓冲区要设置两个变量,是否能只设置一个变量,例如,当为0(缓冲区没数据)时P1执行,为1(缓冲区有数据)时,P2执行,可以这样实现吗?

admin2016-05-14  31

问题 在两个进程间的同步,如计算进程和打印进程的经典例子中,为什么对一个缓冲区要设置两个变量,是否能只设置一个变量,例如,当为0(缓冲区没数据)时P1执行,为1(缓冲区有数据)时,P2执行,可以这样实现吗?

选项

答案要采用这个方法,该变量一定要是共享变量,如通过共享内存机制分配,对该变量要互斥访问,如果用纯软件实现将比较复杂。另外还要专门设计分别针对这两个用户进程的阻塞和唤醒操作,这要求这两个独立进程要是互相可见的(要有权限,至少要知道对方的标识数),而不能采用轮询的耗费处理机时间的方法,这样做还不如使用两个信号量实现两个进程间的同步。

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

最新回复(0)