




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——pv原语练习题带答案
12、在一个仅允许单向行驶的单排车道十字路口,只允许车辆从南向北和从西向东行驶,如图8.1所示;为了安全起见,每次仅允许一辆汽车通过十字路口;当有车辆通过路口时其它车辆必需等待,当无车辆在路口行驶时则一次仅允许一辆汽车通过。请用P、V原语及信号量实现十字路口的交通控制系统,并描述具体的控制算法。
北
东
图8.1允许单向行驶的单排车道十字路
答:设一信号量sem表示是否允许汽车通过,初值为1,表示允许汽车通过。设入口检测进程procedurein,出口检测进程procedureout,它们的描述如下:procedurein()begin
L1:检测到有一辆车要进入路口P(sem)
允许进入路口gotoL1
end
procedureout()begin
L2:检测到有一辆车驶出路口V(sem)gotoL2
end
13、设存在三个过程get、copy和put分别对缓冲区S和T进行操作,其中get负责将数据块存入缓冲区S,copy负责从缓冲区S读出数据并复制到缓冲区T中,put负责从缓冲区T中读出数据并打印,如图8.2所示。请用P、V操作描述上述三个过程。
putgetcopy缓冲区S缓冲区T图8.2输入—缓冲—输出问
答:设信号量SGC表示缓冲区S是否允许放数据,值为1时表示允许,初值为1;信号量SCG表示缓冲区S是否允许取数据,值为1时表示允许,初值为0;信号量SCP表示缓冲区T是否允许放数据,值为1时表示允许,初值为1;信号量SPC表示缓冲区T是否允许取数据,值为1时表示允许,初值为0。进程get、copy和put描述如下:get()
begin
L1:取存入缓冲区S的数据x
P(SGC)
把数据x存入缓冲区S中V(SCG)gotoL1
endcopy()
begin
L2:P(SCG)
把缓冲区S的数据存入x中V(SGC)P(SCP)
把数据x要存入缓冲区T中V(SPC)gotoL2endput()
begin
L3:P(SPC)
把缓冲区T的数据存入x中V(SCP)打印数据xgotoL3
end
14、烟—吸烟者问题。考虑一个系统有三个吸烟者进程和一个代理进程。每个吸烟者持续不停地卷烟和吸烟。但是为了卷烟和吸烟,吸烟者必需同时拥有三种材料:烟丝、卷烟纸和火柴;三个吸烟者分别拥有其中的一种。代理可以提供足够的三种材料,但每次仅将两种不同的材料放在桌子上供吸烟者使用。手中拥有一种材料的吸烟者要卷烟和吸烟时就向代理发信号,代理然后将所需要的两种材料放在桌子上;如此循环重复这个过程。请写出代理和吸烟者间的同步算法。
答:设信号量S[i](i=1,2,3)表示第i个吸烟者是否提出请求,其值为1时表示提出请求,初值为1;SP表示桌上是否可以放材料,其值为1时表示提出请求,初值为1;ST[i](i=1,2,3)表示是否放了第i个吸烟者所需的材料。三个吸烟者进程smoker[i]和一个代理进程agent描述如下:agent()
begin
L1:P(S[i])
P(SP)
ifi==1then烟丝和卷烟纸
elseifi==2then烟丝和火柴
else卷烟纸和火柴
V(ST[i])gotoL1
endsmoker[i]()
begin
L2:P(ST[i])
取所需的材料V(SP)卷烟吸烟
V(S[i])gotoL2
end
15、请用算法描述读者和写者问题。
答:设共享变量count表示读者数量,初值为0;信号量SP表示是否允许读或写,其值为1时允许读或写,初值为1;SC表示是否可以使用共享变量COUNT,其值为1时表示可以使用,初值为1;读者进程reader和写者进程writer的描述如下:描述1:用P、V操作描述。reader()
begin
L1:P(SC)
ifcount==0thenP(SP)count=count+1V(SC)进行读P(SC)
count=count-1
ifcount==0thenV(SP)V(SC)gotoL1
endwriter()
begin
L2:P(SP)
进行写V(SP)gotoL2
end
描述2:用signal、wait操作描述。reader()
begin
L1:wait(SC)
ifcount==0thenwait(SP)count=count+1signal(SC)进行读
wait(SC)count=count-1
ifcount==0thensignal(SP)signal(SC)gotoL1
endwriter()
begin
L2:wait(SP)
进行写
signal(SP)gotoL2
end
16、有一材料保管员,负责管理笔和纸。另有A、B两组学生,A组学生每人手中都备有纸,而B组学生每人手中都备有笔,任一学生只要能得到其它一种材料就可以写信。有一个可以放一张纸或一支笔的小盒,当小盒为空时,保管员就可以任意放一张纸或一只笔供学生使用。当小盒中有物时,每次仅允许一个学生从中取出。假设管理员手中所拥有的笔和纸的数量等于A、B两组学生各自所需要的总数,请用信号量描述上述过程。
答:设信号量SP表示小盒里是否允许放纸或笔,其值为1表示允许放纸或笔,初值为1;SA表示A组学生是否从允许取盒子中笔,其值为1表示允许取笔,初值为0;SB表示B组学生是否允许从取盒子中纸,其值为1表示允许取纸,初值为0。保管员P,A、B两组学生的进程描述如下:保管员P()
begin
L1:P(SP)
把纸或笔放入盒子中
if放入的是纸thenV(SB)
elseV(SA)
gotoL1
end
A组学生()
begin
L2:P(SA)
取盒子中的笔V(SP)gotoL2
end
B组学生()
begin
L3:P(SB)
取盒子中的纸V(SP)gotoL3
end
17、A、B两人共同使用一个报箱,该报箱每次仅能容纳一份报纸。A订阅《生活报》,B订阅《晚报》,分别由投递员C和D投递。请用P、V操作描述他们的同步程序。
答;设信号量SP,表示信箱是否允许放报纸,值为1时表示允许放报纸,初值为1;信号量SA,表示信箱中是否有生活报,值为1时表示有,初值为0;信号量SB,表示信箱中是否有晚报,值为1时表示有,初值为0。投递员C、D和A、B两人的进程描述如下:
A()begin
L3:P(SA)取《生活报》V(SP)gotoL3EndB()begin
L4:P(SB)取《晚报》V(SP)gotoL4endC()begin
L1:P(SP)
把《生活报》放入报箱V(SA)gotoL1endD()begin
L2:P(SP)
把《晚报》放入报箱V(SB)gotoL2end
22、有6位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 技术赋能课堂变革打造高效教学环境研讨会
- 教育政策在医疗设备研发中的作用
- 打造智能教育资源体系设计思维的探索与实践
- 烟草制丝培训课件
- 公交优先战略2025年对城市交通拥堵治理的影响研究报告
- 浙江警官职业学院《戏曲剧目研习》2023-2024学年第一学期期末试卷
- 郑州电力高等专科学校《小动物麻醉与监护》2023-2024学年第一学期期末试卷
- 公共卫生应急物资储备体系建设实施方案在2025年的技术创新与应用报告
- 成都纺织高等专科学校《中外美术史A》2023-2024学年第一学期期末试卷
- 公路货运行业2025年数字化转型与智能运力调度策略研究
- 2025年电信运营商数字内容业务发展机遇洞察-解码运营商在5G+AI时代的战略布局与增长引擎
- 2025年广东省中考生物试卷真题及答案详解(精校打印版)
- 沟通力培训课件
- 2025-2030中国光伏组件回收技术经济性分析与政策激励效果报告
- 住院患者健康宣教的重要性
- 街区防灾规划方案(3篇)
- 中国汽车传感器行业发展趋势及发展前景研究报告2025-2028版
- 2025年高考山东卷化学试题讲评及备考策略指导(课件)
- 2025年中国失重秤市场调查研究报告
- 师德师风校长培训
- 城市轨道交通机电技术专业教学标准(高等职业教育专科)2025修订
评论
0/150
提交评论