p(mutex); 将产品入库
v(mutex);
v(pa);
}
}
}
8.这个问题实际上是两个生产者和两个消费者被连结到仅能放一个产品的缓冲器上。生产者各自生产不同的产品,但就其本质而言,他们是同一类生产者。而消费者则各自取需要的产品消费,他们的消费方式不同。实现爸爸、妈妈、儿子和女儿正确同步工作的程序如下:
var
plate : integer;
sp:semaphore; /* 盘子里可以放几个水果 */ sg1:semaphore; /* 盘子里有香蕉 */ sg2:semaphore; /* 盘子里有苹果 */ sp := 1; /* 盘子里允许放入一个水果*/ sg1:= 0; /* 盘子里没有香蕉 */ sg2:= 0; /* 盘子里没有苹果*/ cobegin process father begin L1: 削一个苹果; P(sp); 把苹果放入plate; V(sg2); goto L1; end; process mother begin L2: 剥一个香蕉; P(sp); 把桔子放入plate; V(sg1); goto L2; end; process son begin L3: P(sg1); 从plate 中取香蕉; V(sp); 吃桔子; goto L3; end; process daughter begin L4: P(sg2);
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库操作系统试题库(及其答案),让你完美掌握操作系统(11)在线全文阅读。
相关推荐: