操作系统4-处理机调度

4.处理机调度

4.1 处理机调度概述☆

4.1.1 三种等级的调度
  • 高级调度
    决定把外存上哪些作业调入内存、创建进程、分配资源
    作业调度、长程调度或宏观调度
  • 低级调度
    决定就绪队列中哪个进程应获得处理机
    进程调度、短程调度或微观调度
  • 中级调度
    完成进程的部分或全部在内、外存间的交换
    中程调度
4.1.2 共同的目标
  • 资源利用率( Utilization )高
    利用率
  • 公平性(Fairness)
  • 资源的平衡利用(Balance)
  • 策略的强制执行
4.1.3 各类系统自己的目标:

1.批处理系统的目标

  • 周转时间(Turnaround time)短
    假定某一作业提交系统的时间为Si,它被选中执行, 运行结束时的时间为Ei 。周转时间为Ti =Ei – Si
    则作业平均周转时间为:
    平均周转时间
    平均带权周转时间为:
    平均带权周转时间
  • CPU利用率( CPU Utilization )高
  • 系统吞吐量(Throughput)高
    吞吐量指在单位时间内系统所完成的作业数。

2.分时系统的目标

  • 响应时间(Response time)快
    响应时间是从用户通过键盘提交一个请求开始,直至系统首次产生响应为止的时间。
  • 均衡性 系统响应时间的快慢应与用户请求服务的复杂性相适应

3.实时系统的目标

  • 截止时间(Deadline)的保证
  • 可预测性(Predictability)准则

4.2 作业调度及算法

4.2.1 先来先服务调度算法(FCFS: First Come First Served)

调度思想:完成选择一个或多个最先进入后备队列的作业,将它们调入内存,为它们分配资源、创建进程,并放入就绪队列。
fcfs

FCFS的特点

  • 有利于长作业,不利于短作业
  • 有利于CPU密集/繁忙型的作业,不利于I/O 密集/繁忙型的作业
  • 几乎所有进程都交替出现计算和I/O请求。
  • CPU密集型作业(CPU-bound process)
    作业大部分时间用于计算
  • I/O密集型作业 (I/O bound process )
    作业大部分时间用于等待I/O
  • 随着计算机运行速度加快,作业越来越趋向于I/O密 集型进程
4.2.2 短作业优先调度算法(SJF: Shortest Job First)

调度思想:完成在后备队列选择一个或多个估计运行时间最短的作业,将它们调入内存,为它们分配资源、创建进程,并放入就绪队列。

sjf

SJF的特点:

  • 作业A, B, C, D的运行时间分别为a,b,c,d。
  • 平均周转时间为(4a+3b+2c+d)/4。
  • a 对平均周转时间影响最大,应是最短作业,次是b, c, d.
  • 优点:能有效地降低作业的平均等待时间,提高系统吞吐量。
  • 缺点:对长作业不利,未考虑作业紧迫程度,作业的估计运行时间不准确
4.2.3 优先级调度算法( PSA: Priority-scheduling algorithm)

调度思想:完成在后备队列选择一个或多个优先级最高的作业,将它们调入内存,为它们分配资源、创建进程,并放入就绪队列。

高响应比优先调度算法(HRRN: Highest Response Ratio Next)

响应比Rp =作业响应时间 /作业要求服务时间
        =(作业要求服务时间+作业等待时间)/作业要求服务时间
        = 1 +(作业等待时间 /作业要求服务时间)

特点:

  • 如作业等待时间相同,则处理时间越短,响应比越高,有利于短作业。
  • 对于长作业,随等待时间增加,响应比增高,最后同样可获得处理机。
  • 如处理时间相同,等待时间越长,响应比越高,实现的是先来先服务。

例:分别同三种算法,计算作业的执行情况
题
fcfs
sjf
hrrn

4.3 进程调度及算法

进程调度的任务

  • 保存处理机的现场信息
  • 按某种调度算法选取进程
  • 把处理器分配给进程
  • 由分派程序把处理器分配给该进程,设置选中进程的处理机现场信息,交处理机控制权给进程运行

进程调度

进程调度方式:

  • 非抢占式(Non-preemptive Mode)
    不允许某进程抢占已经分配出去的处理机。
  • 抢占方式(Preemptive Mode)
    允许调度程序根据某种原则,暂停正在执行进 程,将处理机重新分配给另一进程。
    优先权原则、短进程优先原则、时间片原则
4.3.1 短进程优先调度算法(SPF: Shortest Process First)
  • 是对SPF增加了抢占机制的版本
  • 调度程序总是选择预期剩余时间最短的进程
  • 优缺点
    在周转时间上,SRT比SPF的性能要好
    必须记录过去的服务时间,增加开销
    作业的估计运行时间不准确
