进程管理习题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

进程管理习题图书馆有100个座位,有一张登记表,要求:阅读者进入时登记,取得座位号;出来时,注销;登记表同时只能由一个人使用;用P、V原语描述一个读者的使用过程进程管理习题信号量SN,表示可用座位数,初值为100;信号量sb,表示登记表是否正在使用,初值为1;reader(inti){enter();阅读;outer()}enter(){P(SN)P(sb)登记;V(sb);}outer(){P(sb);注销;V(sb);V(SN);}进程管理习题有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}进程管理习题三个进程P1、P2、P3互斥使用一个包含N(N0)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某已空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现这三个进程的同步和互斥活动,并说明所定义信号量的含义。要求用伪码描述。进程管理习题互斥信号量:mutex初值为1;同步信号量:P1、P2因奇数的放与取而同步,设置信号量odd;P1、P3因偶数的放与取而同步,设置信号量even;P1、P2、P3因共享缓冲区而同步,设置信号量empty。进程管理习题互斥信号量:mutex初值为1;同步信号量:P1、P2因奇数的放与取而同步,设置信号量odd;P1、P3因偶数的放与取而同步,设置信号量even;P1、P2、P3因共享缓冲区而同步,设置信号量empty。P1:P(empty);P(mutex);put();V(mutex);Ifnumber%2==0V(even)ElseV(odd);P2:P(odd);P(mutex);getodd();V(mutex);V(empty);countodd();P3:P(even);P(mutex);geteven();V(mutex);V(empty);counteven();进程管理习题设自行车生产线上有一支箱子,其中有N个位置(N≥3),每个位置可存放一个车架或一个车轮;又设有三个工人,其活动分别为:工人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原语实现爸爸,儿子女儿三个进程的同步。进程管理习题设三个信号量: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);吃苹果;}}进程管理习题设有一个可以装A、B两种物品的仓库,其容量无限大,但要求仓库中A、B两种物品的数量满足下述不等式:-M≤A物品数量-B物品数量≤N其中,M和N为正整数。试用信号量和P、V操作描述A、B两种物品的入库过程。进程管理习题已知条件-M≤A物品数量-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个。进程管理习题一座小桥(最多只能承重两个人)横跨南北两岸,任意时刻同一方向只允许一人过桥,南侧桥段和北侧桥段较窄只能通过一人,桥中央一处宽敞,允许两个人通过或歇息。试用信号量和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);进程管理习题某银行提供一个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号。等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述为:请添加必要的信号量和P、V(或wait()、signal())操作,实现上述过程的的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。Cobegin{process顾客{从取号机获得一个号码;等待叫号;获得服务;}process营业员{while(TRUE){叫号;为顾客服务;}}}coend进程管理习题互斥资源:取号机(一次只允许一位顾客领号),因此,设一个互斥信号量mutex;同步问题顾客需要获得空座位等待叫号,当营业员空闲时,将选取一位顾客并为其服务。空座位的有、无影响等待顾客数量,顾客的有、无决定了营业员是否能开始服务,故分别设置信号量empty和full来实现这一同步关系;顾客获得空座位后,需要等待叫号和被服务。这样,顾客与营业员就服务何时开始又构成了一个同步关系,定义信号量service来完成这一同步过程。进程管理习题semaphoremutex=1;//互斥使用取号机semaphoreempty=10;//空座位的数量semaphorefull=0;//已占座位的数量semaphoreservice=0;//等待叫号cobegin{process顾客process营业员{{P(empty);while(TRUE)P(mutex);{从取号机获得一个号;P(full);V(mutex);V(empty);V(full);V(service);//叫号P(service);//等待叫号为顾客服务;获得服务;}}}}coend进程管理习题评分说明①能正确给出互斥信号量定义、含义及初值,给1分。②能正确给出3个同步信号量定义、含义及初值,给2分。③营业员进程描述正确的,给2分。④顾客进程描述中,互斥描述正确的,给1分;同步描述正确的,给2分;共3分。⑤其他正确解答,参照①-④的标准给分。进程管理习题某系统有R1、R2和R3共3种资源,在T0时刻P1、P2、P3和P4这4个进程对资源的占用和需求情况见下页表,此时系统的可用资源向量为(2,1,2),问题:①将系统各种资源总数和此刻各进程对资源的需求数目用向量或矩阵表示出来;②如果此时P1和P2均发出资源请求向量Request(1,0,1),为保证系统的安全性,应如何分配资源给这两个进程?说明采用策略的原因。进程管理习题MaxUsed(Allocation)R1R2R3R1R2R3P1322100P2613411P3314211P4422002Need=322613314422100411211002222202103420-=①资源总量(2,1,2)+(1,0,0)+(4,1,1)+(2,1,1)+(0,0,2)=(9,3,6)进程管理习题MaxUsed(Allocation)NeedR1R2R3R1R2R3R1R2R3P1322100222P2613411202P3314211103P4422002002②Request1(1,0,1)≤Need1(2,2,2)Request1(1,0,1)≤Available(2,1,2)Used=201411211002Need=121202103002Available(1,1,1),不能满足任何进程,系统进入不

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功