进程调度的功能
- 记录系统中的所有进程的状态、优先级数和资源的需求情况
- 确定调度算法,决定将CPU分配给哪个进程多少时间
- 分配处理机给进程,进行CPU现场的保护和移交
调度的层次
一个作业从提交开始直到完成,往往要经历以下三级调度,如图所示。
作业调度。又称高级调度,.其主要任务是按一定的原则从外存上处于后备状态的作业中挑选一个(或多个)作业,给它(们)分配内存、输入/输出设备等必要的资源,并建立相应的进程,以使它(们)获得竞争处理机的权利。简言之,就是内存与辅存之间的调度。对于每个作业只调入一次、调出一次。
多道批处理系统中大多配有作业调度,而其他系统中通常不需要配置作业调度。作业调度的执行频率较低,通常为几分钟一次。
中级调度。又称内存调度。引入中级调度是为了提高内存利用率和系统吞吐量。为此,应使那些暂时不能运行的进程,调至外存等待,把此时的进程状态称为挂起状态。当它们已具备运行条件且内存又稍有空闲时,由中级调度来决定,把外存上的那些已具备运行条件的就绪进程,再重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待。
进程调度。又称为低级调度,其主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。进程调度是操作系统中最基本的一种调度,在一般操作系统中都必须配置进程调度。进程调度的频率很高,一般几十毫秒一次。
进程调度方式
非抢占式方式
系统一旦把处理机分配给就绪队列中优先级最高的进程后,该进程就一直执行下去,直至完成;或者发生某事件而不得不放弃处理机。通常用于批处理系统。抢占式方式
当一个进程正在执行时,系统可以基于某种策略剥夺CPU给其他进程。剥夺的原则有:优先权原则、短进程优先原则和时间片原则。一般用在分时系统和实时系统中。
调度的基本准则
- CPU利用率。尽可能是CPU处于忙碌状态
- 系统吞吐量。表示单位时间CPU完成作业的数量,短作业消耗的处理机时间较短
- 周转时间。从作业提交到