《操作系统》综合-软件工程教程.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
进程调度 1)设若干个生产者和若干个消费者共用一个有n个单元的有限缓冲区,为了是产销进程协调进行,有人利用P/V操作,对问题做如下安排: 引入两个私有信号量和一个公用信号量:full(初始为0,产品计数)、avail(初值为n,可用缓冲区数)和mutex(初值为1,表示没有进程正在使用缓冲区)。下面程序不完全,请在横线处填进适当的P/V操作。 var full,avail,mutex:semaphore; begin full:=0; avail:=n; mutex:=1; parbegin producer: repeat ... Produce next product; ... ____1___ ____2___ Add to buffer; ____3___ ____4___ Until false; Consumer; repeat ____5___ ____6___ take from buffer; ____7___ ____8___ ... consume product; ... Until false; parend; end; ① P(avail) ② P(mutex) ③ V(mutex) ④ V(full) ⑤ P(full) ⑥ P(mutex) ⑦ V(mutex) ⑧ V(avail) 2)今有一个文件F供进程共享,现把这些进程分为A、B两组,规定同组的进程可以同时读文件F:但当有A组(或B组)的进程在读文件F时就不允许B组(或A组)的进程读文件F。现定义两个计数器C1、C2,分别记录A组和B组中读文件F的进程数。当用P、V操作进行管理时需要三个信号量S1,S2和SAB才能保证正确地并发执行。程序结构如下: begin S1,S2,SAB:semaphore; C1,C2,:integer; S1:=1;S2:=1;SAB:=1: C1:=0;C2:=0; Cobegin processAi(i=1,2,厖) begin ( );/*1*/ C1:=C1+1; If C1=1 then ( );/*2*/ ( );/*3*/ Read F; ( );/*4*/ C1:=C1-1; If C1=0 then ( );/*5*/ ( );/*6*/ End; Cobegin processBj(j=1,2,厖) begin ( );/*7*/ C2:=C2+1; If C2=1 then ( );/*8*/ ( );/*9*/ Read F; ( );/*10*/ C2:=C2-1; If C2=0 then ( );/*11*/ ( );/*12*/ End; Conend; End; 回答: 1.说明信号量S1,S2,SAB的作用: S1的作用是( )。 S2的作用是( )。 SAB的作用是( )。 在上诉程序的填空处填上适当的P、V操作,以保证它们能够正确地并发执行 。 S1的作用是用于通知A组进程已经有B组进程读文件F S2的作用是用于通知B组进程已经有A组进程读文件F SAB的作用是用于 实现对共享变量C1和C2及临界区的互斥使用 P(SAB);(2)P(S2);(3)V(SAB);(4)P(SAB);(5)V(S2);(6)V(SAB)(7)P(SAB);(8)P(S1);(9)V(SAB);(10)P(SAB);(11)V(S1);(12)V(SAB) 3)在银行家算法中。若出现以下资源分配情况; 进程 资源最大需求 已分配资源 P0

文档评论(0)

a336661148 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档