P、V操作习题答案.doc
- 文档编号:4844002
- 上传时间:2023-05-07
- 格式:DOC
- 页数:9
- 大小:71KB
P、V操作习题答案.doc
《P、V操作习题答案.doc》由会员分享,可在线阅读,更多相关《P、V操作习题答案.doc(9页珍藏版)》请在冰点文库上搜索。
信号量应用问题:
1.写出程序描述下列前趋关系。
S1->S2,S1->S3,S2->S4,S2->S5,S3->S6,S4->S7,S5->S7,S6->S7
Vars1,s2,s3,s4:
semaphore:
=0,0,0,0;
Begin
Parbegin
P1:
begin
….;
V(s1);
V(s1);
End;
P2:
begin
P(s1);
…;
V(s2);
V(s2);
End;
P3:
begin
P(s1)
…
V(s3)
End;
P4:
begin
P(s2);
…
V(s4);
P5:
begin
P(s2);
..;
V(s4);
End;
P6:
begin
P(s3)
..
V(s4)
End;
P7:
begin
P(s4);
P(s4);
P(s4);
…
End;
Parend
end
2.请用信号量实现4×100(4人,每人100米)接力赛的同步过程。
提示:
前趋图同步问题,可设4个进程,三个信号量,进程1只设V操作,进程4只设P操作,其余进程先做P操作再做V操作。
Vars1,s2,s3:
semaphore:
=0,0,0;
Begin
Parbegin
Athlete1:
begin
Run100m;
V(s1);
End;
Athlete2:
begin
P(s1)
Run100m;
V(s2);
End;
Athlete3:
begin
P(s2);
Run100m;
V(s3);
End;
Athlete4:
begin
P(s3);
Run100m;
End;
Parend
end
3.设公共汽车上,司机和售票员的活动分别是:
司机:
售票员:
启动车辆 上乘客
正常行车 关车门
到站停车 售票
开车门
下乘客
在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?
请用信号量机制实现他们的同步。
/-假定初始状态为停车状态,引入信号量Stop和Run:
BEGIN
semaphoreStop,Run;
Stop:
=Run:
=0;
CoBegin
Driver:
BEGIN
Repeat
Wait(Run);
启动车辆;
正常行驶;
到站停车;
Signal(Stop);
UntilFalse;
END;
Conductor:
BEGIN
Repeat
上乘客;
关车门;
Signal(Run);
售票;
Wait(Stop);
开车门;
下乘客;
UntilFalse;
END;
CoEnd;
END;
生产者消费者问题:
1.桌上有一个可以容纳两个水果的盘子,每次只能放或取一个水果。
爸爸放苹果妈妈放橘子,两个儿子吃苹果,两个女儿吃橘子。
试用信号量和P、V操作,编写实现爸爸、妈妈、儿子和女儿的并发工作程序。
Mutex实现互斥放或取水果。
empty盘子可放水果数
Apple盘子中放的苹果数
Orange盘子中放的橘子数
Semaphoremutex=1;
Semaphoreempty=2;
Semahporeapple=0;
Semahporeorange=0;
Main()
{
Cobegin
Father();
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(true)
{p(orange)
P(mutex)
取橘子
V(mutex)
V(empty)}
}
2、有一个仓库存放两种零件A和B,最大库容量各为m个。
有一车间不断地取A和B进行装配,每次各取一个。
为了避免零件锈蚀,遵循线入库者先出库的原则。
有两组供应商分别不断地供应A和B(每次一个),为保证齐套和合理库存,当某种零件的数量比另一种数量超过n(n 试用P、V操作正确实现之。 semaphoremutex=1,emptya=emptyb=m,fulla=fullb=0,sa=sb=n; main() {CoBegin Provider_A(); //零件A供应商 Provider_B(); //零件B供应商 Assembling_Shop();//装配车间 CoEnd } Provider_A() {while(true) {p(emptya); p(sa); p(mutex); 将零件A放入仓库; v(mutex); v(fulla); v(sb); } } Provider_B() {while(true) {p(emptyb); p(sb); p(mutex); 将零件B放入仓库; v(mutex); v(fullb); v(sa); } } Assembling_Shop() {while(true) {p(fulla); p(fullb); p(mutex); 装配零件; v(mutex); v(emptya); v(emptyb); } } 3、有一个仓库,可以存放A和B两种产品,仓库的存储空间足够大,但要求: 每次只能存入一种产品(X或Y);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作 习题 答案
![提示](https://static.bingdoc.com/images/bang_tan.gif)