第一范文网 - 专业文章范例文档资料分享平台

(完整版)操作系统概念第七版习题答案(中文版)完整版

来源:用户分享 时间:2025/8/24 7:32:45 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

b.平均周转时间和最大等待时间 c.I/O设备利用率和CPU利用率

答:a.CPU利用率和响应时间:当经常性的上下文切换减少到最低时,CPU利用率增

加。通过减少使用上下文切换程序来降低经常性的上下文切换。但这样可能会导致进程响应时间的增加。

b.平均周转时间和最大等待时间:通过最先执行最短任务可以使平均周转时间最短。然而,这种调度策略可能会使长时间运行的任务永远得不到调度且会增加他们的等待时间。

c.I/O设备利用率和CPU利用率:CPU利用率的最大化可以通过长时间运行CPU 限制的任务和同时不实行上下文切换。I/O设备利用率的最大化可以通过尽可能调度已经准备好的I/O限制的任务。因此,导致上下文切换 。

5.3考虑指数平均公式来预测下一次CPU区间的长度,使用以下参数值会有什么影响?

a.a=0和t=100毫秒 b.a=0.99和t=10毫秒

答:当a=0和t=100毫秒时,公式总是会预测下一次的CPU区间为100毫秒。当 a=0.99和t=10毫秒时,进程最近的行为是给予更高的重量和过去的就能成相比。因此,调度算法几乎是无记忆的,且简单预测未来区间的长度为下一次的CPU执行的时间片。 5.4考虑下列进程集,进程占用的 CPU 区间长度以毫秒来计算:

进程 P1

区间时间 10

优先级 3 1 3 4 2

P2 1 P3 2 P4 1 P5 5

假设在时刻 0 以进程 P1,P2,P3,P4,P5 的顺序到达。 RR(时间片=1)算法调度时进程的执行过程。

b.在 a 里每个进程在每种调度算法下的周转时间是多少? c.在 a 里每个进程在每种调度算法下的等待时间是多少? d.在 a 里哪一种调度算法的平均等待时间对所有进程而言最小?答:a.甘特图略 b.周转时间

a.画出 4 个 Gantt 图分别演示用 FCFS、SJF、非抢占优先级(数字小代表优先级高)和

P1 P2 P3 P4 P5 FCFS 10 11 13 14 19 RR 19 2 7 4 14 RR SJF 19 1 4 2 9 SJF 非抢占优先级 16 1 18 19 6 非抢占优先级 c.等待时间 FCFS P1 P2 P3 P4 P5 0 10 11 13 14 9 1 5 3 9 9 0 2 1 4 6 0 16 18 2 d.SJF 5.5下面哪些算法会引起饥饿

a.先来先服务 b.最短工作优先调度 c.轮换法调度 d.优先级调度

答:最短工作优先调度和优先级调度算法会引起饥饿

5.6考虑 RR 调度算法的一个变种,在这个算法里,就绪队列里的项是指向 PCB 的指针。

a.如果把两个指针指向就绪队列中的同一个进程,会有什么效果? b.这个方案的主要优点和缺点是什么?

c.如何修改基本的 RR 调度算法,从而不用两个指针达到同样的效果?

答.a.实际上,这个过程将会增加它的优先权,因为通过经常得到时间它能够优先得以

运行。

b.优点是越重要的工作可以得到更多的时间。也就是说,优先级越高越先运行。然而,结果将由短任务来承担。 c.分配一个更长的时间给优先级越高的程序。换句话说,可能有两个或多个时间片在RR

调度中。 5.7考虑一个运行十个I/O限制任务和一个CPU限制任务的系统。假设,I/O限制任务一次分配给一个I/O操作1毫秒的CPU计算,但每个I/O操作的完成需要 10毫秒。同时,假设间接的上下文切换要0.1毫秒,所有的进程都是长进程。对一个RR调度来说,以下情况时CPU 的利用率是多少: a.时间片是1毫秒

b.时间片是10毫秒答:a.时间片是1毫秒:不论是哪个进程被调度,这个调度都会为每一次的上下文切换花费一个0.1毫秒的上下文切换。CPU的利用率是1/1.1*100=92%。 b.时间片是10毫秒:这I/O限制任务会在使用完1毫秒时间片后进行一次上下文切换。这个时间片要求在所有的进程间都走一遍,因此,10*1.1+10.1(因为每个I / O限定任务执行为1毫秒,然后承担上下文切换的任务,而CPU限制任务的执行10毫秒在承担一个上下文切换之前) 。因此,CPU的利用率是20、21.1*100=94%。

5.8考虑一个实施多层次的队列调度系统。什么策略能够使一个计算机用户使用由用户进程分配的最大的CPU时间片。

答:这个程序可以使分配给它的没有被完全利用的CPU时间最大化。它可以使用分配给它的时间片中的绝大部分,但在时间片结束前放弃CPU,因此提高了与进程有关的优先级。 1. 5.9考虑下面的基于动态改变优先级的可抢占式优先权调度算法。大的优先权数代表高优先权。当一个进程在等待 CPU 时(在就绪队列中,但未执行),优先权以α速率改

变;当它运行时,优先权以速率β改变。所有的进程在进入就绪队列时被给定优先权为 0。参数α 和β可以设定给许多不同的调度算法。

a.β>α>0时所得的是什么算法? b.α<β<0时所得的是什么算法?答:a.FCFS b.LIFO

5.10解释下面调度算法对短进程编程度上的区别: a.FCFS b.RR

c.多级反馈队列

答:a.FCFS----区别短任务是因为任何在长任务后到达的短任务都将会有很长的等待时间。 b. RR-----对所有的任务都是能够相同的(给它们相同的CPU时间区间),所以,短任务可以很快的离开系统,只要它们可以先完成。 c. 多级反馈队列和RR调度算法相似——它们不会先选择短任务。 5.11用Window XP的调度算法,下列什么是数字优先的线程。

