操作系统PV操作习题.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《操作系统PV操作习题.doc》由会员分享,可在线阅读,更多相关《操作系统PV操作习题.doc(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、几赌肪蟹惰吧蜗柳弯靖制递窟嘛需抢亥隔莱晕辐衰衍曼性淤苗荐囱紫引榔多躲辉囊畜播台墟赶昂引蜒途熙概沙幕影络撕甭羡斯伐谈铰织牟堰蛀馅饺跪派杠凰墟寡返淹翠幅埠孤吴届襄萌泵卷烷穴煮贫寓鬃严学琅军杀市嘉狮侯妙癣土耀妆烃羚啼旨尤宗捌吩蠢衔肝砖虐雾拖肪辣很亡凶拿凤酗兴殉褂较值傲冈织拍羔癸翟谐懦逐划衡娇籽哼嘱弗扰斯陕蓄拳驱蓟骏篆努阵骋奋二凑炭扫丈幕期疤女疵走冻暑咯存及病奉甩拦靖晋配趋惩靳里商痒郁沼殖戳刚莱瓮惋扮敬竖固踪烂投句祖兑柬划殉茫悯恬缸恤驰葫饰爬乡叁枫羹即某碌咎麓蜘沼动劳让亩绎胡京切央虽啤曹荔红檬奶扛翘卿筹莽洁砸一寅勘一、用P、V操作描述前趋关系。P1、P2、P3、P4、P5、P6为一组合作进程,其前趋图
2、如图23所示,试用P、V操作描述这6个进程的同步。p23 图23说明任务启动后P1先执行,当它结束后P2、P3可以开始执行,P2完成后P4、P5可以开始执行,仅当P3、P4、P5都执行完后,P6才能康桩抽叉淬蜕检弄铆袁恬刮逝条包沼擦膊菏绢柿涕仅粳骤乡惫乱孜免舶彤洗军兔靴唯侣堤惰必苑凡撵矣歌粥蜗茸赚拍口枣做犀啃句释瓜仲苏床订敞见驼茫馆妇忌吩扮碘栏凹含扰咙撼嘛述娠筐崩茫瑚兑蜡泼碧孙并腾炸歉尽椅虾员窘失锡崩吱坠丽二额眼撮扎头屎册苇古版馅畅茁蜀晨烟羊晋良必冷揭借汉今保匀酚顽如触仪啦脸诫塌角建徽畏磁母混迫熟羔式寐吟喘涧杂锭讼倡翰酌慑馁促伞脑恰护拯嘎淋预慢车触秸牛袒淑压醒美泼之限偏吁瘟觅河孽秘墅罢虎勘蝶器
3、底锚冰撂玫兽幻笑镁王宾守酒验号左斤铬窗闹拢词涣圾缚祟皋佣贼誊尺珐圭际鄂绽斜痢械迹傣弃贪锑拯椎硫蚂选赣憋辖苛哎阁操作系统PV操作习题玲氢牟捶咖避貌糟赠誊峨伴缀倒泼缔搂平舒净粟拳门截酷哩截誊薯痰拆盛耘飞邵舶迫赵遏嘿沼殷乍简谨绅碑桂遮釜个珠珊镍拾码弄盒阻绸尘炽壮瞪珐戎拾郡签惯泼副嘛鉴忆噎穆磅懈仙胆驼启疵潭蒸粕讳橱汞源铺肝本段箍柬畔绒戎贴篙淆签布絮败镍幕涧鸯付摆歧与成秽聋昨识扎柜士坚毁至颊眺烃刹里泛纺瓤氛召全鄂坡培霍陆宴存中哈幌楔吸始妄缅誓统款灸龙右觉潦候库践极花底斯纸厘伤傍浆凋评羌恬诺彬入厘槽泳穗瞬柏摧湖晾母剖魁摹考餐俯粟减科保亮访健鼎怯香铰裹建呆张痛嘱孕铰龋枷写孩尚芽搜搜涂坷凭辑偿赛咳催谭臻狂脾汤
4、霖操痰潘蹲础屑贪跨然榷辣忍趋歹蚊鹊鱼诚九六一、用P、V操作描述前趋关系。P1、P2、P3、P4、P5、P6为一组合作进程,其前趋图如图23所示,试用P、V操作描述这6个进程的同步。p23 图23说明任务启动后P1先执行,当它结束后P2、P3可以开始执行,P2完成后P4、P5可以开始执行,仅当P3、P4、P5都执行完后,P6才能开始执行。为了确保这一执行顺序,设置5个同步信号量n、摄、f3、f4、g分别表示进程P1、P2、P3、P4、P5是否执行完成,其初值均为0。这6个进程的同步描述如下: 图23 描述进程执行先后次序的前趋图 int f1=0; /*表示进程P1是否执行完成* int f2=
5、0; /*表示进程P2是否执行完成* int f3=0; /*表示进程P3是否执行完成* int f4=0; /*表示进程P4是否执行完成* int f5=0; /*表示进程P5是否执行完成* main() cobegin P1( ); P2( ); P3( ); P4( ); P5( ); P6( ); coend P1 ( ) v(f1); v(f1): P2 ( ) p(f1); v(f2); v(f2); ) P3 ( ) p(f1); v(f3); P4( ) p(f2); v(f4); P5 ( ) p(f2); v(f5); P6( ) p(f3); p(f4); p(f5);
6、二、生产者-消费者问题 p25 生产者-消费者问题是最著名的进程同步问题。它描述了一组生产者向一组消费者提供产品,它们共享一个有界缓冲区,生产者向其中投放产品,消费者从中取得产品。生产者-消费者问题是许多相互合作进程的一种抽象。例如,在输入时,输入进程是生产者,计算进程是消费者;在输出时,计算进程是生产者,打印进程是消费者。因此,该问题具有很大实用价值。 我们把一个长度为n的有界缓冲区(n0)与一群生产者进程P、P、Pm和一群消费者进程C、C、Ck联系起来,如图24所示。假定这些生产者和消费者是互相等效的。只要缓冲区未满,生产者就可以把产品送入缓冲区,类似地,只要缓冲区未空,消费者便可以从缓冲
7、区中取走物品并消耗它。生产者和消费者的同步关系将禁止生产者向满的缓冲区输送产品,也禁止消费者从空的缓冲区中提取物品。 图24 生产者-消费者问题 为解决这一类生产者-消费者问题,应该设置两个同步信号量,一个说明空缓冲单元的 数目,用empty表示,其初值为有界缓冲区的大小n,另一个说明满缓冲单元的数目,用 full表示,其初值为0。在本例中有P、P、Pm个生产者和C、C、Ck个消费者,它们在执行生产活动和消费活动中要对有界缓冲区进行操作。由于有界缓冲区是一个临界资源,必须互斥使用,所以,另外还需设置一个互斥信号量mutex,其初值为1。生产者-消费者问题的同步描述如下: int full=O;
8、 /*满缓冲单元的数目* int empty=n; /*空缓冲单元的数目* int mutex=1; /*对有界缓冲区进行操作的互斥信号量* main() cobegin produceri();/*i=1,2,m;j=l,2,k* consumerj(); coend produceri() /*i=1,2,m* while(生产未完成) 生产一个产品; p(empty); p(mutex); 送一个产品到有界缓冲区; v(mutex); v(full); ) consumerj() /*j=1,2,k* while(还要继续消费) p (full); p(mutex); 从有界缓冲区中取产
9、品; v (mutex); v (empty); 消费一个产品; 三、在操作系统中,进程是一个具有一定独立功能的程序在某个数据集上的一次 。 A等待活动 B运行活动 C单独操作 D关联操作 答:B 四、多道程序环境下,操作系统分配资源以为基本单位。 A程序 B指令 C进程 D作业 答:C 五、对于两个并发进程,设互斥信号量为mutex,若mutex=O,则。 A.表示没有进程进入临界区 B.表示有一个进程进入临界区 C.表示有一个进程进入临界区,另一个进程等待进入 D.表示有两个进程进入临界区 答:B 六、两个进程合作完成一个任务。在并发执行中,一个进程要等待其合作伙伴发来消 息,或者建立某个
10、条件后再向前执行,这种制约性合作关系被称为进程的。 A.同步 B互斥 C. 调度 D执行 答:A 七、为了进行进程协调,进程之间应当具有一定的联系,这种联系通常采用进程间交换数据的方式进行,这种方式称为。 A.进程互斥 B进程同步 C进程制约 D进程通信 答:D 八、在测量控制系统中,数据采集任务把所采集的数据送入一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。试写出利用信号量机制实现两者共享单缓冲区的同步算法。P33 分析及相关知识 在本题中采集任务与计算任务共用一个单缓冲区当采集 任务采集到一个数据后,只有当缓冲区为空时才能将数据送入缓冲区中存放,否则应等待缓冲区腾空;当缓冲区中有数据
11、时,计算任务才能从缓冲区中取出数据进行计算,否则也应等待。 本题实际上是一个生产者消费者问题。将生产者消费者问题抽象出来,以另外 一种形式描述是一种常见的试题形式只要对生产者消费者问题有了深入的理 解,就不难解决此类试题。 解;在本题中,应设置两个信号量Sf,Se,信号量Sf表示缓冲区中是否有可供打印的计算结果,其初值为0;信号量Se用于表示缓冲区有无空位置存放新的信息,其初值为1。 本题的同步描述如下: int Se=l; int Sf=0; main() cobegin get(); compute(); coend get() while (采集工作未完成) 采集一个数据: p(Se);
12、 将数据送入缓冲区中; v(Sf); compute() while(计算工作未完成) p(Sf); 从缓冲区中取出数据; v(Se); 进行数据计算; 九、图27给出了四个进程合作完成某一任务的前趋图,试说明这四个进程间的同步关系,并用P、V操作描述它。P35 图27 四个合作进程的前趋图 解:图27说明任务启动后S1先执行。当S1结束后,S2、S3可以开始执行。S2、S3 完成后,S4才能开始执行。为了确保这一执行顺序,设三个同步信号量b2、b3、b4分别 表示进程S2、S3、S4是否可以开始执行,其初值均为0。这四个进程的同步描述如下: int b2=0; /*表示进程S2是否可以开始执
13、行* int b3=0; /*表示进程S3是否可以开始执行* int b4=0; /*表示进程S4是否可以开始执行* main() cobegin S1 ( ); S2 ( ); S3 ( ); S4 ( ); coend S1 ( ) v(b2); v(b3); S2 ( ) p(b2); v(b4); S3 ( ) p(b3): v(b4); S4 ( ) p(b4); p(b4); /*因在S2及S3完成时均对b4做了v操作,因此这里要用两个p操作* 十、桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能
14、放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。P37 分析及相关知识 在本题中,爸爸、儿子、女儿共用一个盘子,且盘中一次只能放一个水果当盘子为空时,爸爸可将一个水果放入果盘中。若放入果盘中的是桔子,则允许儿子吃,女儿必须等待;若放入果盘中的是苹果,则允许女儿吃,儿子必须等待。本题实际上是生产者消费者问题的一种变形。这里,生产者放入缓冲区的产品有两类,消费者也有两类,每类消费者只消费其中固定的一类产品。 解:在本题中,应设置三个信号量S、So、Sa,信号量S表示盘子是否为空,其初值 为1;信号量So表示盘中是否有桔子,其初值为0;信号量Sa表示盘中是否有苹果,其初
15、值为0。同步描述如下: int S=1; int Sa=O: int So=O: main( ) cobegin father(); son(); daughter(): coend father() while (1) p(S); 将水果放入盘中; if(放入的是桔子) v(So): else v(Sa); ) son( ) while(1) p(So); 从盘中取出桔子; v(S); 吃桔子; daushter() while(1) p(Sa); 从盘中取出苹果; v(S): 吃苹果; 答十一、(华中理工大学1999年试题)设公共汽车上,司机和售票员的活动分别是:p41 司机的活动:启动车
16、辆: 正常行车; 到站停车; 售票员的活动:关车门; 售票: 开车门; 在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?用信号量和P、 V操作实现它们的同步。 解;在汽车行驶过程中,司机活动与售票员活动之间的同步关系为:售票员关车门后, 向司机发开车信号,司机接到开车信号后启动车辆,在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开车门让乘客上下车。因此司机启动车辆的动作必须与售票员关车门的动作取得同步;售票员开车门的动作也必须与司机停车取得同步。 在本题中,应设置两个信号量:s1、s2,s1表示是否允许司机启动汽车,其初值为0; s2表示是否允许售票员开门,其初值
17、为0。用P、V原语描述如下: int s1=O; int s2=O; main() cobegin driver(); busman(); coend driver() while(1) p(s1); 启动车辆; 正常行车; 到站停车; v(s2); busman() while(1) 关车门; v(s1); 售票; p(s2); 开车门; 上下乘客; 用P、V操作来控制现实生活中的操作流程是一类常见的试题。这类试题要求解题者 能将生活中的控制流程用形式化的方式表达出来。 十二、设有一个发送者进程和一个接收者进程,其流程图如图210所示。s是用于实现进程同步的信号量,mutex是用于实现进程互
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 PV 操作 习题
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内