【操作系统复习】Unit2-3:调度

3.1 基本概念

处理机管理的工作是对CPU资源进行合理的分配使用,以提高处理机利用率,并使各用户公平地得到处理机资源。

调度的类型

  1. 高级调度/宏观调度/作业调度

    • 对每个作业进行调度
  2. 中级调度/内外存交换(内存和外存的调度)

    • 将进程的部分或全部换出到外存上(挂起),将当前所需部分换入到内存
  3. 低级调度/微观调度/进程或线程调度(进程和CPU的调度)【最基本的一种调度】

    • 从就绪队列中选取一个,将处理机分配给他

何时进行调度

  • 主动放弃CPU:进程正常终止、运行过程中发生异常而终止、进程主动请求阻塞(eg:IO)
  • 被动放弃CPU:时间片到、有更紧急的事需要处理(eg:IO中断)、更高优先级的进程进入就绪队列

何时进行切换

  • OS获得控制权后,就需要判断是否要切换进程
    • **用户调用:**来自程序的显式请求(如:打开文件),该进程多半会被阻塞
    • **陷阱:**最末一条指令导致出错,会引起进程移至退出状态
    • **中断:**外部因素影响当前指令的执行,控制被转移至中断处理程序

在进程上下文中切换的步骤:

  1. 保存处理器的上下文,包括程序计数器和其它寄存器
  2. 更新正在运行进程的PCB
  3. 把进程的PCB移至合适的队列,eg:就绪、阻塞
  4. 选择另一个要执行的进程,更新其PCB
  5. 跳转到新进程PCB中的程序计数器所指向的位置执行
  6. 恢复处理机上下文

辨析:进程上下文切换 vs 陷入内核

  • 进程上下文切换(Process Context Switch)
    • 通常由调度器执行
    • 保存进程执行断点
    • 切换内存映射(页表基址、flush TLB)(修改页表基址?)
  • 陷入内核
    • CPU状态改变
    • 由中断、异常、Trap指令(系统调用)引起。(OS权限改变,转到内核态)
    • 需要保存执行现场(寄存器、堆栈等)
  • 从用户态到内核态的切换(mode switch)涉及到的切换主要是寄存器上下文的切换,和通常所说的进程上下文切换(Process Context Switch)不同,mode switch的消耗相对要小很多。

调度的性能准则

  • 从用户的角度、处理机的角度、算法实现的角度综合判断

调度性能准则

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

调度算法本身的调度性能准则

  • 易于实现、维护
  • 执行开销比
    • 算法本身执行时间、占用空间
    • 算法开销占调度后整体任务执行时间比例

3.2 涉及调度算法要考虑的问题(设计要点)

进程优先级(数)

  • 优先级(数):表现了进程的重要性和紧迫性
  • 静态优先级、动态优先级

进程就绪队列组织

  • 按优先级排队方式
  • 另一种方式:所有进程创建之后都进入到第一级就绪队列,随着进程的运行,可能会降低某些进程的优先级,如某些进程的时间片用完了,那么就会将其降级。

占用CPU的方式:不可抢占式、抢占式方式

进程的分类1:I/O密集型与CPU密集型

进程的分类2:

  • 批处理进程(无需与用户交互、不需快响应)
  • 交互式进程(需用户交互)
  • 实时进程(高优先级优先、响应快)

3.3 典型的调度算法

在这里插入图片描述

常用的调度算法概述【王道P66】

  • ⋆ \star 先来先服务(FCFS)——作业/进程调度

    • 有利于长作业、不利于短作业;有利于CPU繁忙的作业,不利于I/O繁忙的作业;算法简单效率低
  • ⋆ \star 最短作业优先(SJF)

    • 非抢占式

    • 优点:

      • 比FCFS改善平均周转时间和平均带权周转时间,缩短作业的等待时间
      • 提高系统的吞吐量
    • 缺点:对长作业不利;不能根据作业紧迫程度来划分执行的优先级;难以准确估计作业/进程的执行时间

  • 最短剩余时间响应(SRTF)

    • 在短作业优先的基础上,改进为抢占式。
    • 缺点:可能产生”饥饿“
  • 最高响应比优先(HRRF)——作业/进程调度

    • 响应比RP(相应优先级)=(已等待时间+要求运行时间)/(要求运行时间)
    • 缺点:计算后备作业队列中每个作业的响应比,有一定的时间开销,性能比SJF略差
    • 优点:短作业容易得到较高的响应比;长作业等待时间足够长后,也将获得足够高的响应比;不会饥饿
  • ⋆ \star 时间片轮转——进程调度

    • 优点:公平、响应快、适用于分时操作系统
    • 缺点:高频率的进程切换有一定开销、不区分任务的紧急程度、增大进程响应时间
  • ⋆ \star 优先级算法——作业/进程调度

    • 适用于作业调度和进程调度,可分为抢占式和非抢占式
    • 优点:区分了紧急程度,适用于实时操作系统
    • 缺点:可能产生饥饿
  • 多级队列算法(MQ)

    • 不同队列可有不同的不同的优先级、时间片长度、调度策略等
  • 多级反馈队列(MFQ)

    • 时间片轮转+优先级算法
    • 不必估计进程的执行时间,动态调节

扩展:
实时系统的调度算法
多处理机调度
Linux处理机调度

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值