处理机调度
引言:为什么要进行调度?
在多道程序环境中,内存中存在多个进程,其数目通常是多于处理机数目的。不论是出于提高处理机利用率、优先执行某个进程、提高系统吞吐量还是作业周转时间,我们都需要能动态的将处理机分配给某个进程(就绪态)。因此,处理机调度成为OS中十分重要的一个功能。
正文:三个层次
为方便对比,将以表格形式呈现
高级调度 | 中级调度 | 低级调度 | |
---|---|---|---|
又称 | 作业调度 | 内存调度 | 进程调度 |
调度对象 | 处于外存上的后备队列的作业 | 暂时不能运行的进程 | 就绪队列中的进程 |
位置变化 | 外存 -->内存 | 内存–>外存 | 内存–>CPU |
适用系统 | 批处理系统 | 批处理、实时、分时系统 | 批处理、实时、分时系统 |
运行频率 | 低,几分钟一次 | 中等 | 高,10~100ms一次 |
下面将会简述三种调度的基本流程
- 高级调度(作业调度):根据某种算法,选择外存上的后备队列中的几个作业放入内存,并为之创建进程,分配资源。然后将其放入就绪队列。
- 中级调度(内存调度):将暂时无法运行的进程调至外存等待(挂起状态)。当这些进程又具备运行条件,且内存有空余时,通过中级调度将这些进程重新调入内存,并且修改状态为就绪状态。
- 低级调度(进程调度):根据某种算法,从就绪队列中选择某些进程分配处理机资源。
参考:《计算机操作系统》第四版 汤小丹等著