教材为《操作系统概念》原书第九版,中文版,答案仅供参考。
5.7 假设有如下一组进程,它们的CPU执行时间以毫秒来计算:
进程 | 执行时间 | 优先级 |
---|---|---|
P1 | 2 | 2 |
P2 | 1 | 1 |
P3 | 8 | 4 |
P4 | 4 | 2 |
P5 | 5 | 3 |
假设进程按P1、P2、P3、P4、P5顺序在时刻0到达。
a.画出4个Gantt图,分别演示采用每种调度算法(FCFS、SJF、非抢占优先级(一个较大优先级数值意味着更高优先级)和RR (时间片=2))的进程执行。
b.每个进程在a里的每种调度算法下的周转时间是多少?
c.每个进程在a里的每种调度算法下的等待时间是多少?
d.哪一种调度算法的平均等待时间(对所有进程)最小?
答:
a. (图画得不太好,献丑了)
b.
周转时间 | FCFS | RR | SJF | 非抢占优先级 |
---|---|---|---|---|
P1 | 2 | 2 | 3 | 15 |
P2 | 3 | 3 | 1 | 20 |
P3 | 11 | 20 | 20 | 8 |
P4 | 15 | 13 | 7 | 19 |
P5 | 20 | 18 | 12 | 13 |
c.
等待时间 | FCFS | RR | SJF | 非抢占优先级 |
---|---|---|---|---|
P1 | 0 | 0 | 1 | 13 |
P2 | 2 | 2 | 0 | 19 |
P3 | 3 | 12 | 12 | 0 |
P4 | 11 | 9 | 3 | 15 |
P5 | 15 | 13 | 7 | 8 |
d. 平均等待时间
FCFS | RR | SJF | 非抢占优先级 |
---|---|---|---|
31/5 | 36/5 | 23/5 | 55/5 |
很明显,SJF的平均等待时间(对所有进程)最小。
5.12 现有运行10个I/O密集型任务和1个CPU密集型任务的一个系统。假设I/O密集型任务每1ms的CPU计算就进行一次I/O操作,并且每个I/O操作需要10ms来完成。另假设上下文切换开销是0.1ms,所有进程都是长时间运行的任务。请讨论在下列条件下轮转调度程序的CPU利用率:
a. 时间片为1ms
b. 时间片为10ms
答:
a. 当时间片为1ms时,无论哪个进程被调度,都会额外花费0.1ms进行一次上下文切换。因此,一个时间片的实际时长为1.1ms,但只有1ms是有效的。所以,利用率为1/1.1×100%=92%。
b. 当时间片为10ms时,对于I/O约束任务来说,在执行1ms后就会进行一次上下文切换。因此,对于一个时间片,十个I/O约束任务都会执行完毕,并进行上下文切换,然后执行CPU约束任务,再次进行九次相同的循环。因此,从整体来看,十次循环总共花费了10×(10×1.1<I/O约束任务>+10<CPU约束任务>)的时间,所以利用率为20/21.1×100%=94%。