第2章PV练习.ppt
《第2章PV练习.ppt》由会员分享,可在线阅读,更多相关《第2章PV练习.ppt(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、现有输入进程PI、计算进程PC、输出进程PO并发执行。三进程共享两个缓冲区。如图所示:N1N2PIPCPOB1B2PI每次读入一个数据,放入到B1中,B1大小为N1。PC每次从B1中拿出一个数据计算,然后将结果放入B2中,B2大小为N2。PO每次从B2中拿出一个数据进行输出。要求设置合适的同步机制,保证这三个进程的同步执行。对B1、B2要求互斥访问解答假定有三个进程假定有三个进程R、W1、W2共享一个缓冲区共享一个缓冲区Buffer。进程进程R读入数据放到缓冲区读入数据放到缓冲区Buffer中;若缓冲区中的中;若缓冲区中的数为奇数,则进程数为奇数,则进程W1将其取出显示;若缓冲区中的将其取出显
2、示;若缓冲区中的数为偶数,则进程数为偶数,则进程W2将其取出显示。对它们有如下将其取出显示。对它们有如下的限制条件:的限制条件:1)缓冲区中每次只能存放一个数)缓冲区中每次只能存放一个数2)只有当缓冲区中没有数,或)只有当缓冲区中没有数,或W1或或W2将数取走后,将数取走后,进程进程R才可以将新读入的数放到缓冲区中。才可以将新读入的数放到缓冲区中。3)进程)进程W1或或W2对每次存入缓冲区中的数只能显示对每次存入缓冲区中的数只能显示一次,且一次,且W1和和W2都不能从空的缓冲区中取数。都不能从空的缓冲区中取数。假定开始时,缓冲区为空。利用记录型信号量及假定开始时,缓冲区为空。利用记录型信号量及
3、wait、signal操作写出三个并发进程正确工作程序。操作写出三个并发进程正确工作程序。解答某高校计算机系开设网络课并安排上机实习,假设某高校计算机系开设网络课并安排上机实习,假设机房共有机房共有2m台机器,有台机器,有2n名学生,规定:名学生,规定:每两个学生组成一组,各占一台机器,协同完成上每两个学生组成一组,各占一台机器,协同完成上机实习;机实习;只有一组两个学生到齐,并且此时机房有空闲机器只有一组两个学生到齐,并且此时机房有空闲机器时,该组学生才能进入机房;时,该组学生才能进入机房;上机实习由一名教师检查,当学生上完机后,教师上机实习由一名教师检查,当学生上完机后,教师检查完一组学生
4、的实习后,这组学生才能同时离开。检查完一组学生的实习后,这组学生才能同时离开。试用试用P,V操作模拟上机实习的过程。操作模拟上机实习的过程。(提示:除了有学生和教师进程外,还应该有门卫(提示:除了有学生和教师进程外,还应该有门卫进程)进程)解答varvar s,s1,s2:semaphore:=1,0,0 s,s1,s2:semaphore:=1,0,0begin begin parbeginparbegin PR:begin PR:begin repeat repeat 从输入设备读到一个数从输入设备读到一个数B;B;wait(s);wait(s);放入放入;if B=if B=奇数奇数 t
5、hen then signal(s1);signal(s1);else signal(s2);else signal(s2);until false;until false;end;end;PW1:begin PW1:begin repeat repeat wait(s1);wait(s1);x:=B;x:=B;signal(s);signal(s);打印打印x;until false;end;PW2:begin PW2:begin repeat repeat wait(s2);wait(s2);y:=B;y:=B;signal(s);signal(s);打印打印y;until false;e
6、nd;parendparendstudent:=0;computer:=2m enter:=0 finish:=0 test:=0;student:begin P(computer);得到一台计算机;得到一台计算机 V(student);有学生来,通知门;有学生来,通知门卫卫 P(enter);等待进入等待进入 Practice;V(finish);结束,通知教师结束,通知教师 P(test);等待教师检查等待教师检查 V(computer);释放计算机资源释放计算机资源 End;Teacher:begin P(finish);等待学生实习结束等待学生实习结束 P(finish);等另一学生实
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PV 练习
限制150内