Github IO

操作系统——单处理器调度

除I/O调度外,调度根据时间长短命名为三类,本章重点短调度:

  1. 长调度:选择程序变为进程加入进程池
  2. 中调度:挂起态变换,属于内外存交换的一部分
  3. 短调度:决定如何从就绪队列选择程序分配CPU

术语&符号:

\(T_r:周转时间,T_s: 服务时间,T_w:等待时间\)

\(\frac{T_r}{T_s}: 归一化周转时间\)

重点关注进程运行时间长短,将进程粗略看作两类:长进程、短进程。

设计调度算法,由两方面考虑:

  1. 所有进程的平均等待时间尽量短(提高吞吐率)
  2. 每个进程的等待时间尽量短(避免饥饿)

由两个朴素的调度算法引入:

  • FCFS,先来先服务,反映了排队的性质
  • RR,时间片轮转,反映了抢占性,即操作系统可以中断进程的能力

为了并行运行N个进程,让更多的进程等待更少的时间,基于预计运行时间,有

  • SPN,shortest process next,非抢占
  • SRTN,shortest remain time next, 抢占(加上基于时间片的中断机制)
  • HRRN, \(R = \frac{T_w + T_s}{T_s}\),为了获得更高的响应比,越长的进程需要等待越久

若无法估计运行时间,则:

  • 反馈,惩罚运行时间长的进程,让运行时间长的进程等待更久。
posted @ 2021-02-18 17:59  laiyk  阅读(198)  评论(0)    收藏  举报