(完整版)操作系统答案2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

假设最近进程 p1 的 CPU使用率是 40 个, p2 是 18 , p3 是 10。当优先权重新计算后这三个
进程的新的优先权是什么?在此信息的基础上,传统
UNIX 的调度会不会提高或降低 CPU限
制的进程的相对优先权?
答 : 分配给这些进程的优先权分别是 优先权。
80,69 和 65. 这调度降低了 CPU限制的进程的相对
5.11 用 Window XP 的调度算法,下列什么是数字优先的线程。
a. 相对优先级的值为 REALTIME_PRIORITY_CLAS的S 属于实体优先类型的线程
b. 相对优先级的值为 NORMAL_PRIORITY_CLAS的S属于 NORMA类L 型的线程
c. 相对优先级的值为 HIGH_PRIORITY_CLASS的属于 ABOVE_NORM类AL型的线程
b.这个方案的主要优点和缺点是什么?
c.如何修改基本的 RR 调度算法,从而不用两个指针达到同样的效果? 答 .a. 实际上,这个过程将会增加它的优先权,因为通过经常得到时间它能够优先得以
运行。
b. 优点是越重要的工作可以得到更多的时间。也就是说,优先级越高越先运行。然
而,结果将由短任务来承担。
c. 分配一个更长的时间给优先级越高的程序。换句话说,可能有两个或多个时间片在 RR调度中。
调度中审查有关线程的进程。另一方面,这种统一会使进程资源限制更加困难。相
反,一些额外的复杂性被需要,用来确定哪个线程与哪个进程一致和执行重复的计
数任务。
4.7 由 4.11 给出的程序使用了 Pthread 的应用程序编程接口( API ),在程序的第 c 行 和第 p 行分别会输出什么?
答: c 行会输出 5, p 行会输出 0.
分配的最大的 CPU时间片。
答:这个程序可以使分配给它的没有被完全利用的
CPU时间最大化。 它可以使用分配给它
的时间片中的绝大部分,但在时间片结束前放弃
CPU,因此提高了与进程有关的优先级。
1. 5.9 考虑下面的基于动态改变优先级的可抢占式优先权调度算法。
大的优先权数代表高
优先权。当一个进程在等待 CPU 时(在就绪队列中,但未执行) ,优先权以 α 速率改变;
当它运行时,优先权以速率 β 改变。所有的进程在进入就绪队列时被给定优先权为 数 α 和 β 可以设定给许多不同的调度算法。
0。参
a.β >α>0 时所得的是什么算法?
b.α <β <0 时所得的是什么算法? 答: a.FCFS
b.LIFO
5.10 解释下面调度算法对短进程编程度上的区别:
a.FCFS
1
18
P5
14
9
4
2
d.SJF
5.5 下面哪些算法会引起饥饿
a. 先来先服务
b. 最短工作优先调度
Biblioteka Baidu
c. 轮换法调度
d. 优先级调度
答:最短工作优先调度和优先级调度算法会引起饥饿
5. 6 考虑 RR 调度算法的一个变种,在这个算法里,就绪队列里的项是指向
PCB 的指针。
a.如果把两个指针指向就绪队列中的同一个进程,会有什么效果?
程。但许多操作系统,例如 windows XP 和 Solaris ,对进程和线程都是一视同
仁。基本上,这种使用 notation 的系统,一个进程的数据结构包括一个指向属于
进程的不同线程的指针。区别建模过程和在内核中线程的两种方法。
答:一方面,进程和线程被视为相似实体的系统中,有些系统代码可以简化。例如, 一个调度器可以在平等的基础上考虑不同的进程和线程,且不需要特殊的代码,在
4.8 考虑一个多处理器系统和用多线程对多线程模式编写的多线程程序。 程数量多于系统中的处理器的数量,讨论下列情况下的性能意义:
让程序中的用户线
a. 由程序分配的内核线程的数量比处理器少 b. 由程序分配的内核线程的数量与处理器相同 c. 由程序分配的内核线程的数量大于处理器数量但少于用户线程的数量 答: 当内核线程的数量少于处理器时, 一些处理器将仍然处于空闲状态。 因为, 调度图中
d.在 a 里哪一种调度算法的平均等待时间对所有进程而言最小? 答: a.甘特图略
b.周转时间
FCFS
RR
SJF
非抢占优先级
P1
10
19
19
16
P2
11
2
1
1
P3
13
7
4
18
P4
14
4
2
19
P5
19
14
9
6
c.等待时间
FCFS
RR
SJF
非抢占优先级
P1
0
9
9
6
P2
10
1
0
0
P3
11
5
2
16
P4
13
3
个时间片要求在所有的进程间都走一遍,因此,
10*1.1+10.1( 因为每个 I / O限定任务执行
为 1 毫秒,然后承担上下文切换的任务,而 CPU限制任务的执行 10 毫秒在承担一个上下文
切换之前 ) 。因此, CPU的利用率是 20、 21.1*100=94% 。
5.8 考虑一个实施多层次的队列调度系统。 什么策略能够使一个计算机用户使用由用户进程
a. 时间片是 1 毫秒
b. 时间片是 10 毫秒
答:a. 时间片是 1 毫秒: 不论是哪个进程被调度, 这个调度都会为每一次的上下文切换花费
一个 0.1 毫秒的上下文切换。 CPU的利用率是 1/1.1*100=92% 。
b. 时间片是 10 毫秒:这 I/O 限制任务会在使用完 1 毫秒时间片后进行一次上下文切换。这
CPU 限制的程序之前运行,可以很好的利用计算机资源。 5.2 讨论以下各对调度标准在某种背景下会有的冲突
a.CPU 利用率和响应时间
b. 平均周转时间和最大等待时间 c.I/O 设备利用率和 CPU 利用率
答:a.CPU 利用率和响应时间: 当经常性的上下文切换减少到最低时, CPU 利用率增加。 通过减少使用上下文切换程序来降低经常性的上下文切换。但这样可能会导致进程
答: a.26
b.8
c.14
5. 12 考虑在 Solaris 操作系统中的为分时线程的调度算法:
a: 一个优先权是 10 的线程的时间片是多少?优先权是 55 的呢?
b: 假设优先权是 35 的一个线程用它所有的时间片在没有任何阻止的情况下,这调度算 法将会分配给这个线程什么样新的优先权?
c: 假设一个优先权是 35 的线程在时间片结束前阻止 这个线程什么样新的优先权?
证明这个算法满足临界区问题的所有三个要求。
度已经准备好的 I/O 限制的任务。因此,导致上下文切换