4.3.2 优先级调度算法(PSA:Priority-scheduling agorithm)
  • 非抢占式优先级算法
    主要用于批处理系统中,也可用于对实时性要求不高的实时系统
  • 抢占式优先级算法
    较好满足紧迫作业的要求,常用于要求较严格的实时系统和性能要求较高的分时和批处理系统

优先级的确定方法:

  • 进程类型
    系统进程高于一般用户进程的优先权
  • 进程对资源的要求
    对CPU和内存要求少、运行时间短的优先权高些
  • 用户要求
    根据用户进程的紧迫程度和用户所付费用决定

优先级分类:

1.静态优先级

  • 进程创建时指定优先级,进程运行时优先级不变
  • 优缺点
    简单易行,系统开销小;
    不够精确,可能出现优先级低的作业或进程,长期
    得不到调度。

2.动态优先级

  • 在进程创建时创立一个优先级,但在其生命周期内
    优先级可以动态变化。
  • 对于高度I/O密集型进程因为需要大部分时间等待I/O,所以无论任何时候,只要需要CPU计算,就应当马上调度它执行,以尽快开始它的下次I/O请求,实现和其它进程的并发执行。
4.3.3 基于时间片的轮转调度算法(RR—Round Robin)

RR的基本原理

  • 把CPU划分成若干时间片
  • 按顺序赋给FIFO就绪队列中的每一个进程
  • 时间片用完时(时钟中断请求),即使进程未执行完毕,系统也剥夺该进程的CPU,将该进程排在就绪队列末尾,同时系统选择队首进程运行

RR的进程切换时机

  • 时间片内进程已运行完成,立即激活进程调度程序
  • 时间片用完,计时器中断处理程序被激活,送当前进程到就绪队列末尾

时间片大小的确定

  • 时间片大小对系统性能影响很大
  • 时间片很小,有利于短进程,但进程调度和切换频繁,增加系统开销
  • 时间片过大,退化为FCFS,无法满足短作业和交互式进程的需求
  • 时间片可选取略大于一次典型交互的所需时间

rr

4.3.4 多级反馈队列调度算法(multileveled feedback queue)

调度算法思想
mfq

如果CPU正在处理第i级队列时,有新进程加入第一级队列,或者有新唤醒的进程比当前进程的队列级别高,则新进程抢占当前进程的CPU,而原来的当前进程插入第i级队列队尾。
mfq

各调度算法性能对比
性能对比
性能对比

4.4 实时调度

实时系统例子:实验控制、过程控制设备、机器人、空中交通管制、远程通信、军事指挥与控制系统,下一代系统还包括自动驾驶汽车、具有弹性关节的机器人控制器、智能化生产中的系统查找、空间站和海底勘探。
每种实时系统都有若干个实时进程,来反应或控制某个外部事件,它们往往带有某种程度的紧迫性,需要实时系统的调度有特殊处理,所以引入实时调度。

4.4.1 实现实时调度的基本条件

1.提供必要的信息

  • 开始/完成截止时间
  • 就绪时间
  • 处理时间
  • 资源要求
  • 优先级

2.系统处理能力强

假定系统中有m个周期性的硬实时任务,处理时间为Ci,周期时间为Pi (1≤i ≤m)。
单处理机下必须满足:
公式
为多处理机(N个)时,限制条件变为:
公式

3.采用抢占式调度机制(硬实时系统)
4.具有快速切换机制

  • 对外部中断的快速响应能力
    要求快速硬件中断机构、允许中断的间隔短
  • 快速的任务分派能力
    系统中的每个运行功能单位适当的小
4.4.2 实时调度算法的分类
  • 根据实时任务性质不同可分为硬实时调度和软实时调度;
  • 根据调度方式不同可分非抢占调度和抢占调度算法;
  • 根据调度时间的不同分成静态和动态调度算法;
  • 在多处理机情况下可分为集中式和分布式调度算法。
4.4.3 常用的两种实时调度算法

1.最早截止时间优先算法EDF

  • 根据任务的开始截止时间来确定任务的优先级;
  • 可用于抢占式调度和非抢占式调度。
    edf

2.最低松弛度优先算法 LLF

  • 根据任务的紧急(或松弛)程度确定任务的优先级
  • 松弛度=必须完成的时间-还需运行的时间-当前时间
  • 松弛度是动态变化的
  • 主要用于可抢占式调度方式

llf

猜你喜欢

转载自blog.csdn.net/maniacxx/article/details/81130501