[操作系统]经典进程同步问题题库

上传人:飞****9 文档编号:131913743 上传时间:2020-05-10 格式:DOC 页数:2 大小:43KB
返回 下载 相关 举报
[操作系统]经典进程同步问题题库_第1页
第1页 / 共2页
[操作系统]经典进程同步问题题库_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《[操作系统]经典进程同步问题题库》由会员分享,可在线阅读,更多相关《[操作系统]经典进程同步问题题库(2页珍藏版)》请在金锄头文库上搜索。

1、1、测量控制系统中的数据采集任务把所采集的数据送一单缓冲区;计算任务则 从该缓冲区中取出数据并进行计算。试写出利用信号量机制实现两者共享单缓冲区的同步算法。Var Sempty,Sfull: semaphore:= 1,0 BeginParbeginCollection:beginrepeat采集一个数据;wait(Sempty); 数据放入缓冲区;signal(Sfull); untill false;end;Compute:beginrepeatwait(Sfull); 从缓冲区取出数据; signal(Sempty); 计算;until false;end;ParendEnd2、有一阅览

2、室,共有100个座位。读者进入时必须先在一种登记表上登记,该表为每一座位列一个表目,包括座号和读者姓名。读者离开时要注销掉登记内容。试用wait和signal原语描述读者进程的同步问题。var mutex, readcount :semaphore := 1,100; BeginParbeginProcess Reader:beginrepeatwait(readcount); wait(mutex); ;signal(mutex); wait(mutex) signal(mutex); signal(readcount); until false;end;parend;End;1)、桌上有一

3、空盘,只允许放一个水果,爸爸专向盘中放苹果,妈妈专向盘中放桔子;女儿专吃盘中的苹果,儿子专吃盘中的桔子;试用wait和signal原语实现爸爸、妈妈、女儿、儿子之间的同步问题。var Sempty, Sapple, Sorange,: semaphore:= 1,0,0; beginparbeginFather: beginrepeatwait(Sempty); ;signal(Sapple); until false; end;Mother: beginrepeatwait(Sempty); ;signal(Sorange);until false; end;Son: beginrepeat

4、wait(Sorange); ;signal(Sempty);until false; end;Daughter: beginrepeatwait(Sapple);signal(Sempty); until false; end;parend;end;1、在4100米接力赛中,4个运动员之间存在如下关系,运动员1跑到终点把接力棒交给运动员2;运动员2一开始处于等待状态,在接到运动员1传来的接力棒后才能往前跑,他跑完100米后交给运动员3,运动员3也只有在接到运动员2传来的棒后才能跑,他跑完100米后交给运动员4,运动员4接到棒后跑完全程。请试用信号量机制对其上过程进行分析。 var s1,s2

5、,s3:semaphpre:=0,0,0; beginparbeginAthlete1: beginRun 100m; signal(s1); end;Athlete2: beginwait(s1); Run 100m;signal(s2); end;Athlete3: beginwait(s2); Run 100m;signal(s3); end;Athlete4: beginwait(s3); Run 100m; end;parend;end2、在公共汽车上,司机和售票员各行其职,司机负责开车和到站停车;售票员负责售票和开、关车门;当售票员关好车门后驾驶员才能开车行驶。试用wait和sig

6、nal操作实现司机和售票员的同步。var s1,s2:semaphore:=0,0; beginparbeginProcess Driverbeginrepeat;signal(s2); wait(s1); until false;end;Process BookingClerk; beginrepeat;wait(s2); ;signal(s1); until falseend;parend;end;1、假设有3个并发进程P,Q,R,其中P负责从输入设备上读入信息,并传送给Q,Q将信息加工后传送给R,R负责打印输出。进程P,Q共享一个有m个缓冲区组成的缓冲池;进程Q,R共享一个有n个缓冲区组

7、成的缓冲池(假设缓冲池足够大,进程间每次传输信息的单位均小于等于缓冲区长度),请写出满足上述条件的并发程序。(12分)var mutex1,mutex2,Sip,Siq,Soq,Sor:semaphore:=1,1,m,0,n,0; beginparbeginProcess Pbeginrepeatwait(Sip); wait(mutex1); signal(mutex1); signal(Siq); until falseend;Process Qbeginrepeatwait(Siq); wait(mutex1); signal(mutex1); signal(Sip); 数据处理wai

8、t(Soq);wait(mutex2); signal(mutex2);signal(Sor); until falseend;Process Rrepeatwait(Sor);wait(mutex2); ;signal(mutex2);signal(Soq); until falseendparendend 2、有一只铁笼子,每次只能放入一只动物,猎手向笼子里放入老虎,农民向笼子里放入猪;动物园等待取笼子里的老虎,饭店等待取笼子里的猪。现请用wait和signal操作写出能同步执行的程序。var Sempty, Stiger, Spig,: semaphore:= 1,0,0; beginparbeginHunter: beginrepeatwait(Sempty); ;signal(Stiger); until false; end;Farmer: beginrepeatwait(Sempty); ;signal(Spig); until false; end;Zoo: beginrepeatwait(Stiger); ;signal(Sempty); until false; end;Hotel: beginrepeatwait(Spig); ;signal(Sempty); until false; end;parend;end;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号