Qin darkstone
处理机调度

处理机调度

处理机调度

  • 作业

    • 作业是从用户角度出发的,它由用户提交,以用户任务为单位
    • 进程是从操作系统出发的, 由系统生成,是操作系统的资源分配和独立运行的基本单位
  • 调度算法时间的计算可以采用画甘特图来进行

    • 在进行处理机调度的性能计算时,题目中给出"作业在时刻0以1,2,3,4,5的顺序到达"时(8.22更新
      • 此处的顺序到达更多的不是直接上处理机运行
      • 而是更像暂时顺序进入一个就绪队列
        • 当进行诸如FCFS、RR等调度时,顺序出队
        • 但当进行SJF、优先级等调度时,就扫描此就绪队列(此时几乎可以视作同时到达),根据调度算法的条件来上处理机执行
        • 且同时到达SJF的平均周转时间是最短的,注意检验
  • 做题时注意看好是等待时间、周转时间还是响应时间

  • 做题时注意调度的开始时机,不要忽视零时刻时进行的调度

  • 处理机调度

    • 实际调度不会存在处理器为空,就绪队列全满的情况
    • 但实际调度种可以出现处理器为空,阻塞队列全满的状态
      • 此时发生了死锁
    • 当进程处于临界区时, 说明进程正在占用处理机,只要不破坏临界资源的使用规则,就不会影响处理机的调度。
      • 比如, 通常访问的临界资源可能是慢速的外设(如打印机),若在进程访问打印机时,不能进行处理机调度,则系统的性能将非常差。
  • 选择调度算法时考虑的准则

    • 公平
      • 确保每个进程获得合理的 CPU 份额
    • 有效
      • 使CPU尽可能地忙碌
    • 响应时间
      • 使交互用户的响应时间尽可能短
    • 周转时间;
      • 使批处理用户等待输出的时间尽可能短
    • 吞吐量
    • 使单位时间处理的进程数尽可能最多
  • 时间片轮转

    • 主要目的是使多个交互的用户能够得到及时响应
      • 主要适用于分时系统
        • 响应时间与时间片用户数成正比
      • 用户交互性好,响应快,改善人机环境,满足用户需求
    • 频繁切换增加了系统开销吞吐量周转时间均不如批处理
    • 时钟中断是系统中特定的周期性时钟节拍
      • 操作系统通过时钟中断来确定时间间隔,实现时间的延时任务的超时
        • 比如,24个时钟中断作为一个时间片,OS每秒发出120次时钟中断(*王道P75 08.*)
  • 现代操作系统为了保证能最优,通常根据响应时间系统开销进程数量进程运行时间等因素确定时间片大小

    • 处于运行态的进程用完一个时间片后,其状态会变为就绪态,等待下一次处理器调度。
    • 注意此时的就绪态是进入就绪队列等待,若后面还有进程到达,在此等待进程后上处理机执行完后才执行,做题注意到达时间
    • 进程执行完最后的语句并使用系统调用exit 请求操作系统删除它或出现一些异常情况时,进程才会终止。
  • 响应比

    • 综合考虑了每个进程的等待时间执行时间
      • 对于同时到达的长进程和短进程,短进程会优先执行,以提商系统吞吐量
      • 而长进程的响应比可以随等待时间的增加而提高,不会产生进程无法调度的情况。
    • 可以说响应比是一种使用乘除法构造动态优先数的方法
  • 优先级

    • 作业的优先级与长作业、短作业或系统要求资源的多少没有必然的关系
    • 在动态优先级中
      • 随着进程执行时间的增加其优先权随之降低
      • 随着作业等待时间的增加其优先权相应上升
  • 多级反馈队列

    • 需要综合考虑
      • 优先级数量、优先级之间的转换规则
      • 就绪队列的数量
        • 影响长进程的最终完成时间
      • 就绪队列的优先级
        • 影响进程执行的顺序
      • 各就绪队列的调度算法
        • 影响各队列中进程的调度顺序
      • 进程在就绪队列中的迁移条件
        • 影响各进程在各队列中的执行时间
Author:Qin darkstone
Link:https://qindarkstone.github.io/2023/08/20/408/操作系统/进程与线程/处理机调度/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可