操作系统第三章答案_第1页
操作系统第三章答案_第2页
操作系统第三章答案_第3页
操作系统第三章答案_第4页
操作系统第三章答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统第三章答案【篇一:操作系统第三章练习及答案】度与低级调度的主要任务是什么?为什么要引入中级调度?2. 何谓死锁?产生死锁的原因和必要条件是什么?3. 有一个具有两道作业的批处理系统,作业调度采用短作业优先的调度算法,进程调度采用以抢占式优先权调度算法,有如下表所示的作业序列,表中所第三章 答案1高级调度与低级调度的主要任务是什么?为什么要引入中级调度? 解答:高级调度是用于决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程、分配必要的资源,然后再将新创建的进程排在就绪队列上,准备报告。低级调度是决定就绪队列中哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作

2、。引入中级调度的目的是为了提高内存的利用率和系统吞吐量。为使那些暂时不能运行的进程不再占用内存空间,而将它们调至外存上去等待;当这些进程重又具备运行条件,且内存又稍有空闲时,由中级调度决定,将外存上那些重又具备运行条件的就绪进程重新调入内存,并修改其状态为就绪状态,挂在就绪队列上,等待进程调度。2何谓死锁?产生死锁的原因和必要条件是什么?解答:产生死锁的原因可归结为两点: 1、竞争资源; 2、进程推进顺序非法。 在同时具备以下四个必要条件时,就会产生死锁: 1、互斥条件,指在一段时间内某资源只能由一个进程占有。 2、请求和保持条件,指进程已经保持了至少一个资源,又提出了新的资源要求,而该资源又

3、被其它进程占有,此时请求进程阻塞,但不释放已持有的资源。3、不剥夺条件,指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。 4、环路等待条件,指存在一个进程 资源的环形链。3在银行家算法中,把 p0 发出的请求向量改为 requst0(0 ,1,0),系统是否能将资源分配给它?解答:当 p0 发出请求向量 requst0(0 ,1,0)后,系统按银行家算法进行检查:(1) requst0(0 ,1,0)=need(7,4,3)(2) requst0(0 ,1,0)=available(2,3,0)(3) 系统暂时先假定可为 p0 分配资源,并修改有关数据,如下所示:al

4、location needavailablea b cab c a b cp0 : 0 207 3 3 22 0p1 : 3 020 2 0 p2 : 3 026 0 0 p3 : 2 110 1 1 p4 : 0 024 3 1(4) 进行安全性检查work need allocation work+allocation finish a b c a b c a b c a b c true p1 2 2 0 0 20 3 0 25 2 2 truep3 5 2 2 0 1 12 1 1 7 3 3 true p4 7 3 3 4 3 1 0 0 2 7 35true p2 7 3 5 6

5、0 0 3 0 2 1 0 3 7 true p0 1 0 3 7 3 3 0 20 1 0 5 7 true5有一个具有两道作业的批处理系统,作业调度采用短作业优先的调度算法,进程调度采用以抢占式优先权调度算法,有如下表所示的作业序列,表中所1)、列出所有作业进入内存时间及结束时间2)、计算平均周转时间解答:本题中的系统是两道作业系统,因此每次只能有两个作业进入系统,作业调度采用短作业优先算法,只有调度进入系统的进程方能参与进程调度;进程调度采用基于优先数的抢占式调度算法,高优先级的进程可以抢占系统处理机。 本题的作业和进程的推进过程如下:10:00 a 作业到达,被作业调度程序调度进入系统

6、被进程调度程序调度开始运行10:20 a 作业运行 20 分钟,剩余 20 分钟由于优先级低,被进程调度程序调度处于就绪状态b 作业到达,被作业调度程序调度进入系统 由于优先级高,被进程调度程序调度处于开始运行状态 10:30 a作业等待 10 分钟,剩余 20 分钟继续等待b 作业运行 10 分钟,剩余 20 分钟继续运行c 作业到达,等待被作业调度程序调度10:50 a 作业等待 30 分钟,剩余 20 分钟由于优先级高,被进程调度程序调度处于开始运行状态11:1012:0012:20 b 作业运行 30 分钟,作业完成,结束运行 c 作业等待 20 分钟 由于估计运行时间较长,仍未被调入

