进程调度
在多道程序中, 调度的实质是资源的分配, 处理机调度即对处理机资源的分配。
处理机调度的层次
- 高级调度
又称长程调度和作业调度,调度的对象为作业。
主要用于多道批处理系统中,分时和实时系统中不设置高级调度 - 低级调度
又称进程调度和短程调度。调度的对象为进程或者内核级线程。
主要的功能是根据某种算法,决定就绪队列中的哪一个进程获得处理机并分配。 - 中级调度
又称内存调度。引入的主要目的是提高内存利用率和系统吞吐量。
将那些不运行的进程调度至外存等待,进程从就绪态变成挂起态。
进程调度的任务
- 保存处理机的现场信息,如程序计数器, 寄存器等。
- 按照某种算法选取进程。
- 分配处理器给进程。将进程的程序控制快中有关处理机现场的信息装入处理器,之后移交控制权给进程。
进程调度机制
实现进程调度应有如下三个基本部分
- 排队器
将所有就绪的进程按照一定的策略排成一个或多个队列,便于调出程序最快找到 - 分派器
将调度选择的进程从就绪队列中取出,进行分派器到新进程的上下文切换并分配处理机。 - 上下文切换器
切换分派器和当前程序的上下文。
进程调度的方式
1. 非抢占式
采用这种方式,一旦将处理机分配给进程后就要一直运行下去,不会因为时钟中断或其他原因去抢占当前正在运行程序的处理机。
采用非抢占方式可能引起调度的因素有
- 进程执行完毕,或