进程管理习题-new.ppt

上传人:b****2 文档编号:2653352 上传时间:2022-11-05 格式:PPT 页数:33 大小:877.50KB
下载 相关 举报
进程管理习题-new.ppt_第1页
第1页 / 共33页
进程管理习题-new.ppt_第2页
第2页 / 共33页
进程管理习题-new.ppt_第3页
第3页 / 共33页
进程管理习题-new.ppt_第4页
第4页 / 共33页
进程管理习题-new.ppt_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

进程管理习题-new.ppt

《进程管理习题-new.ppt》由会员分享,可在线阅读,更多相关《进程管理习题-new.ppt(33页珍藏版)》请在冰豆网上搜索。

进程管理习题-new.ppt

进程管理习题设有一个可以装设有一个可以装A、B两种物品的仓库,其两种物品的仓库,其容量无限大,但要求仓库中容量无限大,但要求仓库中A、B两种物品两种物品的数量满足下述不等式:

的数量满足下述不等式:

-MA物品数量物品数量-B物品数量物品数量N其中,其中,M和和N为正整数。

试用信号量和为正整数。

试用信号量和P、V操作描述操作描述A、B两种物品的入库过程。

两种物品的入库过程。

进程管理习题已知条件已知条件-MA物品数量物品数量-B物品数量物品数量N可以拆分成两个不等式,即:

可以拆分成两个不等式,即:

A物品数量物品数量-B物品数量物品数量NB物品数量物品数量-A物品数量物品数量M这两个不等式的含义是:

仓库中这两个不等式的含义是:

仓库中A物品可物品可以比以比B物品多,但不能超过物品多,但不能超过N个;个;B物品可物品可以比以比A物品多,但不能超过物品多,但不能超过M个。

个。

进程管理习题A物品入库:

物品入库:

P(a);A物品入库;物品入库;V(b);B物品入库:

物品入库:

P(b);B物品入库;物品入库;V(a);设两个信号量:

设两个信号量:

a=N;b=M如果没有如果没有B,A最多只能最多只能N个;个;如果没有如果没有A,B最多只能最多只能M个。

个。

进程管理习题设自行车生产线上有一支箱子,其中有设自行车生产线上有一支箱子,其中有N个位置个位置(N3),每个位置可存放一个车架或一个车轮;),每个位置可存放一个车架或一个车轮;又设有三个工人,其活动分别为:

又设有三个工人,其活动分别为:

工人工人1活动:

活动:

Do加工一个车架;加工一个车架;车架放入箱中;车架放入箱中;while

(1);工人工人2活动:

活动:

Do加工一个车轮;加工一个车轮;车轮放入箱中;车轮放入箱中;while

(1);工人工人3活动:

活动:

Do箱中取一车架;箱中取一车架;箱中取二车轮;箱中取二车轮;组装为一台车;组装为一台车;while

(1);试用信号量与试用信号量与P、V操作实现三个工人的合作操作实现三个工人的合作进程管理习题首先不考虑死锁问题,工人首先不考虑死锁问题,工人1与工人与工人3、工人、工人2与工人与工人3构成生产者与消费者关系,通过共构成生产者与消费者关系,通过共同的缓冲区相联系。

从资源的角度看,箱子同的缓冲区相联系。

从资源的角度看,箱子中的空位置相当于工人中的空位置相当于工人1和工人和工人2的资源,而的资源,而车架和车轮相当于工人车架和车轮相当于工人3的资源。

的资源。

定义定义3个信号量:

个信号量:

empty=N;(空位置);(空位置)wheel=0;(车轮);(车轮)frame=0;(车架);(车架)进程管理习题empty=N;wheel=0;frame=0;工人工人1:

加工一个车架;加工一个车架;P(empy);车架放入箱中;车架放入箱中;V(frame);工人工人2:

加工一个车轮;加工一个车轮;P(empy);车轮放入箱中;车轮放入箱中;V(wheel);工人工人3:

