除I/O调度外,调度根据时间长短命名为三类,本章重点短调度:
- 长调度:选择程序变为进程加入进程池
- 中调度:挂起态变换,属于内外存交换的一部分
- 短调度:决定如何从就绪队列选择程序分配CPU
术语&符号:
\(T_r:周转时间,T_s: 服务时间,T_w:等待时间\)
\(\frac{T_r}{T_s}: 归一化周转时间\)
重点关注进程运行时间长短,将进程粗略看作两类:长进程、短进程。
设计调度算法,由两方面考虑:
- 所有进程的平均等待时间尽量短(提高吞吐率)
- 每个进程的等待时间尽量短(避免饥饿)
由两个朴素的调度算法引入:
- FCFS,先来先服务,反映了排队的性质
- RR,时间片轮转,反映了抢占性,即操作系统可以中断进程的能力
为了并行运行N个进程,让更多的进程等待更少的时间,基于预计运行时间,有
- SPN,shortest process next,非抢占
- SRTN,shortest remain time next, 抢占(加上基于时间片的中断机制)
- HRRN, \(R = \frac{T_w + T_s}{T_s}\),为了获得更高的响应比,越长的进程需要等待越久
若无法估计运行时间,则:
- 反馈,惩罚运行时间长的进程,让运行时间长的进程等待更久。
操作系统——单处理器调度
原文:https://www.cnblogs.com/laiyk/p/14412939.html