1 / 11
文档名称:

计算机操作系统PV操作例题.docx

格式:docx   大小:22KB   页数:11页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

计算机操作系统PV操作例题.docx

上传人:0640105 2022/4/5 文件大小:22 KB

下载得到文件列表

计算机操作系统PV操作例题.docx

文档介绍

文档介绍:问题 1 一个司机与售票员的例子 在公共汽车上,为保证乘客的安全,司机和售票员应协调工作: 停车后才能开门,关车门后才能行车。用 PV 操作来实现他们之间的协调。
S1 :是否允许司机启动汽车的变量
S2:是否允许售票员开门的变量
d
REPEAT
削苹果
P(SE)
精选文库
5
放苹果
V(SA)
UNTIL FALSE
儿子
P (SA)
拿苹果
V(SE)
吃苹果 女儿
P( SB)
拿香蕉
V(SE)
吃香蕉
(2)把(1 )改为:儿子要吃苹果时,请母亲放苹果,女儿要吃香蕉时,请父亲放香蕉, (还是盘子为空时才可以放)。
解:再增加两个信号量: SF=O, SM=0 父亲
REPEAT
P(SF)
剥香蕉
P(SE)
放香蕉
V(SB)
UNTIL FALSE
母亲
REPEAT
P (SM)
削苹果
P(SE)
放苹果
V(SA)
UNTIL FALSE
儿子
V(SM)
P (SA)
拿苹果
V(SE)
吃苹果 女儿
V(SF)
P( SB)
拿香蕉
V(SE)
吃香蕉
精选文库
6
问题6有一个超市,最多可容纳 N个人进入购物,当 N个顾客满员时,后到的顾客在超市 外等待;超市中只有一个收银员。 可以把顾客和收银员看作两类进程, 两类进程间存在同步
关系。写出用P;V操作实现的两类进程的算法(2003年系统设计员考试的题目) 解:设信号量:S=0,C=0 (顾客与收银员的同步信号量 ),M=N 收银员
P(S)
收银
V(C) 顾客
P(M)
进入店内购物 v(s)
P(C)
V(M)
精选文库
7
问题7有一个理发店,店内共有20个座位供顾客等待理发,(进入理发店的顾客, 都在此座 位上等待理发,正在理发的顾客不占用此座位) ,当20个座位坐满了,后到的顾客不等待,
立即回家。当没有顾客时,理发师睡眠等待。
解:设信号量:S==0,MUTEX=1 设整型变量 SM=20 理发师
REPEAT
P(S) ——如无顾客,理发师等待 V(C) 叫一个顾客理发
理发
UNTIL FALSE
顾客
P(M UTEX)
IF (SM=0)
{ V(MUTEX)
RETURN
ELSE
SM=SM-1 —
V(MUTEX)
}
V(S)
P(C)——
P(M UTEX)
SM=SM+1 -
V(MUTEX)
接受理发
如果此题改为:满座时,顾客等待空座位:则
把SM设为信号量 SM=20
顾客
满座,离开,回家
空座位数减 1
-通知理发师,增加了一个顾客,如理发师在等待则唤醒他 等理发师叫自己理发
被叫到,释放一个空的座位
顾客进程的程序修改如下:
精选文库
8
-申请一个座位,无则等待
-通知理发师,增加了一个顾客,如理发师在等待则唤醒他 等理发师叫自己理发
P(SM)---
V(S)―― P(C)—
V(SM)
接受理发
问题8一个盒子,内有黑白两种棋子(数量相等) ,甲每次从盒子中取出一颗黑子,乙每次
从盒子中取出一颗白子,一人取了棋子后,必须等另一方取过棋子方可再取, (可假设甲先
取)。
解: 设信号量:SJ=1,SY=0
REPEAT
P(SJ)
取一颗黑子
V(SY)
UNTIL盒子中无黑子

精选文库
11
REPEAT
P(SY)
取一颗白子
V(SJ)
UNTIL盒子中无白子
(八)按要求完成下面的程序。设有三个进程, input进程、comp ute进程和out put进程;
它们通过共享一个缓冲区 buf的合作关系如下:
input进程每次输入数据后,把数据送到 buf,供com pute进程计算和out put进程打印;
comput进程每次从buf取出已输入的可计算的数据进行计算,并当 out put进程把输入
数据打印完成后,把计算结果送入 buf供out put进程打印;
out put进程每次按顺序把 buf中的输入数据和计算结果在打印机上输出。
解:
设信号量:sa=1,sb=sc=sd=0,请把能正确实现这三个进程同步关系的 P、V操作的语句填入
下面的程序。
p rocedure input begin local data rep eat get(data); p(sa); buf=data;
(1)
V ( sc ) v(sb);
un til false en d;
p rocedure compute begin
locol data rep eat
(2)