P(frame);箱中取一车架;箱中取一车架;P(wheel);P(wheel);箱中取二车轮;箱中取二车轮;V(empty);V(empty);V(empty);组装为一台车;组装为一台车;进程管理习题为防止死锁,箱中车架的为防止死锁,箱中车架的数量不能超过数量不能超过N-2,车轮的,车轮的数量不能超过数量不能超过N-1,所以设,所以设置:

置:

s1=N-2,s2=N-1工人工人1:

加工一个车架;加工一个车架;P(s1);车架放入箱中;车架放入箱中;V(frame);工人工人2:

加工一个车轮;加工一个车轮;P(s2);车轮放入箱中;车轮放入箱中;V(wheel);工人工人3:

P(frame);箱中取一车架;箱中取一车架;V(s1);P(wheel);P(wheel);箱中取二车轮;箱中取二车轮;V(s2);V(s2);组装为一台车;组装为一台车;进程管理习题为防止死锁,箱中车架的为防止死锁,箱中车架的数量不能超过数量不能超过N-2,车轮的,车轮的数量不能超过数量不能超过N-1,所以设,所以设置:

置:

s1=N-2,s2=N-1,empty=N工人工人1:

加工一个车架;加工一个车架;P(s1);P(empty);车架放入箱中;车架放入箱中;V(frame);工人工人2:

加工一个车轮;加工一个车轮;P(s2);P(empty);车轮放入箱中;车轮放入箱中;V(wheel);工人工人3:

P(frame);箱中取一车架;箱中取一车架;V(empty);V(s1);P(wheel);P(wheel);箱中取二车轮;箱中取二车轮;V(empty);V(empty);V(s2);V(s2);组装为一台车;组装为一台车;进程管理习题一座小桥(最多只能承重两个人)横跨南一座小桥(最多只能承重两个人)横跨南北两岸,任意时刻同一方向只允许一人过北两岸,任意时刻同一方向只允许一人过桥,南侧桥段和北侧桥段较窄只能通过一桥,南侧桥段和北侧桥段较窄只能通过一人,桥中央一处宽敞,允许两个人通过或人,桥中央一处宽敞,允许两个人通过或歇息。

试用信号量和歇息。

试用信号量和P、V操作写出南、北操作写出南、北两岸过桥的同步算法。

两岸过桥的同步算法。

进程管理习题load控制桥上人控制桥上人数,数,north控制北控制北段的互斥使用,段的互斥使用,south控制南段互控制南段互斥使用斥使用初始值:

初始值:

load=2,north=1,south=1To南:

南:

P(load);P(north);过北桥段;过北桥段;到桥中间;到桥中间;V(north);P(south);过南桥段;过南桥段;到达南岸;到达南岸;V(south);V(load);To北:

北:

P(load);P(south);过南桥段;过南桥段;到桥中间;到桥中间;V(south);P(north);过北桥段;过北桥段;到达北岸;到达北岸;V(north);V(load);进程管理习题有有3个进程个进程PA,PB和和PC合作解决文件打印问合作解决文件打印问题:

题:

PA将文件记录从磁盘读入主存的缓冲区将文件记录从磁盘读入主存的缓冲区1,每执,每执行一次读一个记录;行一次读一个记录;PB将缓冲区将缓冲区1的内容复制到缓冲区的内容复制到缓冲区2,每执行一次,每执行一次复制一个记录;复制一个记录;PC将缓冲区将缓冲区2的内容打印出来,每执行一次打印的内容打印出来,每执行一次打印一个记录。

缓冲区的大小等于一个记录大小;一个记录。

缓冲区的大小等于一个记录大小;请用请用P,V操作来保证文件的正确打印操作来保证文件的正确打印进程管理习题设置设置4个信号量:

个信号量:

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

公共汽车上,司机和售票员的活动分别为:

司机:

司机:

启动车辆;启动车辆;正常行驶,正常行驶,到站停车到站停车售票员:

售票员:

关车门;关车门;售票;售票;开车门;开车门;司机司机P1售票员售票员P2启动启动关门关门正常运行正常运行售票售票到站停到站停开门开门进程管理习题设信号量设信号量S1:

