- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
同步与互斥实例
进程同步与互斥实例;同步实例;1.经典的生产者─消费者问题;1.经典的生产者─消费者问题;2.实例;解:由上图可见,系统可设3个进程:输入进程、复制进程、打印进程;分别用进程R、进程C、进程P来表示。
这些进程之间的相互制约关系:
R受C的约束;C受R、P的约束;P受C的约束。
设4个信号量:S1=1,S2=0,S3=1,S4=0
同步算法如下:;3.理发师问题;记录型信号量解决理发师问题;互斥实例;; (1) A、B、C三个进程之间存在互斥的制约关系。因为打印机属于临界资源,必须一个进程使用完之后另一个进程才能使用。
(2)mutex:用于互斥的信号量,初值为1。
各进程的代码如下 :
进程A 进程B 进程C
... … ...
... … ...
P(mutex) P(mutex) P(mutex)
申请打印机 申请打印机 申请打印机
使用打印机 使用打印机 使用打印机
V(mutex) V(mutex) V(mutex);;Var S, mutex1, mutex2: semaphore;
S:=100; mutex1:=1; mutex2:=1
process Pi:
begin
P(S);
P(mutex1);
进入口处,取一只篮子;
V(mutex1);
选购商品;
P(mutex2);
结账,并归还篮子;
V(mutex2);
V(S);
end;;Var mutex: semaphore;;;Var S, S1, S2: semaphore;
rc1,rc2: integer;
S, S1, S2:=1;
rc1,rc2:=0; ;拣棋子问题。生产围棋的工人不小心把相等数量的黑棋子和白棋混装在一个箱子里,先要用自动分拣系统把黑棋子和白棋子分开,该系统由两个并发执行的进程组成,系统功能如下:
(1)进程A专门拣黑子,进程B专门拣白子;
(2)每个进程每次只拣一个子,当一个进程在拣子时不允许另一进程去拣子;
(3)当一个进程拣了一个子(黑或白)以后,必让另一个进程拣一个子(黑或白) 。
请用P、V操作管理两个并发进程,使其能正确实现上述功能。;Var S1, S2: semaphore:=1,0;;;Var mutex1, mutex2, empty, full, count: semaphore;
mutex1:=1; mutex2:=1;
empty:=10; full:=0; count:=3;;习题;2.吸烟者问题
三个吸烟者在一间房间内,还有一个香烟供应者??为了制造并抽掉香烟,每个吸烟者需要三样东西:烟草、纸和火柴。供应者有丰富的货物提供。三个吸烟者中,第一个有自己的烟草,第二个有自己的纸,第三个有自己的火柴。供应者将两样东西放在桌子上,允许一个吸烟者进行对健康不利的吸烟。当吸烟者完成吸烟后唤醒供应者,供应者再放两样东西(随机地)在桌面上,然后唤醒另一个吸烟者。试为吸烟者和供应者采用信号量机制解决问题。
;同步与互斥的解题思路;同步与互斥的解题步骤
文档评论(0)