跳转至

处理机调度

1. 处理机调度概念

CPU资源的时分复用 - 进程切换

  • 保存当前进程在PCB中的执行上下文
  • 恢复下一个进程的执行上下文

处理机调度

从就绪队列中挑选下一个占用CPU运行的进程

如果是多处理机,还要从多个可用CPU中挑选就绪进程可使用的CPU资源

调度程序 挑选就绪进程的内核函数

  • 调度策略
  • 调度时机: 什么时候进行调度

调度时机

在进程/线程的生命周期中的什么时候进行调度?

内核运行调度程序的条件

  • 进程从运行状态切换到等待状态,要等待某个事件,此时CPU资源空闲出来,要选择进程来运行
  • 进程被终结了,需要运行新进程

对不同系统,有以下情况

  • 非抢占系统
    • 当前进程主动放弃CPU时
  • 抢占系统
    • 中断请求被服务例程响应完成时,进程会从运行态切换到就绪态
    • 当前进程被抢占
      • 正在运行的进程时间片用完
      • 有进程从等待切换到就绪


2. 调度准则

2.1 调度策略

确定如何从就绪队列中选择下一个执行进程

处理及资源的使用模式

进程在CPU计算和I/O操作间交替,并且大多数CPU计算所需时间较短

调度算法指标
  1. CPU使用率

    CPU处于忙状态的时间百分比,一个进程在I/O操作时 2. 吞吐量

    单位时间内完成的进程数量 3. 周转时间

    进程从初始化到结束的总时间 4. 等待时间

    进程在就绪队列中的总时间 5. 响应时间

    从提交请求到产生相应所花费的总时间

可以分为几类

响应时间目标

  • 减少响应时间: 及时处理用户的输入请求,尽快将输出反馈给用户
  • 减少平均响应时间的波动: 可预测性很重要

增加吞吐量

  • 增加吞吐量
    • 减少开销 (上下文切换等)
    • 提高系统资源利用率 (CPU I/O设备)
  • 减少等待时间

公平性目标

  • 每个进程占用相同CPU时间
  • 每个进程等待时间相同

公平性通常会增加平均响应时间