是否允许司机启动汽车,初值为:

是否允许司机启动汽车,初值为0,S2:

是否允许售票员开门,初值为:

是否允许售票员开门,初值为0Driver()While

(1)P(S1);启动汽车;启动汽车;正常行车;正常行车;到站停车;到站停车;V(S2);Busman()While

(1)关车门关车门;V(S1);售票;售票;P(S2);开车门;开车门;上下乘客;上下乘客;Ints1=0;Ints2=0;Main()CobeginDriver();Busman();Coend进程管理习题桌上有一空盘,允许存放一只水果。

爸爸桌上有一空盘,允许存放一只水果。

爸爸可向盘中放苹果,也可向盘中放桔子,儿可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的子专等吃盘中的桔子,女儿专等吃盘中的苹果。

规定当盘空时一次只能放一只水果苹果。

规定当盘空时一次只能放一只水果供吃者取用,请用供吃者取用,请用P、V原语实现爸爸、儿原语实现爸爸、儿子女儿三个进程的同步。

子女儿三个进程的同步。

进程管理习题设三个信号量:

设三个信号量:

S:

表示盘子是否:

表示盘子是否为空,初值为为空,初值为1;So:

表示盘中是:

表示盘中是否有桔子,初值否有桔子,初值为为0;Sa:

表示盘中是:

表示盘中是否有苹果,初值否有苹果,初值为为0。

ints=1;intsa=0;intso=0;main()cobeginfather();son();daughter();coend进程管理习题father()While

(1)P(s);将水果放入盘中;将水果放入盘中;if(放入的是桔子放入的是桔子)v(so)elsev(sa);son()While

(1)P(so);从盘中取出桔子;从盘中取出桔子;v(s);吃桔子;吃桔子;daughter()While

(1)P(sa);从盘中取出苹果;从盘中取出苹果;v(s);吃苹果;吃苹果;进程管理习题三个进程三个进程P1、P2、P3互斥使用一个包含互斥使用一个包含N(N0)个单元的缓冲区。

)个单元的缓冲区。

P1每次用每次用produce()生成一个正整数并用生成一个正整数并用put()送入缓冲区某已送入缓冲区某已空单元中;空单元中;P2每次用每次用getodd()从该缓冲区中从该缓冲区中取出一个奇数并用取出一个奇数并用countodd()统计奇数个数;统计奇数个数;P3每次用每次用geteven()从该缓冲区中取出一个从该缓冲区中取出一个偶数并用偶数并用counteven()统计偶数个数。

请用统计偶数个数。

请用信号量机制实现这三个进程的同步和互斥信号量机制实现这三个进程的同步和互斥活动,并说明所定义信号量的含义。

要求活动,并说明所定义信号量的含义。

要求用伪码描述。

用伪码描述。

2009年全国硕士研究生年全国硕士研究生入学考试题入学考试题进程管理习题互斥信号量:

互斥信号量:

mutex初值为初值为1;同步信号量:

同步信号量:

P1、P2因奇数的放与取而同因奇数的放与取而同步,设置信号量步,设置信号量odd,初值为,初值为0;P1、P3因因偶数的放与取而同步,设置信号量偶数的放与取而同步,设置信号量even,初,初值为值为0;P1、P2、P3因共享缓冲区而同步,因共享缓冲区而同步,设置信号量设置信号量empty,初值为,初值为N。

进程管理习题互斥信号量:

互斥信号量:

mutex初值为初值为1;同步信号量:

同步信号量:

P1、P2因奇数的放与取而同步,设置信号量因奇数的放与取而同步,设置信号量odd,初值为,初值为0;P1、P3因偶数的放与取而因偶数的放与取而同步,设置信号量同步,设置信号量even,初值为,初值为0;P1、P2、P3因共享缓冲区而同步,设置信号量因共享缓冲区而同步,设置信号量empty,初值为,初值为N。

P1:

produce();P(empty);P(mutex);put();V(mutex);Ifnumber%2=0V(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1