《P6,它们有如下图的并发关系,试用P、V操作实现这些进程间的同.doc》由会员分享,可在线阅读,更多相关《P6,它们有如下图的并发关系,试用P、V操作实现这些进程间的同.doc(2页珍藏版)》请在三一办公上搜索。
1、1. 现有六个进程P1、P2、P6,它们有如下图的并发关系,试用P、V操作实现这些进程间的同步。解:设8个同步信号量a,b,c,d,e,f,g,h分别表示进程间的前驱关系初始值均为0,如下图所示:1.P1()V(a);2.P2()P(a);V(b);V(c);V(d);3.P3()P(b);V(e);4.P4()P(c);V(f);5.P5()P(d);V(g);6.P6()P(e);P(f);P(g);V(h);2. 有一个阅览室,读者进入时须先在一张登记表上填写登记信息,该表为每一座位列出一个表目,包括座号、姓名。读者离开时要撤消登记信息。阅览室有100个座位,试问: 应该设置几个进程?编
2、制几段程序?进程和程序之间的对应关系如何? 试用P、V操作描述这些进程间的同步算法。解:每个读者设立一个进程,100个读者进程共同对应一个程序。动作有3种:1. 进入读书馆登记;2. 进入读书馆阅读;3. 离开读书馆撤销登记。设信号量seats表示空座位个数,初始值为100;设信号量readers表示被读者数,初始值为0, 设信号量mutex为共享的登记表这一临界资源,初始值为1。getin()while(true)P(seats);P(mutex); 登记 入馆阅读V(mutex);getout()while(true)P(readers);P(mutex); 撤销登记 离馆V(mutex);V(seats);