某系统的进程状态图如图所示。
(1)说明系统发生变迁3,4,6的原因。
(2) 下述因果变迁是否会发生?若会,在什么情况下发生? a. 3->5 b. 6->4 c. 6->7
(3) 根据此进程状态图,说明该系统的 CPU 调度策略和调度效果。
解答:
(1)发生变迁3的原因是进程发出I/O请求,发生变迁4的原因是进程当前使用的CPU时间片用完,发生变迁6的原因是进程等待的I/O事件发生,I/O中断服务程序唤醒进程到就绪队列。
(2)a. 3->5的因果变迁会发生,当运行的进程因为等待I/O事件而进入阻塞状态,同时高优先级就绪队列为空,那么操作系统会直接从低优先级就绪队列中选择进程进行运行。b. 6-> 4的因果变迁不会发生,变迁4发生的原因是CPU的时间片被用完。c. 6->7的因果变迁不会发生,变迁7发生的原因是当前进程运行结束
(3)该系统CPU采用的是多级队列调度策略,系统将进程分为两个优先级队列,高优先级队列和低优先级队列,高优先级队列中进程的时间片100ms, 低优先级队列中进程的时间片是500ms。进程首次进入就绪状态都会进入高优先级就绪队列,如果一个时间片运行不完,则会进入低优先级就绪队列。当进程从阻塞状态恢复到就绪状态也会进入到高优先级队列。该调度策略体现了短作业优先的思想,也避免了进程饥饿的问题。特别是针对I/O型的进程,可以有效提高系统的设别利用率和吞吐量。
描述一下内核在两个进程切换过程中做的工作?
解答:两个进程切换的工作涉及到当前进程的保存和新进程的装载两个部分。当进程发生切换操作时,内核首先需要保存原进程的数据到进程控制块这个数据结构中。根据调度规则选择合适的进程,并装载该进程控制块中的信息。内核通知CPU执行新进程。
设有一组进程,它们需要占用 CPU 的时间及优先级如下所示:
进程 CPU时间 优先级
P1 10 3
P2 1 1
P3 2 3
P4 1 4
P5 5 2
假设各进程在时刻0按P1、P2、P3、P4、P5的顺序到达。
(1) 画出分别采用调度算法FCFS(先来先服务)、SJF(最短作业优先)、非抢占式优先级(nonpreemptive priority,数值小的优先级大)及RR(时间片轮转,时间 片为1)时的调度顺序甘特图(Gantt chart)。
(2) 计算各种调度算法下每个进程的周转时间(turnaround time)和平均周转时间?
(3) 计算各种调度算法下每个进程的等待时间(waiting time) 和平均等待时间?
(4) 哪个调度算法可以得到最小的平均等待时间?
解答: