高响应比优先

算法思想

要综合考虑作业/进程的等待时间和要求服务时间

算法规则

  1. 在每次调度的时候要先计算各个作业/进程的相应比,选择相应比最高的作业/进程为其服务
  2. 相应比=等待时间+要求服务时间/要求服务时间

用途和模式

  1. 既可用于作业调度,也可用于进程调度

是否可抢占

非抢占式的算法。因此只有当前运行的作业/进程主动放弃处理机时,才需要调度,才需要计算相应比。

例题

优缺点

优点

  1. 综合考虑了等待时间和运行时间(要求服务时间)
  2. 等待时间相同时,要求服务时间短的优先
  3. 要求时间相同时,等待时间长的优先
  4. 对于长作业来说,随着等待时间的变长,其相应比也会增加,避免了长作业的饥饿问题

缺点

不会考虑是否饥饿


时间片轮转调度算法(RR)

算法思想

公平地、轮流的为各个进程服务,让每个进程在一定时间间隔内都可以得到响应。是伴随着[[001-1-3-发展#分时操作系统 |分时操作系统]]的产生出现的


算法规则

按照各进程到达就绪队列的顺序,轮流的让各个进程执行一个时间片(如100ms)。若进程未在一个时间片内执行完,则剥夺处理机,将进程重新放到就绪队列队尾重新排队。


用途和模式

  1. 用于进程调度(只有作业放入了内存建立了响应的进程后,才能被分配处理机时间片)

是否可抢占

  1. 若进程未能在时间片内运行完,则会被强行剥夺处理机使用权,因此时间片轮转调度算法属于抢占式的算法。由时钟装置发出[[001-1-4-机制#时钟管理| 时钟中断]]来通知CPU时间已到

例题

应比最高者优先算法(Python代码) 最高相应比优先法_分时操作系统


优缺点

优点

  1. 公平
  2. 响应快,适用于分时操作系统
  3. 不会产生饥饿

缺点

  1. 如果时间片太大,使得每一个进程在一个时间片内就能完成,则时间片轮转调度算法就会退化为先来先服务算法,并且增大进程的响应时间。因此时间片不能太大
  2. 如果时间片太小了,会导致进程切换过于频繁,系统会花大量时间来处理进程切换,从而导致实际用于进程执行的时间比例减少,可见时间片比例不能太小(设计时间片要让切换进程的开销占比不到1%)
  3. 不区分任务的紧急程度