操作系统进程管理习题课件

上传人:我*** 文档编号:141783132 上传时间:2020-08-12 格式:PPT 页数:39 大小:693KB
返回 下载 相关 举报
操作系统进程管理习题课件_第1页
第1页 / 共39页
操作系统进程管理习题课件_第2页
第2页 / 共39页
操作系统进程管理习题课件_第3页
第3页 / 共39页
操作系统进程管理习题课件_第4页
第4页 / 共39页
操作系统进程管理习题课件_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《操作系统进程管理习题课件》由会员分享,可在线阅读,更多相关《操作系统进程管理习题课件(39页珍藏版)》请在金锄头文库上搜索。

1、进程管理习题,设有一个可以装A、B两种物品的仓库,其容量无限大,但要求仓库中A、B两种物品的数量满足下述不等式: -M A物品数量-B物品数量N 其中,M和N为正整数。试用信号量和P、V操作描述A、B两种物品的入库过程。,进程管理习题,已知条件 -M A物品数量-B物品数量N 可以拆分成两个不等式,即: A物品数量-B物品数量N B物品数量-A物品数量M 这两个不等式的含义是:仓库中A物品可以比B物品多,但不能超过N个; B物品可以比A物品多,但不能超过M个。,进程管理习题,设两个信号量:a=N;b=M,如果没有B,A最多只能N个;如果没有A,B最多只能M个。,进程管理习题,设自行车生产线上有

2、一支箱子,其中有N个位置(N3),每个位置可存放一个车架或一个车轮;又设有三个工人,其活动分别为:,工人1活动: Do 加工一个车架; 车架放入箱中; while(1);,工人2活动: Do 加工一个车轮; 车轮放入箱中; while(1);,工人3活动: Do 箱中取一车架; 箱中取二车轮; 组装为一台车; while(1);,试用信号量与P、V操作实现三个工人的合作,进程管理习题,首先不考虑死锁问题,工人1与工人3、工人2与工人3构成生产者与消费者关系,通过共同的缓冲区相联系。从资源的角度看,箱子中的空位置相当于工人1和工人2的资源,而车架和车轮相当于工人3的资源。 定义3个信号量: em

3、pty=N;(空位置) wheel=0;(车轮) frame=0;(车架),进程管理习题,empty=N;wheel=0;frame=0;,是否会死锁?,进程管理习题,为防止死锁,箱中车架的数量不能超过N-2,车轮的数量不能超过N-1,所以设置: s1=N-2,s2=N-1,进程管理习题,为防止死锁,箱中车架的数量不能超过N-2,车轮的数量不能超过N-1,所以设置: s1=N-2,s2=N-1,empty=N,进程管理习题,一座小桥(最多只能承重两个人)横跨南北两岸,任意时刻同一方向只允许一人过桥,南侧桥段和北侧桥段较窄只能通过一人,桥中央一处宽敞,允许两个人通过或歇息。试用信号量和P、V操作

4、写出南、北两岸过桥的同步算法。,进程管理习题,load控制桥上人数,north控制北段的互斥使用,south控制南段互斥使用 初始值:load=2, north=1, south=1,进程管理习题,有3个进程PA,PB和PC合作解决文件打印问题: PA将文件记录从磁盘读入主存的缓冲区1,每执行一次读一个记录; PB将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录; PC将缓冲区2的内容打印出来,每执行一次打印一个记录。缓冲区的大小等于一个记录大小; 请用P,V操作来保证文件的正确打印,进程管理习题,设置4个信号量:empty1、empty2、full1、full2 empty1及empt

5、y2分别表示缓冲区1及缓冲区2是否为空,初值为1 full1,full2分别表示缓冲区1及缓冲区2是否有记录可供处理,其初值为0,进程管理习题,PA() 从磁盘读一 个记录; P(empty1); 将记录存入 缓冲区1; V(full1);,PB() P(full1); 从缓冲区1中 取出记录; V(empty1); P(empty2); 将记录存入缓 冲区2; V(full2);,PC() P(full2); 从缓冲区2 取一个记录; V(empty2); 打印记录;,进程管理习题,公共汽车上,司机和售票员的活动分别为:,司机: 启动车辆; 正常行驶, 到站停车,售票员: 关车门; 售票;

6、开车门;,司机P1 售票员P2 启动 关门 正常运行 售票 到站停 开门,进程管理习题,设信号量S1:是否允许司机启动汽车,初值为0, S2:是否允许售票员开门,初值为0,进程管理习题,桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P,V原语实现爸爸,儿子女儿三个进程的同步。,进程管理习题,设三个信号量: S:表示盘子是否为空,初值为1; So:表示盘中是否有桔子,初值为0 ; Sa:表示盘中是否有苹果,初值为0。,s=1; sa=0; so=0; main() cobegin f

7、ather(); son(); daughter(); coend ,进程管理习题,father() While (1) P(s); 将水果放入盘中; if (放入的是桔子) v(so) else v(sa); ,son() While (1) P(so); 从盘中取出桔子; v(s); 吃桔子; ,daughter() While (1) P(sa); 从盘中取出苹果; v(s); 吃苹果; ,进程管理习题,图书馆有100个座位,有一张登记表,要求: 阅读者进入时登记,取得座位号; 出来时,注销; 登记表同时只能由一个人使用; 用P、V原语描述一个读者的使用过程,进程管理习题,信号量SN,表

