欢迎来到天天文库
浏览记录
ID:18597031
大小:555.00 KB
页数:25页
时间:2018-09-19
《2011—12操作系统复习题答案(基本全部答案)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、(一)进程同步l进程同步1进程P1和进程P2并发执行时满足一定的时序关系,P1的代码段S1执行完后,才能执行P2的代码段S2.为描述这种同步关系,j:试设计相应的信号量,k:给出信号量的初始值,l:给出进程P1和P2的结构解答:j信号量变量申明为Typedefstruct{intvalue;//信号量中的值,表示资源的数量structPCB*L;//等待该信号量的队列}semaphore;设信号量semaphoresynch;k初始值为:synch.value=0l进程P1和P2的结构为P1:{P2:{⋮⋮S1wa
2、it(synch);signal(synch);S2⋮⋮}}l进程同步2问题描述:(理发店问题)一个理发店有一间配有n个椅子的等待室和一个有理发椅的理发室。如果没有顾客,理发师就睡觉;如果顾客来了二所有的椅子都有人,顾客就离去;如果理发师在忙而有空的椅子,顾客就会坐在其中一个椅子;如果理发师在睡觉,顾客会摇醒他。①给出同步关系②设计描述同步关系的信号量;③给出满足同步关系的进程结构(请完成满足同步关系的进程结构)。解答:j顾客customer应满足的同步关系为:a:顾客来时要等空的椅子,否则不进理发室b:座椅上的顾
3、客要等理发椅空才有可能与别的顾客竞争理发椅,如果顾客坐上理发椅,就要腾空其座椅给新来顾客,同时叫理发师给其理发。c:一旦顾客理发完,就要让别的等待顾客有机会理发。理发师应满足的同步关系为:一旦顾客唤醒,就给顾客理发,之后进入睡觉。k信号量定义如下:Typedefstruct{intvalue;//信号量中的值,表示资源的数量structPCB*L;//等待该信号量的队列}semaphore;互斥信号量定义如下:Typedefstruct{boolflag;structPCB*L;}binary_semaphore;
4、理发店问题的解决需要信号量和互斥信号量为:semaphorechair;binary_semaphorebarber_chair,hair_cut;它们的初始值为:chair.value=n;barber_chair.flag=1;hair_cut.flag=0;l顾客和理发师进程分别为:customer{barber{wait(chair);do{waitinginthechair;wait(hair_cut);wait(barber_chair);cuttinghair;signal(hair_cut);sig
5、nal(barber_chair);sittinginbarberchairforhaircut;}while(1)signal(chair);}}l进程同步2设公共汽车上,司机和售票员的活动分别为:司机的活动为启动车辆,正常行车,到站停车;售票员的活动为关车门,售票,开车门。j给出在汽车不断地到站、停车、行驶过程中,司机和售票员的活动的同步关系。k用信号量和wait,signal操作实现他们间的协调操作。解答:j根据一般的常识,有售票员应满足的同步关系为:当司机停车后,才将车门打开让顾客上下车。司机的同步关系为:
6、当售票员关门后,才能开车.k设互斥信号量binary_semaphorebus_closed,bus_stopped;初始值为bus_closed.flag=0;bus_stopped.flag=0;//表达初始情况第一次用到信号量时情形为车门没有关,车是开着的l进程为:driver{busserver{do{do{wait(bus_closed);closingthedoor;busstartingup;signal(bus_closed);busisdriving;ticketselling;busispark
7、ing;wait(bus_stopped);signal(bus_stopped);openingthedoor;}while(1)gettingonoffthebus;}}while(1)}l进程同步3:某高校计算机系开设网络课并安排上机实习,假设机房共有2m台机器,有2n名学生选该课,规定:(1)每两个学生组成一组,各占一台机器,协同完成上机实习;(2)只有凑够两个学生,并且此时机房有空闲机器,门卫才允许该组学生进入机房;(3)上机实习由一名教师检查,检查完毕,一组学生才可以离开机房。试用信号量机制(P/V操作
8、)实现它们的同步关系。解(1)确定并发和顺序操作在这个问题中,学生(student)、检查教师(teacher)和门卫(gategard)是并行操作的,因此,有多个学生(student)进程、一个检查教师(teacher)进程和一个门卫(gategard)进程。(2)确定互斥和同步的规则gateguard:只有凑够两个学生,并且此时机房有空闲机器时,门卫才分
此文档下载收益归作者所有