专业综合操作系统练习题.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
专业综合操作系统练习题

专业综合Ⅰ ——操作系统 (一)进程与线程 (二)处理机调度 (三)同步与互斥 (四)死锁 (三)同步与互斥 注 意 由于缓冲区有N个,而且缓冲区又是临界资源,因此,需要增加一个信号量mutex来实现对缓冲区的互斥访问,其初始值为1。需要特别强调的是,这种情况下,mutex不能省略。 对缓冲区的互斥访问可以看作是对缓冲入口的互斥访问,当生产者使用缓冲区时,不允许消费者进入缓冲区,反之亦然。 在每个程序中用于实现互斥的wait(mutex)和signal(mutex)必须成对地出现;对资源信号量empty和full的wait和signal操作,同样需要成对地出现,但它们分别处于不同的程序中。 在每个程序中的多个wait操作顺序同样不能颠倒,应先执行对资源信号量的wait操作,然后再执行对互斥信号量的wait操作,否则可能引起进程死锁。 设置6个信号量full1、empty1、B-M1、full2、empty2、B-M2,它们的含义和初值如下: full1表示Buff1是否有数据,初值为0; empty1表示Buff1有空间,初值为m; B-M1表示Buff1是否可操作,初值为1; Full2表示Buff2是否有数据,初值为0; Empty2表示Buff2有空间,初值为n; B-M2表示Buff2是否可操作,初值为1; 【例11】 在一辆公共汽车上,司机和售票员各行其职,司机负责开车和到站停车;售票员负责售票和开、关门,当售票员关好车门后,司机才能继续开车行驶。试用P、V操作实现司机与售票员之间的同步。 【分析】这里存在两种同步关系: 司机到站停车后,售票员才能开门; 售票员关好车门后,司机才能启动汽车。 设初始状态为停车,车门开。 设信号量:close 表示门是否已关,能否启动车辆 stop 表示车是否已停,能否开车门 semaphore close=0,stop=1; main() { Cobegin drive() { While(true) { P(close); 启动车辆; 正常行驶; 到站停车; V(stop); } } Conductor() { While(true) { 关车门; V(close); 售票; P(stop); 开车门; 上下乘客; } } } 【例12】(2011年联考第45题)某银行提供一个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下: Cobegin{ Process 顾客i { 从取号机获得一个号码; 等待叫号; 获得服务; } Process 营业员 { while(TRUE) { 叫号; 为顾客服务; } } }Coend 请添加必要的信号量和P、V(或wait()、signal())操作,实现上述过程中的互斥与同步。要求写出完整过程,说明信号量的含义并赋初值。 【分析】 (1)互斥关系:顾客需互斥使用取号机,设一互斥信号量mutex,初值为1; (2)同步关系:顾客需要获得空座位等待叫号,当营业员空闲时,将选取一位顾客并为其服务。 Semaphore mutex=1; //互斥使用取号机 Semaphore empty=10; //空座位的数量 Semaphore full=0; //已占座位的数量 Semaphore service=0; //等待叫号 Cobegin { process 顾客i { P(empty); P(mutex); 从取号机获得一个号; V(mutex); V(full); P(service); //等待叫号 获得服务; } process 营业员 { while(TRUE) { P(full); V(empty); V(service); //叫号 为顾客服务; } } 【例13】有桥如图所示,车流如箭头所示,桥上不允许两车交汇,但允许同方向多辆车依次通过(即桥上可以有多个同方向的车)。用P、V操作实现交通管理以防止桥上堵塞。 桥 北 南 【分析】本题目类似“读者—写作”问题,但又有所不同。 这个题目要解决: 南、北互斥(桥上不允许两车交汇,相当于“读、写互斥”),需要设置一个互斥信号量mutex,初值为1; 南、南共享(相当于“读、读共享”),套用实现“读、读共享”的模式,需要设置一个共享变

文档评论(0)

yaocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档