处理机管理 处理机调度

1、处理机调度层次

处理器调度可分为三个级别:

  • 高级调度(作业调度、长程调度)
  • 中级调度(内存调度)
  • 低级调度

低级调度是各类操作系统中必须具有的功能

在纯粹的分时或实时操作系统,作业被直接调入内存,因此通常不需要高级调度

在分时系统或具有虚拟存储器的操作系统中,专门引进了中级调度,控制进程在内存和外存间的对换

处理机管理 处理机调度

2、调度算法选择原则

任何层次的处理器调度,都由操作系统的调度程序实施,调度程序(scheduler)所使用的算法称为调度算法

“效益优先,兼顾公平原则”

调度算法设计通常应考虑如下原则/目标:

  • 资源利用率
  • 吞吐率
  • 公平性
  • 响应时间
  • 周转时间
  • 截至时间的保证
  • 优先权原则

(1)资源利用率

  • CPU利用率 = CPU有效工作时间/CPU总的运行时间

  • CPU总的运行时间 = CPU有效工作时间+CPU空闲等待时间

(2)吞吐率

单位时间内CPU处理的作业数

  • 长作业多:吞吐率低
  • 短作业多:吞吐率高

(3)公平性

确保每个用户每个进程获得合理的CPU份额或其他资源份额,不会出现饿死情况

(4)响应时间

交互式进程从提交一个请求(命令)到接收到响应之间的时间间隔称响应时间

包括三部分时间:

  • 请求信息传到处理机的时间
  • 处理机处理请求信息的时间
  • 形成的响应回送到终端的时间

使响应时间尽可能的短,是分时系统衡量调度性能的一个重要指标

(5)作业周转时间

作业周转时间:批处理用户从作业提交给系统开始,到作业完成为止的时间间隔

  • 如果作业 i 提交给系统的时刻是 t s,完成时刻是 t f,该作业的周转时间 t i为:
    t i = t f – t s
  • 实际上,它是作业在系统里的等待时间与运行时间之和

使作业周转时间或平均作业周转时间尽可能短,是批处理系统衡量调度性能的一个重要指标

处理机管理 处理机调度 处理机管理 处理机调度

(6)截止时间保证

截止时间:指某个任务必须开始执行的最迟时间或必须完成的最迟时间,是评价实时系统调度性能的一个重要指标

(7)优先权

实时、分时、批处理均可遵循的原则,让一些紧急的任务尽快被执行

3、作业的管理与调度

(1)作业和进程的关系

  • 作业是用户提交给操作系统计算的一个独立任务。每个作业必须经过若干相对独立,且相互关联的顺序加工步骤才能得到结果。其中每个加工步骤称为一个作业步。
    进程是已提交完毕并选中运行的作业的执行实体,也是为完成作业任务向系统申请和分配资源的基本单位,它处于运行、就绪、等待等多个状态的变化之中,在CPU上推进。最终完成应用程序任务。

  • 作业是任务实体,进程是完成任务的执行实体。没有作业任务,进程无事可做,没有进程,作业任务无法完成。作业的概念更多的用于批处理操作系统中啊,而进程则用于各种多道程序设计系统。

(2)批处理作业

  • 批处理作业的输入
  • 批处理作业的建立
  • 批处理作业的调度
    • 选择作业
    • 分配资源
    • 创建进程
    • 作业控制
    • 后续处理

(3)交互式作业

交互作业的组织、提交和控制与批处理作业的差别:

  • 生命周期,由用户决定
  • 作业情况和资源需求通过具体命令来提交和控制
  • 输入一条/一组命令,则创建一个/若干进程来完成

具体的键盘命令:

  • 作业控制类
  • 资源申请类
  • 文件操作类
  • 目录操作类
  • 设备控制类

4、低级调度的功能和类型

(1)调度程序的任务

调度程序担负两项任务

  • 调度:确定就绪进程/线程使用处理器的次序
  • 分派:确定如何时分复用CPU

(2)低级调度类型

  • 剥夺方式(preemptive),抢占式:
    • 当一个进程正在处理器上执行时,系统可以根据规定的原则剥夺分配给它的处理器,而把处理器分配给其他进程使用
    • 有两种常见的剥夺原则:高优先级剥夺原则和时间片剥夺原则,前者高优先级进程或线程可以剥夺低优先级进程或线程运行,后者当运行进程时间用完后被剥夺处理器
  • 非剥夺方式(nonpreemptive),非抢占式:
    • 一旦某个进程或线程开始执行后便不再出让处理器,除非该进程或线程运行结束或发生了某个事件不能继续执行

区别:
处理机管理 处理机调度

5、作业调度和低级调度算法

(1)FCFS:先来先服务算法

处理机管理 处理机调度

处理机管理 处理机调度 处理机管理 处理机调度 处理机管理 处理机调度
处理机管理 处理机调度

(2)SJF:最短作业优先算法

处理机管理 处理机调度

处理机管理 处理机调度 处理机管理 处理机调度

兼顾最近信息与历史信息
历史越久远,对估算值影响越小

(3)SRTF:最短剩余时间优先算法

处理机管理 处理机调度

处理机管理 处理机调度 处理机管理 处理机调度

处理机管理 处理机调度

(4)HRRF:响应比高者优先算法

处理机管理 处理机调度
处理机管理 处理机调度

如果服务时间相同,则优先权取决于等待时间,待长作业等待时间足够长后,也将获得足够高的响应比

处理机管理 处理机调度 处理机管理 处理机调度

处理机管理 处理机调度

(5)PS:优先级调度算法(Priority Scheduling)

处理机管理 处理机调度

实现方式

  • 剥夺式 :SRTF(静态优先)
  • 非剥夺式:SJF(静态优先),HRRF(动态优先)

(6)RR:轮转调度算法

处理机管理 处理机调度

  • 基本轮转法:它要求每个进程轮流运行一个相同的时间片
  • 改进的轮转法:对于不同的进程给以不同的时间片;时间片的长短可以动态地修改等等
处理机管理 处理机调度

(7)MLFQ:多级反馈队列调度算法

多级反馈队列调度(反馈循环队列或多队列策略)

  • 主要思想:是将就绪进程分为两级或多级,系统相应建立两个或多个就绪进程队列,较高优先级的队列一般分配给较短的时间片。处理器调度每次先从高级就绪进程队列中选取可占有处理器的进程,只有在选不到时,才从较低级的就绪进程队列中选取。同一队列中的进程按先来先服务原则排队。开始工作时,每当一个新进程进入内存后,首先进入高优先级队列等候调度,若能在该级队列的一个时间片内执行完成,则撤离系统,否则进入低一级的队列等候调度,队列级别越低,时间片就越大,低优先级队列中的进程获得调度时运行的时间就长一些
  • 多级反馈队列如图所示:
    处理机管理 处理机调度

处理机管理 处理机调度

(8)LS:**调度算法(Lottery Scheduling)