计算机操做系统(十一):调度算法

计算机操做系统(十一):调度算法

评价指标

CPU利用率

指CPU忙碌的时间占总时间的比例。

计算机操做系统(十一):调度算法_第1张图片

例子:

计算机操做系统(十一):调度算法_第2张图片

系统吞吐量

单位时间内完成作业的数量

计算机操做系统(十一):调度算法_第3张图片

例子:

image-20220118235829437

周转时间

是指作业从被提交给系统开始,到作业完成为止的这段时间间隔

周转时间=作业完成时间-作业提交时间

计算机操做系统(十一):调度算法_第4张图片

带权周转时间:

image-20220119001558197

对于周转时间相同的两个作业,实际运行时间长的作业在相同时间内被服务的时间更多,带权周转时间更小,用户满意度更高。

对于实际运行时间相同的两个作业,周转时间短的带权周转时间更小,用户满意度更高。

计算机操做系统(十一):调度算法_第5张图片

等待时间

指进程处于等待处理机状态时间之和,等待的时间越长,用户满意度越低。

  • 对进程:等待时间就是指进程建立后等待被服务的时间之和,在等待i/o完成的期间其实进程也是在被服务的,所以不计入等待时间。
  • 对作业:不仅要考虑建立进程后的等待时间,还要加上作业在外存后备队列中等待时间。

响应时间

指从用户提交请求到首次产生响应所用的时间。

总结

计算机操做系统(十一):调度算法_第6张图片

调度算法(一)

先来先服务(FCFS)

  • 算法思想:从公平的角度考虑
  • 算法规则:按照作业/进程到达的先后顺序进行服务
  • 用于作业调度时,考虑的是那个作业先到达后备队列:用于进程调度考虑的是那个进程先到达就绪队列。
  • 非抢占式的算法

计算机操做系统(十一):调度算法_第7张图片

注意:本例中的进程是纯计算的进程,一个进程到达后要么在等待,要么在运行。如果是又有计算、又有i/o操做的进程,其等待时间就是周转时间-运行时间-i/o操作时间

优点:公平、算法实现简单

缺点:排在长作业后面的短作业需要等待很长的时间,带权周转时间很大,对短作业来说用户体验不好。

  • 不会导致饥饿

短作业优先(SJF)

  • 算法思想:追求更少的平均等待时间,最少的平均周转时间、最好阿德平均带权周转时间

  • 算法规则:最短作业/进程优先得到服务(服务时间最短)

  • 可以用于作业调度,也可以用于进程调度。

  • 是非抢占式算法。但是也由抢占式版本。(最短剩余时间优先算法)

  • 抢占式的短作业优先算法

优点:(不严谨)最短的平均等待时间、平均周转时间

缺点:对于短作业有利,对于长作业不利。可能产生饥饿现象。

高响应比优先(HRRN)

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

  • 算法规则:在每次调度时先计算各个作业/进程的相应比,选择响应比最高的作业/进程为其服务。

    响应比=(等待时间+要求服务的时间)/要求服务的时间

  • 可以用于作业调度。也可以用于进程调度

  • 是非抢占式算法。

  • 综合考虑了等待时间和运行时间,等待时间相同时,要求服务时间短的优先。要求服务时间相同时,等待时间长的优先。
  • 不会导致饥饿

总结

调度算法(二)

时间片轮转(RR)

  • 算法思想:公平地、轮流地为各个进程服务,让每个进程在一定时间内都可以得到响应
  • 算法规则:按照各进程到达就绪队列地顺序,轮流让进程执行一个时间片。若进程未在一个时间片内执行完就剥夺处理机,将进程重新放到就绪队列队尾排队。
  • 用于进程调度
  • 抢占式算法,由时钟装置发出地时钟中断来通知CPU时间片已到。

优点:公平;响应快,适用于分时操做系统。

缺点:由于高频地进程切换,会有一定地开销;不区分任务地紧急程度。

  • 不会导致饥饿

优先级调度

  • 算法思想:实时操做系统地出现,越来越多的应用场景需要按照任务紧急程度来决定处理顺序。
  • 算法规则:每个作业有各自的优先级,调度时选择优先级最高的进程
  • 既可以用于作业调度,也可以用于进程调度。甚至还会用于之后的i/o调度
  • 抢占式和非抢占式都有。

非抢占式:


抢占式:

通常:系统进程优先级高于用户进程

​ 前台进程优先级高于后台进程

​ 操作系统更偏i/o型进程。

优点:用于区分紧急程度、重要程度,适用于实时操做系统。可以灵活地调整对各种作业/进程地偏好程度。

缺点:若源源不断有优先级高的进程到来,则可能导致饥饿。

多级反馈队列调度算法

算法思想:对其他调度算法的折中权衡

算法规则:

  1. 设置多级就绪队列,各级队列优先级从高到低,时间片从小到大
  2. 新进程到达时先进入第1级队列,按FCFS原则排队等待被分配时间片,若用完时间片进程还未结束,则进程进入下一级队列队尾。
    如果此时已经是在最下级的队列,则重新放回该队列队尾.
  3. 只有第k级队列为空时,才会为k+1级队头的进程分配时间片
  • 用于进程调度
  • 抢占式算法

  • 优缺点:对各类型进程相对公平(FCFS的优点) ;每个新到达的进程都可以很快就得到响应(RR的优点) ;短进程只用较少的时间就可完(SPF的优点) ;不必实现估计进程的运行时间( 避免用户作假) ;可灵活地调整对各类进程的偏好程度,比如CPU密集型进程、I/O密集型进程(拓展:可以将因I/O而阻塞的进程重新放回原队列,这样I/0型进程就可以保持较高优先级)
  • 会导致饥饿

总结

你可能感兴趣的:(计算机操作系统,操作系统,调度算法,评价指标)