学习笔记------处理器调度
1.1 CPU的三级调度
在支持交换调度的系统中,CPU调度的层次可分为三级:高级调度、中级调度和低级调度。
通俗来讲,三级调度中的作业调度是宏观调度,进程调度是微观调度。例如,在一个班级的学生中挑选几个学生去参加辩论赛,从班上没去参加的同学“宏观”来看,那几个同学都已经去进行辩论了,即都处于辩论的“运行”状态(作业的执行状态)。而具体到辩论会场,即从“微观”来看,这几个同学有正在辩论(相当于进程的运行状态),有的正准备辩论(相当于进程的就绪状态),有的还在写稿,未写好则不能辩论(相当于进程的阻塞状态)。三级调度之间的关系如下图。
1.高级调度
高级调度又称作业调度或宏观调度。
其功能是按一定的调度算法把外存上处于后备作业队列中的作业调入内存,为它们分配所需的资源并创建进程,然后将新创建的进程插入到系统的进程就绪队列中。
功能:
(1)选择作业
(2)分配资源
(3)创建进程
(4)作业控制
(5)回收资源
2.中级调度
又称交换调度。功能是在内存使用紧张的情况下,将内存中暂时无法运行的进程挂起,即由内存调至外存 (换出),使外存上具备运行条件的就绪进程能够及时进入内存运行。
3.低级调度
又称进程调度或微观调度。其主要功能使按照一定的调度算法将CPU分派给进程就绪队列中的某个进程。
1.2 处理器的调度队列模型
1. 仅有进程调度的调度队列模型
在分时系统中,通常采用仅有进程调度的CPU调度队列模型,如下图。
进程调度程序按轮转法,为进程就绪队列的队首进程分配一个事件片,让其占用CPU运行。进程运行时可能出现以下三种情况。
(1)进程运行完成。进程在分配给它的一个时间片之内完成了任务,则系统回收它所占用的CPU,该进程进入完成状态。
(2)时间片到。如果进程在分配给它的一个时间片内还未完成任务,则系统回收它所占用的CPU,并把该进程排到进程就绪队列的队尾等待下一个调度。
(3)发生等待事件。如果运行中发生等待事件,则将其插入到阻塞队列中,直到等待事件完成,再唤醒该进程使其变为就绪状态,并插入到就绪队列的队尾。
2.具有高级和低级调度的队列模型
在多道批处理器,一般采用两级调度的CPU调度队列模型。
3.同时具有三级调度的调度队列模型
在同时具有多道批处理和分时处理的系统中,为了调整系统的工作负荷而引入了中级调度。模型图如下。
1.3进程调度的方式和时机
1.进程调度方式
(1)非抢占式(非剥夺式)调度;
(2)抢占式(剥夺式)调度。
2.进程调度的时机
(1)当前运行进程执行结束而终止,或因等待某个事件的完成而无法继续执行,需要启动进程调度来选择一个新的就绪进程运行。
(2)在抢占式调度系统中,就绪队列中出现了优先级更高的进程,或当前运行进程的时间片已经用完,需要剥夺当前运行进程的CPu使用权,并将其分配给更高优先级的进程或时间片轮转的下一个就绪进程。
3.进程调度实现
(1)保存当前运行进程的现场信息
(2)选择待运行的进程
(3)为新选中的进程恢复现场