7、系统中运行 d 作业到达,被进程调度程序调度处于就绪状态 a 作业运行 40 分钟,作业完成,结束运行c 作业等待 30 分钟,被作业调度程序调度进入系统 由于优先级高,被进程调度程序调度处于开始运行状态 d 作业等待 10 分钟 由于优 先级低,被进程调度程序调度处于就绪状态 c 作业运行 50 分钟,作业完成,结束运行 d 作业等待 60 分钟,被进程调度程序调度处于开始运行状态 d 作业运行 20 分钟,作业完成,结束运行【篇二:操作系统第三章作业答案】进程之间存在相互制约关系吗?若存在,是什么制约关系?为什么?几个同学去图书馆借同一本书。答:互斥,只能有一个借到篮球比赛中两队同学争抢篮

8、板球。答:互斥,只能有一个抢到果汁流水线生产中捣碎、消毒、灌装、装箱等各道工序。答:同步时进行,相互不影响商品的入库出库。答:同步时进行,相互无影响工人做工与农民种粮。答:同步进行,相互无影响2.在操作系统中引入管程的目的是什么?条件变量的作用是什么?答:引入管城是为了实现进程的同步和互斥。条件变量的作用是:设置多个信号量,使用大量的 p、v 操作,还要仔细安排多个 p 操作的排列次序,否则会出现错误的结果或出现死锁现象。3.说明 p、v 操作为什么要设计成原语。 答:用信号量 s 表示共享资源,其初值为 1 表示有一个资源。设有两个进程申请该资源,若其中一个进程先执行 p 操作。 p 操作中

9、的减1 操作有 3 条指令组成:去 s 送寄存器 r;r-1 送 s。若 p 操作不用原语实现,在执行了前述三条指令中的 2 条,即还未执行 r 送 s 时(此 时 s 值仍为 1),进程被剥夺 cpu ,另一个进程执行也要执行 p 操作,执行后 s 的值为 0,导致信号量的值错误。正确的结果是两个进程执行完 p 操作后,信号量 s 的值为 -1,进程阻塞。4.设有一个售票大厅,可容纳 200 人购票。如果厅内不足 200 人则允许进入,超过则在厅外等候;售票员某时只能给一个购票者服务,购票者买完票后就离开。试问: 购票者之间是同步关系还是互斥关系?答:互斥关系 用 p、v 操作描述购票者的工

10、作过程。如下:semaphoremutex=1; semaphorefull=200; void customer() p(metux); p(full); buying v(mutex); v(full);5.进程之间的关系如图 3-16 所示,试用 p、v 操作描述它们之间的同步。如下: 设:s1s2 为 a s1 s3为 b s2 s6 为 c s3 s4 为 d s3 s5为 e s4 s6 为 fs5s6 为 gsemaphorea,b,c,d,g,f,g=0,0,0,0,0,0,0; s1;v(a);v(b); p(a);s2;v(a); p(b);s3;v(b); p(d);s4

11、;v(d); p(e);s5;v(e); p(c);s6; p(f);p(g);s6 6.有 4 个进程 p1、p2、p3、p4 共享一个缓冲区,进程 p1 向缓冲区存入消息,进程 p2、p3、p4 从缓冲区中去消息,要求发送者必须 等三个进程都去过本消息后才能发送下调消息。缓冲区内每次只能 容纳一个消息,用 p、v 操作描述四个进程存取消息的情况。如下:semaphore: metux=0; p1;v(metux); p(metux); p(metux); p(metux); p2; p3; p4;v(metux); v(metux); v(metux); 7.分析生产者 消费者问题中多个

12、p 操作颠倒引起的后果。semaphore mutex=1 ;semaphore empty=n ;semaphore full=0 ;int i,j ; item buffern;item data_p,data_c; void producer() while(ture)produce an item in data_p;p(empty); p(mutex); bufferi=data_p;i=(i+1)%n; v(empty); v(full);void consumer() while(ture) p(full); p(mutex); data_c= bufferj;j=(j+1)%n