a.相对优先级的值为REALTIME_PRIORITY_CLASS的属于实体优先类型的线程 b.相对优先级的值为NORMAL_PRIORITY_CLASS的属于NORMAL类型的线程 c.相对优先级的值为HIGH_PRIORITY_CLASS的属于ABOVE_NORMAL类型的线程 答:a.26 b.8 c.14

5.12考虑在Solaris操作系统中的为分时线程的调度算法:

a:一个优先权是10的线程的时间片是多少?优先权是55的呢?

b:假设优先权是35的一个线程用它所有的时间片在没有任何阻止的情况下,这调度算法将会分配给这个线程什么样新的优先权?

c:假设一个优先权是35的线程在时间片结束前阻止I/O操作。这调度算法将会分配给这个线程什么样新的优先权?

答:a:160和40

b:35 C:54

5.13传统UNIX调度在优先数和优先级间成反比关系:数字越高,优先权越低。该调度进程利用下面的方程重新计算进程的优先权一次一秒: 优先权= (最近CPU使用率/ 2 ) +基本数

这里的基本数= 60,最近的 CPU使用率是指一个表明优先权从上一次重新计算后开始进程被CPU使用的情况。

假设最近进程p1的CPU使用率是40个,p2是18 ,p3是10。当优先权重新计算后这三个进程的新的优先权是什么?在此信息的基础上,传统UNIX的调度会不会提高或降低CPU限制的进程的相对优先权?

答 : 分配给这些进程的优先权分别是80,69和65.这调度降低了CPU限制的进程的相对优先权。 第六章 管程

6.1第一个著名的正确解决了两个进程的临界区问题的软件方法是Dekker设计的。两个进程P0和P1共享以下变量:

boolean flag[2]; int turn;

/*initially false*/

进程Pi(i==0或1)和另一个进程Pj(j==0或1)的结构见图7.27。 证明这个算法满足临界区问题的所有三个要求。 do{ flag[i]=ture; while(flag[j]){ if(turn==j){ flag[i]=false; while(turn==j); flag[i]=true; } } 临界区 turn=j; flag[i]=false; 剩余区

}while(1);

图 7.27 Dekker 算法中的进程 Pi 结构

答:该算法满足三个相互排斥条件。(1)相互排斥是为了确保使用的变量和标志是可变的。如果所有进程都把他们的变量设置为真,只有一个会成功,那就是哪个进程轮到的问题了。 等待中的进程只能够进入它的重要部分当其他进程在更新变量值时。

6.1 这两个进程的临界区域问题的最初的正确的软件解决方案是由 Dekker 提出的。P0、P1 两个进程,具有以下共同的变量: boolean flag[2]; /* initially false */ int turn;

进程 Pi(i==0 or1)的结构在 6.25 中已经出现过;其他进程为 Pj(j == 1 or 0)。证明这个算法满足关键问题的三个要求。

答:这个算法满足临界区域的三个条件:

(1) 在标记和返回变量的使用中,互斥条件是保证的。如果两个进程将它们的标识设为真,那么只有一个进程会成功进行,即轮到的那个进程。当另一个进程更新它的返回变量时,等待的那个进程只能进入它的临界区域。

(2) 就绪的进程,通过标志,返回变量。这个算法没有提供严格的交替。如果一个进程想要进入它们的临界区域,它可以将它的标识设为真,然后进入它们的临界区域。当退出它的临界区域,它可以设置转向其他进程的值。如果这个进程想要在其他进程之前再次进入它的临界区域,它会重复这样的进程:进入它的临界区域,在退出时转向另一个进程。

(3) 在双 T 返回变量的使用过程中,界等待受阻。假设两个进程想要进入它们的责任所在的临界区域。它们都将它们的标志的值设为真;而只有轮到的那个线程可以执行;其他的线程处于等待状态。如果界等待没有受阻,当第一个进程重复“进入-退出”它的临界区域这一过程。Dekker 算法在一个进程中设置一个转向另一个进程的值,从而保证另一个进程接下来进入它的临界区域。

6.2 针对有 n 个进程在带有较低时间限制的等待 n-1 个的轮次这样一个临界区域最早的解决 该问题的正确方法是由艾森伯格和麦圭尔提出的。这些进程有以下的共同的变量:枚举 pstate{idle, want in, in cs}; pstate flag[n]; int turn;

所有的枚举标志被初始为空,轮次的最初值是无关紧要的(在 0 和 n-1 之间)。进程 p 的结构在 6.26 中有说明。证明这个算法满足临界区域问题的三项要求。

答:a.互斥:注意到一个进程只有在下列条件满足时才能进入临界区域:没有其他进程在 CS 中有设置的标识变量。这是由于进程在 CS 中设置自身的标识变量之前要先检查其他进程的状态。我们保证没有两个进程将同时进入临界区域。

b.有空让进:考虑以下情况,当多进程同时在 CS 中设置它们的标识变量,然后检查是否有其他进程在 cs 中设置标识变量。当这种情况发生时,所有的进程意识到这里存在进程竞争,在外层 while(1)的循环下进入下一次迭代,重置它们的标识变量到 want 中。现在只有唯一的进程将设置它的轮次变量到 cs 中,这个唯一的进程就是其序号是最接近轮次的。从这个角度来说,对于哪些序号次接近轮次的新的进程就能决定进入临界区域,而且能同时在 CS 中设置它们的标识。随后这些进程意识到这里存在竞争的进程,于是重新启动进

(完整版)操作系统概念第七版习题答案(中文版)完整版.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5nwei5zy0j9pugm7qnnb9acj39qpyw00eg5_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top