Alex_McAvoy

想要成为渔夫的猎手

处理机调度的基本概念

【处理机调度】

在多道程序系统中,处理机的分配与运行均以进程为基本单位,对处理机的管理,就是对进程的管理,除了完成进程控制、进程同步、进程通信外,处理机还需要进行调度

处理机调度的实质是一种资源分配,即按照某种算法,将处理机资源分配给就绪队列中的一个

作业进入系统驻留在外存的后备队列上,再到调入内存运行完毕,可能经历下述三级调度:

1.高级调度

高级调度又称长程调度或作业调度,其调度的对象是作业,即一个具体的任务,用户每提交一个任务,本质是让操作系统启动一个程序来处理这个提交的任务

在批处理系统中,作业进入系统后先驻留外存,故需要有作业调度;在分时系统中,为及时响应,作业由终端直接送入内存,故也不需作业调度;在实时系统中,通常不需要作业调度

每个作业只进行一次调度,在进行作业调度时,主要完成以下任务:

  • 从外存的后备队列中选择哪些作业调入内存
  • 创建进程并分配必要的资源
  • 将创建的进程排在就绪队列上,准备执行

因此,每个作业在调入时会建立 PCB,在调出时会撤销 PCB,同时对任何一个作业,在调入时都需要作出两个决定:

  • 接纳多少作业:取决于多道程序度,应根据系统规模与运行速度等情况综合考虑
  • 接纳哪些作业:取决于采用的调度算法,例如先来先服务、短作业优先等

一个作业运行完毕退出系统时即触发重新调度一个新作业入内存,周期较长,大约几分钟一次,因而也允许作业调度算法花费较多的时间

2.中级调度

中级调度又称内存调度,引入中级调度的目的是为了提高内存利用率与系统吞吐量,其是按照一定的策略将处于挂起状态的进程调入内存,其运行频率介于进程调度与作业调度之间

在内存不够时,操作系统会应将那些暂时无法运行的进程调至外存等待,此时进程的状态称为就绪驻外存状态(挂起状态),当具备运行条件且内存有空闲时,会通过中级调度来决定将位于外存上的哪些就绪进程调度内存,并修改状态为就绪态

3.低级调度

低级调度又称短程调度或进程调度,是最基本的一种调度,在多道批处理、分时、实时三种类型的 OS 中,都必须配置这级调度,其调度的对象是进程

简单来说,进程调度是按照某种方法,从就绪队列中选择进程,并由分派程序将处理机分配给它

进程调度的运行频率最高,这使得其算法不能太过复杂,以免占用太多的 CPU 时间,在分时系统中,通常每 10~100ms 便进行一次进程调度

【调度队列模型】

不论高级、中级或者低级调度,都涉及到进程队列,由此形成了三类调度队列模型:

  1. 仅有进程调度的调度队列模型:常用于分时系统,用户键入的命令与模型均直接送入内存,其调度对象是处于就绪状态的进程
  2. 具有高级和低级调度的调度队列模型:常用于批处理系统,在批处理系统中,必须要具有作业调度
  3. 同时具有三级调度的调度队列模型:引入中级调度后,进程的状态发生了变化,就绪态扩为内存就绪、外存就绪,阻塞态扩为内存阻塞、外存阻塞,使得数据在内外存间互换
感谢您对我的支持,让我继续努力分享有用的技术与知识点!