5.3 考虑指数平均公式来预测下一次 CPU 区间的长度,使用以下参数值会有什么影响?
a.a=0 和 t=100 毫秒
b.a=0.99
和 t=10 毫秒
答:当 a=0 和 t=100 毫秒时,公式总是会预测下一次的 CPU 区间为 100 毫秒。当
5.7 考虑一个运行十个 I/O 限制任务和一个 CPU限制任务的系统。假设, I/O 限制任务一次
分配给一个 I/O 操作 1 毫秒的 CPU计算,但每个 I/O 操作的完成需要 10 毫秒。同时,假设
间接的上下文切换要 0.1 毫秒,所有的进程都是长进程。对一个 RR调度来说,以下情况时
CPU的利用率是多少:
响应时间的增加。
b.
平均周转时间和最大等待时间:通过最先执行最短任务可以使平均周转时间最
短。然而,这种调度策略可能会使长时间运行的任务永远得不到调度且会增加他们
的等待时间。
c.I/O
设备利用率和 CPU 利用率: CPU 利用率的最大化可以通过长时间运行 CPU
限制的任务和同时不实行上下文切换。 I/O 设备利用率的最大化可以通过尽可能调
第六章 管程
6.1 第一个著名的正确解决了两个进程的临界区问题的软件方法是 程 P0 和 P1 共享以下变量:
Dekker 设计的。两个进
boolean flag[2]; /*initially false*/
int turn;
进程 Pi(i==0 或 1) 和另一个进程 Pj(j==0 或 1) 的结构见图 7.27 。
b.RR
c .多级反馈队列
答:a.FCFS---- 区别短任务是因为任何在长任务后到达的短任务都将会有很长的等待时间。
b.RR----- 对所有的任务都是能够相同的(给它们相同的 可以很快的离开系统,只要它们可以先完成。
CPU时间区间) ,所以,短任务
c. 多级反馈队列和 RR调度算法相似——它们不会先选择短任务。
第四章 线程
4.1 举两个多线程程序设计的例子来说明多线程不比单线程方案提高性能
答: 1 )任何形式的顺序程序对线程来说都不是一个好的形式。例如一个计算个人报酬
的程序。
2 )另外一个例子是一个“空壳”程序,如
C-shell 和 korn shell 。这种程序
必须密切检测其本身的工作空间。如打开的文件、环境变量和当前工作目录。
只有内核线程的处理器,而不是用户线程的处理器。当程序分配的内核线程的数量 与处理器相同时,那么有可能所有处理器将同时使用。然而,当一个内核块内的内 核(因页面错误或同时援引系统调用)相应的处理器将闲置。当由程序分配的内核 线程的数量大于处理器数量时,封锁一个内核线程并调出,换入另一个准备执行的 内核线程。因此,增加多处理器系统的利用率。
4.3 在哪些情况下使用多内核线程的多线程方案比单处理器系统的单个线程方案提供更好 的性能。
答:当一个内核线程的页面发生错误时, 另外的内核线程会用一种有效的方法被转换成 使用交错时间。另一方面,当页面发生错误时,一个单一线程进程将不能够发挥有
效性能。因此,在一个程序可能有频繁的页面错误或不得不等待其他系统的事件的
a=0.99 和 t=10 毫秒时, 进程最近的行为是给予更高的重量和过去的就能
成相比 。
因此, 调度算法几乎是无记忆的, 且简单预测未来区间的长度为下一次的 CPU 执行
的时间片。
5.4 考虑下列进程集,进程占用的 CPU 区间长度以毫秒来计算:
进程 P1 P2 P3 P4 P5
区间时间 10
1 2 1 5
4.2 描述一下线程库采取行动进行用户级线程上下文切换的过程 答:用户线程之间的上下文切换和内核线程之间的相互转换是非常相似的。
但它依赖于
线程库和怎样把用户线程指给内核程序。一般来说,用户线程之间的上下文切换涉
及到用一个用户程序的轻量级进程( LWP)和用另外一个线程来代替。这种行为通
常涉及到寄存器的节约和释放。
情况下,多线程方案会有比单处理器系统更好的性能。
4.4 以下程序中的哪些组成部分在多线程程序中是被线程共享的?
a. 寄存值
b. 堆内存
c. 全局变量 d. 栈内存
答:一个线程程序的线程共享堆内存和全局变量, 值和栈内存。
但每个线程都有属于自己的一组寄存
4 . 5 一个采用多用户线程的多线程方案在多进程系统中能够取得比在单处理器系统中更好 的性能吗?
I/O 操作。这调度算法将会分配给
答: a:160 和 40
b:35
C : 54
5.13 传统 UNIX 调度在优先数和优先级间成反比关系:数字越高,优先权越低。该调度进程
利用下面的方程重新计算进程的优先权一次一秒
:
优先权 = (最近 CPU使用率 / 2 ) + 基本数
这里的基本数 = 60, 最近的 CPU 使用率是指一个表明优先权从上一次重新计算后开始进程被 CPU使用的情况。
第五章 CPU 调度
5.1 为什么对调度来说,区分 I/0 限制的程序和 CPU 限制的程序是重要的?
答: I/0 限制的程序有在运行 I/O 操作前只运行很少数量的计算机操作的性质。这种 程序一般来说不会使用很多的 CPU。另一方面, CPU 限制的程序利用整个的时间片,
且不做任何阻碍 I/O 操作的工作。因此,通过给 I/O 限制的程序优先权和允许在
答:一个包括多用户线程的多线程系统无法在多处理系统上同时使用不同的处理器。 操作系统只能看到一个单一的进程且不会调度在不同处理器上的不同进程的线程。
因此,多处理器系统执行多个用户线程是没有性能优势的。
4.6 就如 4.5.2 章节描述的那样, Linux 没有区分进程和线程的能力。且 Linux 线程都 是用相同的方法: 允许一个任务与一组传递给 clone() 系统调用的标志的进程或线
优先级 3 1 3 4 2
假设在时刻 0 以进程 P1, P2,P3, P4, P5 的顺序到达。
a.画出 4 个 Gantt 图分别演示用 FCFS、SJF、非抢占优先级(数字小代表优先级高)和
RR(时间片= 1)算法调度时进程的执行过程。
b.在 a 里每个进程在每种调度算法下的周转时间是多少?
c.在 a 里每个进程在每种调度算法下的等待时间是多少?
相关文档
最新文档