P、V操作习题答案.doc

P、V操作习题答案.doc

ID:50944953

大小:71.00 KB

页数:9页

时间:2020-03-16

P、V操作习题答案.doc_第1页
P、V操作习题答案.doc_第2页
P、V操作习题答案.doc_第3页
P、V操作习题答案.doc_第4页
P、V操作习题答案.doc_第5页
资源描述:

《P、V操作习题答案.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、信号量应用问题:1.写出程序描述下列前趋关系。S1->S2,S1->S3,S2->S4,S2->S5,S3->S6,S4->S7,S5->S7,S6->S7Vars1,s2,s3,s4:semaphore:=0,0,0,0;BeginParbeginP1:begin….;V(s1);V(s1);End;P2:beginP(s1);…;V(s2);V(s2);End;P3:beginP(s1)…V(s3)End;P4:beginP(s2);…V(s4);P5:beginP(s2);..;V(s4);End;P6:beginP(s3)..V(

2、s4)End;P7:beginP(s4);P(s4);P(s4);…End;Parendend2.请用信号量实现4×100(4人,每人100米)接力赛的同步过程。提示:前趋图同步问题,可设4个进程,三个信号量,进程1只设V操作,进程4只设P操作,其余进程先做P操作再做V操作。Vars1,s2,s3:semaphore:=0,0,0;BeginParbeginAthlete1:beginRun100m;V(s1);End;Athlete2:beginP(s1)Run100m;V(s2);End;Athlete3:beginP(s2);Run

3、100m;V(s3);End;Athlete4:beginP(s3);Run100m;End;Parendend3.设公共汽车上,司机和售票员的活动分别是: 司机:    售票员:  启动车辆   上乘客  正常行车   关车门  到站停车   售票         开车门         下乘客 在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?请用信号量机制实现他们的同步。/-假定初始状态为停车状态,引入信号量Stop和Run: BEGIN  semaphoreStop,Run;  Stop:=Run:=0;  CoBeg

4、in   Driver: BEGIN         Repeat          Wait(Run);          启动车辆;          正常行驶;          到站停车;          Signal(Stop);         UntilFalse;        END;   Conductor:BEGIN         Repeat          上乘客;          关车门;          Signal(Run);          售票;          Wait(Stop);  

5、        开车门;          下乘客;         UntilFalse;        END;  CoEnd; END;生产者消费者问题:1.桌上有一个可以容纳两个水果的盘子,每次只能放或取一个水果。爸爸放苹果妈妈放橘子,两个儿子吃苹果,两个女儿吃橘子。试用信号量和P、V操作,编写实现爸爸、妈妈、儿子和女儿的并发工作程序。Mutex实现互斥放或取水果。empty盘子可放水果数Apple盘子中放的苹果数Orange盘子中放的橘子数Semaphoremutex=1;Semaphoreempty=2;Semahporeap

6、ple=0;Semahporeorange=0;Main(){CobeginFather();Mother();Son();Daughter();;Coend)}Father(){While(true){p(empty)P(mutex)放苹果V(mutex)V(apple)}}Mother(){While(true){p(empty)P(mutex)放橘子V(mutex)V(orange)}}Son(){While(true){p(apple)P(mutex)取苹果V(mutex)V(empty)}}Daughter(){While(tr

7、ue){p(orange)P(mutex)取橘子V(mutex)V(empty)}}2、有一个仓库存放两种零件A和B,最大库容量各为m个。有一车间不断地取A和B进行装配,每次各取一个。为了避免零件锈蚀,遵循线入库者先出库的原则。有两组供应商分别不断地供应A和B(每次一个),为保证齐套和合理库存,当某种零件的数量比另一种数量超过n(n

8、main() {CoBegin   Provider_A();   //零件A供应商   Provider_B();   //零件B供应商   Assembling_Shop();//装配车间

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。