8、示可用座位数,初值为100;信号量sb, 表示登记表是否正在使用,初值为1;,reader(int i) enter(); 阅读; outer(); ,enter( ) P(SN); P(sb); 登记; V(sb); ,outer( ) P(sb); 注销; V(sb); V(SN); ,进程管理习题,三个进程P1、P2、P3互斥使用一个包含N(N0)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某已空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并用co

9、unteven()统计偶数个数。请用信号量机制实现这三个进程的同步和互斥活动,并说明所定义信号量的含义。要求用伪码描述。,进程管理习题,互斥信号量:mutex初值为1; 同步信号量:P1、P2因奇数的放与取而同步,设置信号量odd;P1、P3因偶数的放与取而同步,设置信号量even;P1、P2、P3因共享缓冲区而同步,设置信号量empty。,进程管理习题,互斥信号量:mutex,初值为1; 同步信号量:P1、P2因奇数的放与取而同步,设置信号量 odd,初值为0;P1、P3因偶数的放与取而同步,设 置信号量even,初值为0 ;P1、P2、P3因共享缓冲 区而同步,设置信号量empty,初值为

10、N 。,P1: P(empty); P(mutex); put(); V(mutex); If number%2=0 V(even) Else V(odd);,P2: P(odd); P(mutex); getodd(); V(mutex); V(empty); countodd();,P3: P(even); P(mutex); geteven(); V(mutex); V(empty); counteven();,进程管理习题,某银行提供一个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号。等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号

11、选取一位顾客,并为其服务。顾客和营业员的活动过程描述为: 请添加必要的信号量和P、V(或wait()、signal())操作,实现上述过程的的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。,Cobegin process 顾客 从取号机获得一个号码; 等待叫号; 获得服务; process 营业员 while (TRUE) 叫号; 为顾客服务; coend,互斥资源:取号机(一次只允许一位顾客领号),因此,设一个互斥信号量mutex; 同步问题 顾客需要获得空座位等待叫号,当营业员空闲时,将选取一位顾客并为其服务。空座位的有、无影响等待顾客数量,顾客的有、无决定了营业员是否能开始服

12、务,故分别设置信号量empty和full来实现这一同步关系; 顾客获得空座位后,需要等待叫号和被服务。这样,顾客与营业员就服务何时开始又构成了一个同步关系,定义信号量service来完成这一同步过程。,semaphore mutex=1; /互斥使用取号机 semaphore empty=10; /空座位的数量 semaphore full=0; /已占座位的数量 semaphore service=0; /等待叫号 cobegin process 顾客 process 营业员 P(empty); while(TRUE) P(mutex); 从取号机获得一个号; P(full); V(mute

13、x); V(empty); V(full); V(service); /叫号 P(service); /等待叫号 为顾客服务; 获得服务; coend,评分说明 能正确给出互斥信号量定义、含义及初值,给1分。 能正确给出3个同步信号量定义、含义及初值,给2分。 营业员进程描述正确的,给2分。 顾客进程描述中,互斥描述正确的,给1分;同步描述正确的,给2分;共3分。 其他正确解答,参照- 的标准给分。,进程管理习题,某博物馆最多可容纳500人同时参观,有一个出入口,该出入口一次仅允许一个人通过。参观者的活动描述如下:,cobegin 参观者进程i: 进门; 出门; coend;,请添加必要的信号

14、量和P、V(或wait()、signal())操作,以实现上述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。,进程管理习题,定义两个信号量: empty=500; /博物馆可以容纳的最多人数 mutex=1; /用于出入口资源的控制,cobegin 参观者进程i: P(empty); P(mutex); 进门; V(mutex); 参观; P(mutex); 出门; V(mutex); V(empty); coend;,进程管理习题,有A、B两人通过信箱进行辩论,每个人都从自己的信箱中取得对方的问题,将答案和向对方提出的新问题组成一个邮件放入对方的邮箱中。假设A的信箱最多放

15、M个邮件,B的邮箱最多放N个邮件。初始时A的信箱中有x个邮件(0xM),B的信箱中有y个邮件(0yN)。辩论者每取出一个邮件,邮件数减1。A和B两人的操作过程描述如下:,当信箱不为空时,辩论者才能从信箱中取邮件,否则等待。当信箱不满时,辩论者才能将新邮件放入邮箱,否则等待。请添加必要的信号量和P、V(或wait、signal)操作,以实现上述过程的同步。要求写出完整的过程,并说明信号量的含义和初值。,A while(TRUE) 从A的信箱中取出一个邮件; 回答问题并提出一个新问题; 将新邮件放入B的信箱; ,B while(TRUE) 从B的信箱中取出一个邮件; 回答问题并提出一个新问题; 将新邮件放入A的信箱; ,进程管理习题,semaphore Full_A=x; /表示A的信箱的邮件数量 semaphore Empty_A=M-x; /表示A的信箱中还可存放的邮件数量(1分) semaphore Full_B=y; /表示B的信箱的邮件数量 semaphor

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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