操作系统复习题总结.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 司机和售票员之间的同步关系 司机只有在售票员关车门后,才能启动汽车。 售票员只有在司机到站停车后,才能开车门。 解: Semaphore close=0,stop=0; driver( ) { /*司机*/ while(True) { P(close); 启动车辆; 正常行车; 到站停车; V(stop); } } Conductor( ){ /*售票员*/ while(True){ 关车门; V(close); 售票; P(stop); 开车门; 上下乘客; } } Main( ){ parbegin(driver,conductor); } 在生产者—消费者问题中应注意: (1)在每个程序中用于实现互斥的wait(mutex)和signal(mutex)必须成对地出现。 (2)对资源信号量empty和full的wait和signal操作,同样需要成对地出现,但它们分别处于不同的进程中,这样保证生产者进程和消费者进程的同步及交替执行。 (3)在每个进程中,多个wait操作顺序不能颠倒,而signal操作的次序是无关紧要的 。 例 一台计算机有10台磁带机被n个进程竞争,每个进程最多需要3台磁带机,那么n最多为_____时,系统没有死锁的危险? 解:n最大为4。 用整型信号量描述在哲学家进餐问题中,至多允许4个哲学家同时进餐的算法。 解:public class diningphilosophers { semaphore fork [5] = (1,1,1,1,1); semaphore room = 4; int i; void philosopher (int i) {//第i个哲学家进餐进程 while (true) { think(); wait (room); wait (fork[i]); wait (fork [(i+1) % 5]); eat(); signal (fork [(i+1) % 5]); signal (fork[i]); signal (room); } } } 例 在银行家算法中,若出现下述的资源分配情况: Process Max Allocation Available P0 0 0 4 4 0 0 3 2 1 6 2 2 P1 2 7 5 0 1 0 0 0 P2 3 6 10 10 1 3 5 4 P3 0 9 8 4 0 3 3 2 P4 0 6 6 10 0 0 1 4 试问: 1)该状态是否安全? 2)若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它? 3)如果系统立即满足P2的上述请求,系统是否立即进入死锁状态? 解: 1)利用安全性算法对上面的状态进行分析(如下表所示),找到了一个安全序列{P0,P3,P4,P1,P2}或{P0,P3,P1,P4, P2},故系统是安全的。 资源情况 进程 Work Need Allocation Work+Allocation Finish A B C D A B C D A B C D A B C D P0 1 6 2 2 0 0 1 2 0 0 3 2 1 6 5 4 True P3 1 6 5 4 0 6 5 2 0 3 3 2 1 9 8 6 True P4 1 9 8 6 0 6 5 6 0 0 1 4 1 9 9 10 True P1 1 9 9 10 1 7 5 0 1 0 0 0 2 9 9 10 True P2 2 9 9 10 2 3 5 6 1 3 5 4 3 12 14 14 True 2) P2发出请求向量Request(1,2,2,2)后,系统按照银行家算法进行检查: Request2(1,2,2,2)≤Need2(2,3,5,6); Request2(1,2,2,2)≤Available(1,6,2,2); 系统先假定可为P2分配资源,并修改Available,Allocation2和Need2向量: Availabe=(0,4,0,0)Allocation2=(2,5,7,6) Need2=(1,1,3,4) 进行安全性检查:此时对所有进程,条件Needi≦ Available(0,4,0,0)都不成立,即Available不能满足任何进

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档