操作系统五六章作业答案

习题

 

5.1为什么对调度程序而言,区分CPU约束程序和I/O约束程序很重要?

   答:

CPU的成功调度依赖于进程的如下属性:进程执行由CPU执行和I/O等待周期组成,进程在这两个状态之间切换。进程执行从CPU区间开始,在这之后是I/O区间,接着是另一个CPU区间,如此进行下去;最终,最后的CPU区间通过系统请求终止执行。这些CPU区间的长度呈现出指数或超指数形式的频率曲线,具有大量短CPU区间和少量长CPU区间。I/O约束程序通常具有很多短CPU区间。CPU约束程序可能有少量的长CPU区间。所以区分出CPU约束程序和I/O约束程序能够使调度程序更好的执行和选择合适的CPU调度算法。

 

5.3考虑用于预测下一个CPU区间的长度的指数平均公式。将下面的值赋给算法中的参数的含义是什么?

    a.a=0且t=100ms

b.a=0.99且t=10ms

答:

虽然不知道下一个CPU区间的长度,但是可以预测它。认为下一个CPU区间的长度与以前的相似。下一个CPU区间的通常可预测为以前CPU区间的测量长度的指数平均。设t n为第n个CPU区间的长度,设τn+1为下一个CPU区间的预测值。

因此,对于α,0<=α <=1,

定义τ n+1=αt n+(1-α) τ n

公式定义了一个指数平均。t n包括最近信息,τn存储了过去历史。参数α控制了最近和过去历史在预测中的相对加权。如果α=0,那么τ n+1=τ n,近来历史没有影响(当前情形为暂时的);如果α=1,那么τ n+1=t n,只有最近的CPU区间才重要(历史的被认为是无关的)。

所以:

a.      α=0且τ=100ms,则τ n+1=τ n=100ms,说明下一个CPU的区间长度和t n(最近信息)并没有关系,而是和τn存储的过去历史有关,并由它决定。

b.     α=0.99且τ=10ms,则τ n+1=0.99*tn+0.01*τn,说明t n给了很高的权重,下一个CPU的区间长度是和t n(最近信息)高度相关的,而和τn存储的过去历史关系不大。

a和b两个问题分别反映了两种极端情况,分别是下一个CPU区间长度取决于最近历史还是过去历史。但是更为常见的是,α=0.5,这样最近历史和过去历史同样重要。初始值τ0可作为常量或作为系统的总体平均值。

 

 

 

 

 

5.4考虑下列进程集,进程占用的CPU区间长度以毫秒来计算:

假设在时刻0以进程P1,P2,P3,P4,P5的顺序到达。

a.画出4个Gantt图分别演示用FCFS、SJF、非抢占优先级(数字小代表优先级高)和RR(时间片=1)算法调度时进程的执行过程。

b.在a里每个进程在每种调度算法下的周转时间是多少?

c.在a里每个进程在每种调度算法下的等待时间是多少?

d.在a里哪一种调度算法的平均等待时间对所有进程而言最小?

答:

a.     

 

b.     周转时间:

 

 

 

FCFS

SJF

非抢占优先级

RR

P1

10

19

18

19

P2

11

1

1

2

P3

13

4

8

7

P4

14

2

19

4

P5

19

9

6

14

 

c.      等待时间:

 

FCFS

SJF

非抢占优先级

RR

P1

0

9

8

9

P2

10

0

0

1

P3

11

2

6

5

P4

13

1

18

3

P5

14

4

1

9

 

d.     平均等待时间

 

FCFS

SJF

非抢占优先级

RR

T

19.6

3.2

6.6

5.4

由表格可知,SJF算法的平均的等待时间最小。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.5下面哪种调度算法能导致饥饿?

a.先到先服务

b.最短作业优先

c.轮换法

d.优先级

答:

饥饿现象是指某一种作业长时间等待而得不到运行的现象。

a.      先到先服务(FCFS):

FCFS调度算法是一种最简单的调度算法,该调度算法既可以用于作业调度也可以用于进程调度。在作业调度中,算法每次从后备作业队列中选择最先进入该队列的一个或几个作业,将它们调入内存,分配必要的资源,创建进程并放入就绪队列。

在进程调度中,FCFS调度算法每次从就绪队列中选择最先进入该队列的进程,将处理机分配给它,使之投入运行,直到完成或因某种原因而阻塞时才释放处理机。

FCFS调度算法属于不可剥夺算法。从表面上看,它对所有作业都是公平的,但若一个长作业先

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值