pv操作习题
摘要:设一民航售票系统有n个售票处。每个售票处通过终端访问系统中的公用数据区,假定公用数据区中分别用R1、R2、R3、…Rn表示×月×日×次航班的现存票数。设P1、P2、P3、Pn表示各售票处的处理进程,试用信号量实现进程间的互斥关系Vars:semaphore:=1;beginparbeginprocessPi:beginrepeatWait(s);按旅客定票要求找到RkifRk>=1thenbeginRk=Rk-1;Signal(s);输出一张票;end;elsebeginSignal(s);输出“票已售完”;end;untilfalse;endparendend生产围棋的工人不小心把相等数量的黑子和白子混装在一个箱子里,现要用自动分拣系统把黑子和白子分开,该系统由两个并发执行的进程组成,功能如下:(1)进程A专门拣黑子,进程B专门拣白子;(2)每个进程每次只拣一个子,当一个进程在拣子时不允许另一个进程去拣子;s:semaphore:=1;parbeginprocessA:beginL1:Wait(s);拣黑子;Signal(s);gotoL1;end;processB:beginL2:Wait(s);拣白子;Signal(s);gotoL2;end;parend;某车站售票厅共有20个售票窗口,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,厅外的购票者可立即进入,否则需要在外面等待。每个购票者可看成一个进程。s:semaphore=20;parbeginprocessPi(i=1,2,……)beginWait(s);进入售票厅;购票
温馨提示:当前文档最多只能预览
5 页,若文档总页数超出了
5 页,请下载原文档以浏览全部内容。
本文档由 匿名用户 于 2022-07-27 23:11:49上传分享