文档介绍:第三章处理机调度与死锁
处理机调度的基本概念
调度算法
产生死锁的原因和必要条件
预防死锁的方法
死锁的检测与解除
处理机调度的基本概念
系统调度的实质是资源分配
系统调度的三个层次:
高级调度
中级调度
低级调度
概念、要解决的问题
高级调度
也称为作业调度或长程调度。把外存上的作业调入内存。
执行高级调度时,需考虑的问题:
每次接纳多少个作业?
取决于多道程序度(Degree)。太多太少?
接纳哪些作业?
取决于何种调度算法。
低级调度
也称进程调度。处理机--就绪进程---执行
进程调度有两种基本方式:
非抢占式
一旦CPU分给某进程后,它一直执行,直到完成或发生某事件被阻塞,才分给其它进程。
抢占式
允许根据某原则,停止正在执行的进程,重新分配
有时间片原则、优先权原则、短作业优先原则。
进程(CPU)调度要解决的问题
WHAT:按什么原则分配CPU
—进程调度算法
WHEN:何时分配CPU
—进程调度的时机
HOW: 如何分配CPU
—CPU调度过程(进程的上下文切换)
中级调度
介于高级调度与低级调度之间,其主要目的是为了提高内存的利用率和系统吞吐量。
涉及进程在内外存间的交换,把暂不执行的进程部分或全部换出到外存,将当前进程所需部分换入到内存,为当前进程的执行提供所需内存空间。
注意:指令和数据必须在内存里才能被处理机直接访问。
三种调度的比较:
进程调度运行频率最高,一般10~100ms进行一次,故其算法不能太复杂,以免占用太多CPU时间。
作业调度是一批(个)作业运行完,退出系统,需重新调入一批(个)作业进入内存,故周期较长,允许算法较复杂。
中级调度介于上述二者之间。
就绪队列
CPU
阻塞队列
时间片完
等待事件
进程完成
进程调度
事件出现
交互用户
调度队列模型一:只有进程调度
分时系统中
就绪队列
CPU
阻塞队列
时间片完
等待事件2
进程调度
事件1出现
作业调度
调度队列模型二:高级调度、进程调度并存
阻塞队列
阻塞队列
等待事件n
等待事件1
事件2出现
事件n出现
后备队列
进程完成
批量作业
批处理系统中
调度队列模型三:高、中、低调度并存
就绪队列
CPU
就绪挂起队列
时间片完
进程调度
作业调度
阻塞队列
阻塞挂起队列
等待事件
进程完成
事件出现
中级调度
后备队列
批量作业
交互型作业
事件出现
挂起