51为什么对调度程序而言,区分CPU约束程序和IO约束程序很重要?答:在运行IO操作前,I0限制的程序只运行很少数量的计算机操作。而CPU约束程
序一般来说不会使用很多的CPU。另一方面,CPU约束程序会利用整个时间片,且不做任何阻碍IO操作的工作。因此,通过给IO约束程序优先权和允许在CPU约束程序之前运行,可以很好的利用计算机资源。
53考虑用于预测下一个CPU区间长度的指数平均公式。将下面的值赋给算法中的参数的含义是什么?
Aa0且t0100msBa099且t010ms答:当a0且t0100ms时,公式总是会预测下一次的CPU区间为100毫秒。当a099且t010毫秒时,进程将给予更高的重量以便能和过去相比。因此,调度算法几乎是无记忆的,且简单预测未来区间的长度为下一次的CPU执行的时间片。
54考虑下面一组进程,进程占用的CPU区间长度以毫秒来计算:
进程P1P2P3P4P5
区间时间101215
优先级31342
假设在0时刻进程以P1、P2、P3、P4、P5的顺序到达。
a画出4个Ga
tt图分别演示用FCFS、SJF、非抢占优先级(数字小代表优先级高)和
RR(时间片=1)算法调度时进程的执行过程。
b每个进程在每种调度算法下的周转时间是多少?
c每个进程在每种调度算法下的等待时间是多少?
d哪一种调度算法的平均等待时间最小?
答a
fFCFS:
P1
P2
P3
P4
P5
0SJF:
1011
1314
19
P2P4
P3
P5
P1
012
4
9
19
非抢占优先级:
P2
P5
P1
P3
P4
01
6
RR:
16
1819
P1P2P3P4P5P1P3P5P1P5P1P5P1P5
P1
01234567891011121314
19
b周转时间:
P1P2P3P4P5
FCFS1011131419
SJF
非抢占优先级
RR
19
16
19
1
1
2
4
18
7
2
19
4
9
6
14
c等待时间:
P1P2P3P4P5
FCFS010111314
SJF
非抢占优先级
RR
9
6
9
0
0
1
2
16
5
1
18
3
4
2
9
d从上表中可以看出SJF的等待时间最小。
f55下面哪种调度算法能导致饥饿a先到先服务b最短作业优先c轮转法d优先级答:最短作业优先和优先级调度算法能导致饥饿。因为对于优先级较低的作业来说,最短作业优先和优先级调度算法会使其无穷等待CPU,长期得不到调用,这就导致了饥饿问题,也叫无穷阻塞。
59考虑下面的动态改变优先级的抢占式优先级调度算法。大的优先级数代表高优先级。当一个进程在等待CPU时(在就绪队列中,但未执行),优先级以α速率改变;当它运行时,优先级以β速率改变。所有的进程在进入等待队列时被给定优先级为0。参数α和β可以进行设定得到许多不同的调度算法。aβα0是什么算法?bαβ0时是什么算法?答:aFCFS先到先服务调度算r