操做系统--进程管理2--进程调度

1.评价调度算法的主要指标算法

  周转时间:进程进入就绪队列直到进程执行结束所用的时间。spa

  响应时间:进程进入就绪队列后被到被CPU调度所用的时间。设计

2.常见的调度算法排序

  FIFO:先来先服务算法--基本思想按照做业进入就绪队列的顺序,选择先到的做业被CPU调度。假如做业的长度比较平均,效果不错,可是队列

        若是长做业比较多先到就绪队列就会致使响应时间、周转时间比较长。属于非抢占策略进程

  优势:实现简单;缺点:效果不怎样好。class

  SJF:短做业优先算法;在就绪队列中按照做业长短排序,选出最短的做业执行,存在非抢占和抢占的两种,对于非抢占的计算机

      在长做业执行状况下,后到的短做业不能抢占,周转时间依旧很长。对于抢占的,新来的短做业能够和如今的做业的剩余时间比较di

      若是执行时间短,就能够获得CPU的执行权。周转时间就会减少。时间

  RR:轮转法--出现的缘由是随着计算机的发展,人机交互愈来愈重要,对于响应时间的要求越高,因此出现了轮转法调度。

      该算的思想:设置一个时间片,按照就绪队列中顺序,每一个做业有一个时间片,轮流执行队列中的做业。时间片到达是由

      时钟中断控制,时间到了切换到内核态由,OS调度下一个做业执行。周转时间会比SJF长。

  优势:保证响应时间比较短。注意:时间片大小的选择很关键;时间片太小,容易形成做业的频繁切换,时间浪费周转时间也长

     时间片过长:该算法就退化成FIFO--先来先服务。

  多优先级反馈队列:一般前面介绍的算法效果对于周转时间和响应时间是相互矛盾的,如今想设计一个策略兼顾轮转法和SJF抢占型

       可以在响应时间和周转时间之间达到一个平衡。算法实现比较复杂。

  具体实现:OS维护多个优先级不一样的队列;每队列队列内部采用轮转法调度。进程建立完成后,通用放在高优先级的队列中,根据一次执行的结果

  调整进程的优先级;假如:分配的时间片都被一直是CPU操做,则能够判断出该进程是CPU绑定的进程,对响应时间不敏感;能够下降其优先级;

  放入优先级低的队列,假如分给的时间片没用完就放弃CPU,则说明进程是IO绑定的,对响应时间敏感,因此优先级不变。

  注意:这个过程一种是动态的,由于进程某段时间可能就在IO操做,后面可能一直是CPU操做,只要是用完CPU时间片,就要降级处理。

相关文章
相关标签/搜索