高级调度、中级调度和低级调度
处理机制调度目标是满足系统的目标(如响应时间、吞吐率、处理机速率)的方式。这个调度活动中分成三个层次:高级调度、中级调度和低级调度。
高级调度: 创建进程时执行,它需要决定是否把进程添加到当前活跃的进程集合中。由输入机向输入井传输的作业处于提交状态,进入输入井尚未被调入内存的作业处于“后备”状态。被作业调度(高级调度)选中进入内存处于活动中的作业而成为“活动”进程。作业调度使作业以进程的方式进入内存、并获得运行资格,但真正获得CPU运行,还需要经过进程或线程调度(低级调度)。
中级调度:中级调度一般与交换有关,决定是否把进程交换出去。交换是进程在内存与外存之间的调度。交换的目的:缓解内存空间等资源紧张的矛盾;减少并发度以降低系统开销。并发度太高会导致CPU资源在进程或线程之间的频繁切换,增加系统开销。
低级调度:决定执行哪一个就绪进程。CPU在可运行实体之间的分配(上面的活动空间)。
调度时机
一般下列事件发生将发生进程调度:
(1)创建进程:当创建新进程时,要决定运行父进程还是子进程;
(2)进程终止:当一个进程终止时,必须进行调度;从就绪队列中选择要执行的下一个进程;
(3)等待事件:运行进程由于等待I/O、信号量或其他原因而不得不放弃CPU,这样就必须选择另一个进程投入运行。
(4)中断发生:当I/O设备完成时后会发出I/O中断,原先等待I/O的进程就从阻塞态转换为就绪态。调度程序要决定是调用就绪队列的进程,还是选择被打断的进程。
(5)运到到时:当进程进程分配的时间片用完,此时选择新的进程投入运行。
调度算法指标
(1)CPU利用率:使CPU尽量忙的一个指标;
(2)吞吐率:单位时间内所处理的计算任务的数目;
(3)周转时间:从计算任务就绪到处理完毕。由多个任务周转时间的平均可以得到平均周转时间。
(4)带权周转时间:周转时间/实际运行时间。由多个任务带全周转时间的平均可以得到平均带权周转时间。
(5)响应时间:从任务就绪到处理开始;
(6)系统开销:从系统调度任务的过程中所付出的时/空代价。