电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

P.V操作(典型例题)VIP免费

P.V操作(典型例题)_第1页
1/9
P.V操作(典型例题)_第2页
2/9
P.V操作(典型例题)_第3页
3/9
2. 3. 有个寺庙,庙中有个小和尚和老和尚若干人,有一只水缸,由小和尚提水入缸给老和尚饮用。水缸可容10 桶水,水取自同一口水井中。水井径窄,每次仅能容一只水桶取水,水桶总数为3 个。若每次只能入缸一桶水和取缸中一桶水,而且还不可以同时进行。试用一种同步工具写出小和尚和老和尚入水、取水的活动过程。 4. 答:本题为两个进程共享两个缓冲区的问题。首先考虑本题有几个进程:从井中取 水后向缸中倒水此为连续动作,为一个进程;从缸中取水为另一个进程。 其次考虑信号量,有关互斥的 有:水井和水缸。水井一次仅能一个水桶进出,水缸一次入、取水为一桶。分别设互斥信号量为:mutex1 和mutex2 控制互斥。有关同步问题为:三个水桶无论从井中取水还是入出水缸都是一次一个,应为它设信号量 count,抢不到水桶的进程只好等待。水缸满时不可入水,设信号量为empty,控制水量,水缸空时不可出水,设信号量 full,控制出水量。 设置信号量初值:mutex1:=mutex2:=1;count:=3;empty:=10;full:=0; Parbegin ﹛ 小和尚打水进程: Begin P(empty); P(count); P(mutex1); 从井中打水; V(mutex1); P(mutex2); 倒水入缸; V(mutex2); V(count); V(full); End 老和尚取水进程: Begin P(full); P(count); P(mutex2); 从缸中取水; V(mutex2); V(count); V(empty); End } Parend. 2. 假定一个阅览室可供50 个人同时阅读。读者进入和离开阅览室时都必须在阅览室入口处的一个登记表上登记,阅览室有50 个座位,规定每次只允许一个人登记或注销登记。要求:(1)用PV 操作描述读者进程的实现算法(可用流程图表示,登记、注销可用自然语言描述); (2)指出算法中所用信号量的名称、作用及初值。 解 S1:阅览室可供使用的空座位,其初值为50 S: 是否可通过阅览室,其初值为1 Process READ_in(i=1…50) {到达阅览室入口处; P(S1);P(S); 在入口处登记座位号; V(s); 进入座位并阅读; } Process READ_out(j=1…50) {结束阅读到达阅览室入口处; P(S); 在入口处注销座位号; V(S1);V(S) 离开入口处; } ●N 个并发进程公用一个公共变量Q,信号灯进程: main() { begin s=1; cobegin p1();p2();… pn(); coend } Pi() { P(s) … V(s) } 其中i=1、2…n ●用户 A、B、C 打印进程(间接相互制约关系):s 初值为 ...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

P.V操作(典型例题)

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部