操作系统之调度算法

1. 比较调度算法的准则

  • CPU 使用率:CPU 处于忙状态的时间百分比
  • 吞吐量:单位时间内完成的进程数量
  • 周转时间:进程从初始化到结束(包括等待)的总时间
  • 等待时间:进程在就绪队列中的总时间
  • 响应时间:从提交请求到产生响应所花费的总时间

2. 调度算法

2.1 先来先服务算法(FCFS)

思路:按照请求的顺序进行调度。
优点:简单。
缺点:平均等待时间波动较大:短进程可能排在长进程后面;I/O 资源和 CPU 资源的利用率较低 。

2.2 短进程优先算法(SPN)

思路:按估计运行时间最短的顺序进行调度。
优点:具有最优平均周转时间。
缺点:可能导致饥饿、需要预知未来。

2.3 最高响应比优先算法

思路:选择就绪队列中响应比 R 值最高的进程,R=(w+s)/s,w:等待时间,s:执行时间
优点:关注进程的等待时间,防止无限期推迟。

2.4 最短剩余时间优先算法(SRT)

思路:按估计剩余时间最短的顺序进行调度。SPN 算法的可抢占改进。

2.5 时间片轮转算法

思路:时间片结束时,按 FCFS 算法切换到下一个就绪进程。

时间片太大:等待时间过长,极限情况退化成 FCFS。
时间片太小:反应迅速,但产生大量上下文切换,影响系统吞吐量。

2.6 优先级调度算法

思路:为每个进程分配一个优先级,按优先级进行调度,为了防止低优先级的进程永远等不到调度,可以随着时间的推移增加等待进程的优先级。

2.7 多级队列算法

思路:就绪队列被划分成多个独立的子队列,每个队列拥有自己的调度策略。队列间的调度:固定优先级、时间片轮转。

2.8 多级反馈队列算法

思路:进程可在不同队列间移动的多级队列算法,时间片大小随优先级级别增加而增加,如进程在当前的时间片内没有完成,则降到下一个优先级。

2.9 公平共享调度算法

思路:按用户对进程分组,每个用户分配一定的 CPU 份额,保证某个进程很多的用户无法垄断资源。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章