在CPU分配资源的时候,我们需要考虑分配资源的规则,通过规则或者说算法选择一个进程给处理机执行就是 处理机调度,就像银行排队是先到者优先还是VIP客户优先。
调度层级
调度的层级分为:高级、中级、低级。
- 高级调度是作业调度,通过特定算法把作业从外存调入内存。由于内存空间有限,系统无法给用户提交的所有作业分配内存,没有被分配到内存的作业的代码存放在外存。系统根据算法从外存中选择一个作业放入内存并创建PCB,让作业有权竞争CPU 的控制器,当作业调出后再销毁PCB。一个作业的调度只有两次,调入时一次,调出时一次。
- 中级调度就是通过特定算法处于挂起状态的进程调入到内存里。引入虚拟存储技术后,当进程暂时不用运行时,系统会把进程的代码放到外存的挂起序列里,PCB依然放在内存,这时进程处于挂起状态,挂起又分为就绪挂起和阻塞挂起。当线程进入阻塞态后,就可以阻塞挂起,阻塞挂起后,进程可以被激活再次进入阻塞态,或事件出现进入就绪挂起。位于创建态、就绪态、运行态的进程都可以就绪挂起,但就绪挂起后,进程只能切换到就绪态。
- 低级调度是通过特定算法把就绪队列的进程调到CPU里执行。