进程同步典型例题(操作系统)

进程同步典型例题(操作系统)

ID:13544061

大小:263.50 KB

页数:20页

时间:2018-07-23

进程同步典型例题(操作系统)_第1页
进程同步典型例题(操作系统)_第2页
进程同步典型例题(操作系统)_第3页
进程同步典型例题(操作系统)_第4页
进程同步典型例题(操作系统)_第5页
资源描述:

《进程同步典型例题(操作系统)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、进程同步练习题1.在公共汽车上,司机和售票员的工作流程如图所示。为保证乘客的安全,司机和售票员应密切配合协调工作。请用信号量来实现司机与售票员之间的同步。图司机和售票员工作流程图①约束:怎么密切配合协调工作才能保证安全呢?a)关车门之后再启动车辆;利用前驱图解释b)到站停车之后再开车门;②根据约束定义信号量;关车门和启动车辆需要一个信号量进行同步S1;到站停车和开车门之间需要一个信号量进行同步S2;③建立几个进程呢?a)为司机建立一个进程Driver;b)为售票员建立一个进程Conductor;Driver:Repeat启动车辆;正常行驶;到站停车;Untilfalse;Conduc

2、tor:Repeat关车门;售票;开车门;Untilfalse;④加入同步关系:Vars1,s2:semorphore=0,0;Driver:RepeatWait(s1);启动车辆;正常行驶;到站停车;Signal(s2)Untilfalse;Conductor:Repeat关车门;Signal(s1);售票;Wait(s2)开车门;Untilfalse;main(){Driver();Conductor();}2.桌子上有一只盘子,盘子中只能放一只水果。爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,一个儿子专等吃盘子中的橘子,一个女儿专等吃盘子中的苹果。用PV操作实现他们之间的同步机

3、制。分析:①约束:a)爸爸和妈妈竞争盘子,往盘子放水果,爸爸在放时,妈妈等待,或者相反;b)爸爸和女儿要同步,即爸爸放完苹果之后通知女儿来吃;同时女儿吃完之后要通知盘子可用;c)妈妈和儿子要同步,即妈妈放完橘子之后通知儿子来吃;同时儿子吃完之后要通知盘子可用;②经上述分析可知:需要3个信号量:S1表示临界资源盘子,初值1;爸爸和女儿需要一个信号量进行同步S2=0妈妈和儿子需要一个信号量进行同步S3=0;③建立进程?爸爸:妈妈:女儿:儿子:Repeatrepeatrepeatrepeat取一个苹果;取一个橘子;从盘子取一个苹果;从盘子取一个橘子;放入盘子;放入盘子吃苹果;吃橘子;Unt

4、ilfalse;Untilfalse;Untilfalse;Untilfalse;④加入同步关系。爸爸:妈妈:女儿:儿子:Repeatrepeatrepeatrepeatwait(S2);wait(S3);取一个苹果;取一个橘子;从盘子取一个苹果;从盘子取一个橘子;Wait(S1);Wait(S1);signal(S1);signal(S1);放入盘子;放入盘子吃苹果;吃橘子;Signal(S2);Signal(S3);Untilfalse;Untilfalse;Untilfalse;Untilfalse;3.a,b两点之间是一段东西向的单行车道,现要设计一个自动管理系统,管理规则如

5、下:(1)当ab之间有车辆在行驶时同方向的车可以同时驶入ab段,但另一方向的车必须在ab段外等待;(2)当ab之间无车辆在行驶时,到达a点(或b点)的车辆可以进入ab段,但不能从a点和b点同时驶入;(3)当某方向在ab段行驶的车辆驶出了ab段且暂无车辆进入ab段时,应让另一方向等待的车辆进入ab段行驶。请用信号量为工具,对ab段实现正确管理以保证行驶安全。分析:①约束:a)ab两点的单行车道是一种临界资源;两端的车辆对该资源进行竞争;b)同步关系:(1),(3);②经上述分析可知:首先,设置互斥信号量Sab=1,用于a、b点的车辆互斥进入ab段;然后,分别设置共享变量ab=0用于记录

6、当前ab段上由a点进入的车辆数量;共享变量ba=0用于记录当前ab=段上由b点进入车辆的数量;最后,设置互斥信号量S1=1用于ab段的车辆互斥访问共享变量ab;设置互斥信号量S2=1用于ba段的车辆互斥访问共享变量ba③建立进程?semaphoreS1=1,S2=1,Sab=1;intab=ba=0;Pab:pba:RepeatrepeatWait(S1)Wait(s2)abcount=abcount+1;bacount=bacount+1;ifabcount==1thenwait(sab)ifbacount==1thenwait(sab)signal(S1)signal(s2)进入

7、车道行驶;进入车道行驶;Wait(s1)Wait(s2)abcount=abcount-1;bacount=bacount-1;ifabcount==0thensignal(sab)ifbacount==0thensignal(sab)signal(s1)signal(s2);untilfalse;untilfalse;main(){Pab();Pba();}5.一条河上架设了由若干个桥墩组成的一座桥。若一个桥墩只能站一个人,过河的人只能沿着桥向前走而不能

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

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

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