操作系统PV操作操作系统PV操作
13、用P、V操作实现下述问题的解。
桌上有一个盘子,可以存放一个水果,父亲总是放苹果到盘子中,而母亲总是放香蕉到盘子
中;一个儿子专等吃盘中的香蕉,而一个女儿专等吃盘中的苹果。
答:盘子是临界资源,应设置一互斥信号量mutex来实现放水果的互斥,其初值为1.此外,
父亲和女儿、母亲和儿子之间存在同步关系,即分别设置信号量apple和banana来分别实现
这种同步关系,其初值均为0. 四个进程的并发程序如下: Begin
Mutex:=1;
apple:=0;banana:=0;
cobegin...
操作系统PV操作
13、用P、V操作实现下述问题的解。
桌上有一个盘子,可以存放一个水果,父亲总是放苹果到盘子中,而母亲总是放香蕉到盘子
中;一个儿子专等吃盘中的香蕉,而一个女儿专等吃盘中的苹果。
答:盘子是临界资源,应设置一互斥信号量mutex来实现放水果的互斥,其初值为1.此外,
父亲和女儿、母亲和儿子之间存在同步关系,即分别设置信号量apple和banana来分别实现
这种同步关系,其初值均为0. 四个进程的并发程序如下: Begin
Mutex:=1;
apple:=0;banana:=0;
cobegin
father:begin
repeat
p(mutex);
向盘中放苹果;
v(apple)
until false
end;
mother:begin
repeat
p(mutex);
向盘中放香蕉;
v(banana)
until false
end;
daughter:begin
repeat
p(apple)
取盘中苹果;
v(mutex)
until false
end;
son:begin
repeat
p(banana);
取盘中香蕉;
v(mutex)
until false
end
coend
end;
16、桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子;儿子专
等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,
请用P、V原语实现爸爸、儿子、女儿3个并发进程的同步。
答:
Begin
Plate:=1;apple:=0;orange:=0;
Cobegin
Father:begin
repeat
p(plate);
将水果放入盘中;
if 放入的是桔子 then V(orange)
else V(apple)
Until false
End;
Son: begin
repeat
p(orange);
从盘中取出桔子;
V(plate)
吃桔子
Until false
End;
Daughter: begin
repeat
p(apple);
从盘中取出苹果;
V(plate)
吃苹果
Until false
End
Coend
End;
本文档为【操作系统PV操作】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。