第5章作业答案.ppt
《第5章作业答案.ppt》由会员分享,可在线阅读,更多相关《第5章作业答案.ppt(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章作业上交时间:2013年4月16上交到课程网站题一一条小河上有一座独木桥,规定每次只允许一一条小河上有一座独木桥,规定每次只允许一人过桥。如果把每个过桥者看作一个进程,为人过桥。如果把每个过桥者看作一个进程,为保证安全,请用信号量操作实现正确管理。保证安全,请用信号量操作实现正确管理。分析:该题中要求“每次只允许一人过桥每次只允许一人过桥”,所以桥为临界资源,需要引入一个信号量对桥进行互斥保护,设为T。T的初值设为1,每个人过桥前都需要执行P(T),若T=0,则可以过桥,否则必须等待。过完桥后,需要释放临界资源,让别人过桥。1.semaphore T=1;2.Person()3.4.se
2、mWait(T);5.pass_bridge();6.semSignal(T);7.互斥过桥发散:改为“只要有同方向的人过桥,则可以直接过桥,其余方向的人需要等待,直到另一方向没人继续过桥。”分析,此时桥可以容许某一个方有多人可以同时过桥,桥本身不再属于临界资源,而过桥的优先权属于临界资源,由桥两个方向的人竞争。需要引入一个信号量对过桥优先权进行互斥保护,设为T,T的初值设为1,每个方向第一个人过桥前都需要执行P(T),若T=1,则可以过桥,否则必须等待。每个方向最后一个人过完桥后,需要释放临界资源T,让别人过桥。此外,还应有两个全局变量x,y分别保存两个方向上的过桥人数,以及两个信号量T_x
3、,T_y分别用于对x和y的互斥访问。发散:改为“只要有同方向的人过桥,则可以直接过桥,其余方向的人需要等待,直到另一方向没人继续过桥。”1.semaphore T=1,T_x=1,x=0;2.Person_x()3.4.semWait(T_x);5.x+;6.if(x=1)7.semWait(T);8.semSignal(T_x);9.pass_bridge();10.semWait(T_x);x-;11.if(x=0)semSignal(T);semSignal(T_x);12.1.semaphore T_y=1,y=0;2.Person_y()3.4.semWait(T_y);5.y+;6
4、.if(y=1)7.semWait(T);8.semSignal(T_y);9.pass_bridge();10.semWait(T_y);y-;11.if(y=0)semSignal(T);semSignal(T_y);12.增加x方向人数增加y方向人数减少x方向人数减少y方向人数题二a,b 两点间是一段东西走向的单行车道,现要设计一个自动管理系统,两点间是一段东西走向的单行车道,现要设计一个自动管理系统,管理规则如下:管理规则如下:当当ab间有车辆在行驶时同方向的车可以同时驶入间有车辆在行驶时同方向的车可以同时驶入ab段,但另一方向段,但另一方向的车必须在的车必须在ab段外等待;段外等待;
5、当当ab之间无车时,到达之间无车时,到达a(或(或b)的车辆可以进入)的车辆可以进入ab段,但不能从段,但不能从a,b点同时驶入;点同时驶入;当某方向在当某方向在ab段行驶的车辆使出了段行驶的车辆使出了ab段且无车辆进入段且无车辆进入ab段时,应让段时,应让另一方向等待的车辆进入另一方向等待的车辆进入ab段行驶。段行驶。请用请用wait,signal工具对工具对ab段实现正确管理。段实现正确管理。1.semaphore T=1,T_a=1,a=0;2.Car_a()3.4.semWait(T_a);5.a+;6.if(a=1)7.semWait(T);8.semSignal(T_a);9.pa
6、ss_ab();10.semWait(T_a);a-;11.if(a=0)semSignal(T);semSignal(T_a);12.1.semaphore T_b=1,b=0;2.Car_b()3.4.semWait(T_b);5.b+;6.if(b=1)7.semWait(T);8.semSignal(T_b);9.pass_ab();10.semWait(T_b);b-;11.if(b=0)semSignal(T);semSignal(T_b);12.增加a方向人数增加b方向人数减少a方向人数减少b方向人数题三桌子上有一只盘子,最多可容纳两个水果,每桌子上有一只盘子,最多可容纳两个水果
7、,每次只能放入或取出一个水果。爸爸专向盘子中次只能放入或取出一个水果。爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,两个儿子专放苹果,妈妈专向盘子中放橘子,两个儿子专等吃盘子中的橘子,两个女儿专等吃盘子中的等吃盘子中的橘子,两个女儿专等吃盘子中的苹果。请用信号量操作来实现爸爸、妈妈、儿苹果。请用信号量操作来实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系。子、女儿之间的同步与互斥关系。分析:该题中要求“每次只能放入或取出一个水果”,所以盘子为临界资源,需要引入一个信号量对盘子进行互斥保护,设为T,T的初值设为1;父亲或母亲每次往盘中放入水果前需要判断盘中是否有空余空间,所以需要一个同步信号量emp
8、ty来表示盘子的余量,若盘中空余空间则放入水果,否则阻塞等待;每次放入水果后需要增加苹果或橘子的数量,通知儿子或女儿盘中有水果,所以需要同步信号量apple,orange分别用于表示两种水果的余量;儿子或女儿每次消费一个水果后将相应的水果数量减1,同时增加盘子余量empty1.father()2.whiel(true)3.seamWait(empty);4.seamWait(T);5.put_apple();6.seamSignal(apple);7.seamSignal(T);8.1.mother()2.whiel(true)3.seamWait(empty);4.seamWait(T);5
9、.put_orangle();6.seamSignal(orangle);7.seamSignal(T);8.seamphore T=1;/保护盘子的互斥信号量seamphore empty=2;/代表盘子容量的同步信号量seamphore apple=0;/代表盘中apple数量的同步信号量seamphore orange=0;/代表盘中orange数量的同步信号量1.daughter()2.whiel(true)3.seamWait(apple);4.seamWait(T);5.eat_apple();6.seamSignal(empty);7.seamSignal(T);8.1.son(
10、)2.whiel(true)3.seamWait(orangle);4.seamWait(T);5.eat_orange();6.seamSignal(empty);7.seamSignal(T);8.放苹果放橘子吃苹果吃橘子题四汽车司机与售票员之间必须协同汽车司机与售票员之间必须协同工作工作:一方面一方面只有售票员把车门关好了司机才能开车,只有售票员把车门关好了司机才能开车,因此,售票员关好车门应通知司机因此,售票员关好车门应通知司机开车开车;另一方面另一方面,只有当汽车已经停下,售票员才能,只有当汽车已经停下,售票员才能开门上下客,故司机停车后应通知售票员,汽开门上下客,故司机停车后应通知
11、售票员,汽车当前正在始发站停车上客车当前正在始发站停车上客,试用试用PVPV操作写出操作写出他们的同步过程。他们的同步过程。分析:该题中没有涉及互斥访问的临界资源;司机开车与售票员关门,以及司机停车与售票员开门间存在同步过程;所以需要引入两组同步集号量:stop用于司机通知售票员车已停好,可以开门;door用于售票员通知司机,门已关好,可以开车。1.driver()2.3.whiel(true)4.5.seamWait(door);6.driver_car();7.stop_car();8.seamSignal(stop);9.10.1.saler()2.3.whiel(true)4.5.se
12、amWait(stop);6.open_door();7.close_door();8.seamSignal(door);9.10.seamphore stop=0;/代表车已停的同步信号量seamphore door=1;/代表门已关的同步信号量发散:加入“车上乘客在售票员打开后门,从后门依次下车,站上乘客在售票员打开前门后依次上车,前后门一次均只能容一个乘客通过,每次上下车的乘客数量m,n由司机分别在停车后设置。”分析,除了司机与售票员间的同步信号量stop,door外,现在前后门分别需要引入互斥信号量T_f,T_b分别用于实现前后门的互斥访问,。此外,每上或每下一个乘客,则相应的乘客数量
13、m,n应递减1,本来需要引入两个互斥信号量对m,n进行保护,但可以将m-或n-放到上下车的过程中,由T_f,T_b进行互斥保护,所以可以减少两个互斥信号量。1.driver()2.3.whiel(true)4.5.seamWait(door);6.driver_car();7.stop_car();8.set_m_n();/设置上下车人数设置上下车人数9.seamSignal(stop);10.11.1.saler()2.3.whiel(true)4.seamWait(stop);5.open_frontdoor();6.open_backdoor();7./T_f,T_b为售票员与乘客间的同
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 作业 答案
限制150内