13、; v(metux);v(empty);coumer the item in data_c; 8.读者 写者问题中写者优先算法的实现。semaphore wmutex ,rmutex=1 ;int rcount=0 ; semaphore mutex=1 void reader () while(true)p(mutex); p(mutex); p(rmutex); p(wmutex); if(rcount=0) p(wmutex);rcount=rcount+1 ; v(rmutex); v(mutex); v(wmutex);v(mutex); 读; void writer()while(

14、true) 写; p(rmutex) ;rcount=rcount-1 ;if (rcount=0 ) v(wmutex );v(rmutex ); 9.写一个用信号量解决哲学家进餐问题不产生锁死的算法。如下:semaphore chopstick5=1,1,1,1,1; semaphore mutex; void profession(int n)while (ture) p(chopsticki;p(chopstick(i+1)%5 ); p(metux); 进餐; v(chopsticki;v(chopstick(i+1)%5 );思考;v(metux) ;10.一个文件可有若干个不同的

15、进程所共享,每个进程具有唯一的编号。假定文件可有满足下列限制的若干个不同的进程同时访问,并发访问该文件的哪些进程的编号的总和不得大于 n,设计一个协调对该文件访问的管程。不会做这道题11.用管程解决读者 写者问题,并采用公平原则。不会做这道题【篇三:操作系统 第三章部分答案】ass=txt7 设单处理器系统中有 5 个进程 p1、p2、p3、p4、p5并发执行,其运行时间分别为 10、1、2、1、5,优先权分别为 3、1、3、4、2,这些进程几乎同时到达,在就绪队列中的次序依次为 p1、p2、p3 、p4 、p5,试计算采用时间片轮转(时间片为 2),短进程优先、非抢占式优先权算法进行调度时的

16、平均周转时间和平均等待时间。 解:(1)时间片轮转调度算法,时间片大小为 2min采用时间片轮转调度算法进行调度时的平均周转时间为,平均带权周转时间为,平均等待时间为。 (2)短进程优先调度算法采用短进程优先调度算法进行调度时的的平均周转时间为,平均带权周转时间为,平均等待时间为。(3.1)非抢占式优先权算法(假设值越大,优先级越高)采用非抢占式优先权算法(假设值越大,优先级越高)进行调度时的的平均周转时间为,平均带权周转时间为,平均等待时间为。(3.2)非抢占式优先权算法(假设值越小,优先级越高)采用非抢占式优先权算法(假设值越小,优先级越高)进行调度时的的平均周转时间为,平均带权周转时间为

17、,平均等待时间为。8有 4 个作业 j1、j2 、j3、j4 ,它们达到的时间分别为 9:00 、9:40 、9:50 、10:10 ,所需的 cpu 时间分别为70min 、30min 、10min 、5min ,分别采用先来先服务调度算法和短作业优先调度算法进行调度,试问它们的调度顺序、作业的周转时间和平均周转时间各是多少? 解:(1)先来先服务调度算法(2)短作业优先调度算法9一个能容纳两道作业的批处理系统,作业调度采用短作业优先 调度算法,进程调度采用抢占式优先权算法。表 3-11 列出了先后到达的几个作业的相关时间和优先级(值越小,优先级越高),试计算:各作业进入内存的时间和完成时间

18、;平均周转时间。表 3-11 一个调度的例子解:本题中的批处理系统能容纳两道作业,即内存中最多允许存在两道作业。分析:(1)8:00 时,作业 job1 到达并投入运行。(2)8:20 时,作业 job2 到达,且它的优先级高于作业 job1 ,所以作业 job1 进入就绪队列,作业 job2 投入运行。(3)8:30 时,作业 job3 到达,因为内存中已经存在两道作业:job1 和 job2 ,所以作业 job3 进入后备队列等待高级调度。 (4)8:50 时,作业 job2 运行结束,作业 job4 到达系统。因为是按短作业优先的原则进行高级调度,加上作业 job4 的运行时间比job3 少,所以作业 job4 被装入内存就绪队列,而作业 job1 的优先级比作业 job4 的优先级高,所以作业

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论