操作系统进程部分的习题

操作系统进程部分的习题

ID:35497472

大小:57.50 KB

页数:7页

时间:2019-03-25

操作系统进程部分的习题_第1页
操作系统进程部分的习题_第2页
操作系统进程部分的习题_第3页
操作系统进程部分的习题_第4页
操作系统进程部分的习题_第5页
资源描述:

《操作系统进程部分的习题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、进程部分的习题1.在公共汽车上,司机进程和售票员进程各司其职。司机在正常行车中售票员售票,两者之间没有制约关系,可以任意并发。但是在其他环节,司机和售票员进程之间存在着如下同步关系:1)司机停车后等待售票员关门后才能启动车辆。2)售票员售完票后,等待司机到站停车,停车后才能打开车门。vardoor,stop:semaphore:=0,0;beginparbegin司机进程:beginwhile(true){wait(door);〃等待售票员发送关门信息启动车辆;正常行车;到站停车;signal(stop);//给售票员发送到站信息}end

2、;售票员进程:beginwhile(true){关车门;signal(door);//给司机发送关门信息售票;wait(stop);//等待司机发送到站信息开车门;上下乘客;}end;parend;end.2.某寺庙,有小和尚,老和尚若干。有一水缸,由小和尚提水入缸供老和尚饮用。水缸可容10桶水,水取自同一井中。水井径窄,每次中能容下一个桶取水。水桶总数为3个。每人一次取缸水仅为1桶,且不可同时进行。试用记录型信号量给出有关取水、入水的算法描述。根据题意,定义信号量及其初值如下:(1)水桶为临界资源需互斥使用,定义信号量bucket,因有

3、3个桶,故初值为3;(2)水井一次只能允许下一个桶取水,定义互斥信号量well,初值为1;(3)水缸一次只能允许一个人取水,定义互斥信号量jar,初始值为1;(4)empty和full用于小和尚和老和尚之间的•同步制约关系。因为缸能存10桶水,所以empty初始值为10;开始时缸中没有水,full的初始值为0。semaphorebucket二3,jar=l,full二0,empty二10,well二1;young_monk(){/*小和尚入水算法*/wh订e(l){wait(empty);wait(bucket);wait(well);从

4、水井中打水;signal(well);wait(jar);倒入水缸;signal(jar);signal(bucket);signal(full);)}old_monk(){/*老和尚取水算法*/whi1e(1){wait(full);wait(bucket);wait(jar);从缸中取水;signal(jar);signal(bucket);signal(empty);从桶中倒入饮用;}}1.设有3个进程A、B、C,其中A与B构成一对生产者与消费者(A为生产者,B为消费者),共享一个由n个缓冲区组成的缓冲池;B与C也构成一对生产者与消

5、费者(此时B为生产者,C为消费者),共享另一个由m个缓冲区组成的缓冲池。用信号量机制协调它们的同步问题。Semaphorefulll=0,full2=0,emptyl=n,empty2=m,mutexl=1,mutex2=1;intini=0,outl=0,in2=0,out2=0;Bufferbufferl[n],buffer2[m];A(){while(true){toproduceanitem;wait(emptyl);wait(mutexl);把产品放入bufferl[ini];ini=(inl+1)modn;signal(mut

6、exl);signal(fulll);B(){while(true){wait(fulll);wait(mutexl);从bufferl[outl]获得产品;outl=(outl+1)modn;signal(mutexl);signal(emptyl);•••••••••wait(ompty2);wait(mutex2);把产品放入buffer2[in2];in2=(in2+l)modm;signal(mutex2)signal(ful!2);}}C(){while(true){wait(full2);wait(mutex2);从buff

7、er2[out2]获得产品;out2=(out2+l)modm;signal(mutex2);signal(empty2);}}1.理发店里有一位理发师,一把理发椅和n把供等候理发顾客坐的椅子。如果没有顾客,理发师便在理发椅上睡觉。当一个顾客到来时,他必须先叫醒理发师。如果理发师正在理发时又有顾客来到,则如果有空椅子可坐,他们就坐下来等;如果没有空椅子,他就离开。用信号量机制来描述他们的行为。Semaphoremax=n+l,next二1,ready=0,finished=0;barber(){while(true){wait(ready

8、);给一个顾客理发;signal(finished);signal(next);}}ustomer(){while(true){wait(max);signal(ready);wait(nex

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

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

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