调度算法

1、先来先服务算法(FCFS)

      把处理器分配给最先进入就绪队列的进程,一个进程一旦分得处理器,便一直执行下去,直到该进程完成或阻塞时,才释放处理器。

      如果一个长作业先到达系统,则会使后面很多短作业等待很长时间。

      有利于CPU繁忙型作业,不利于I/O繁忙型作业

 

2、短作业优先算法(SJF)

      从就绪队列中选出一个估计运行时间最短的进程,将处理器分配给它立即执行,直到该进程完成或阻塞时,才释放处理器。

      对长作业不利,并且完全没有考虑作业的紧迫程度,

      SJF算法的平均等待时间、平均周转时间最少。

 

3、优先级调度算法

      把处理器分配给就绪队列中具有最高优先级的进程,根据新出现更高优先级进程能否抢占正在执行的进程,又可分为非剥夺式优先级调度算法

      和剥夺式优先级调度算法。而根据进程创建后其优先级是否可以改变,可以将进程优先级分为以下两种:

                (1)静态优先级 

                          优先级在创建进程时就已确定

                 (2)动态优先级

                           根据情况的变化调整优先级

 

4、高响应比优先调度算法(HRN)

      HRN是对FCFS和SJF的一种综合平衡,同事考虑内个作业的等待时间和估计需要的执行时间,从中选出响应比最高的作业执行。

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

 

5、时间片轮转算法(RP)

      RP主要用于分时系统,系统将所有就绪进程安到达时间的先后次序排成一个队列,每次调度时,把处理器分配给队首进程,并令其执行一个时间片,

      当执行的时间片用完,发中断请求, 让出处理器,让其他进程也执行一个时间片。

      时间片的长短对计算机系统的影响很大,过大,退化成FCFS算法,过小,切换工作过于频繁,使处理器的开销增大

      时间片的长短由以下元素决定:(1)系统的响应时间 ;(2)就绪队列中的进程数目; (3)系统的处理能力

 

6、级反馈队列调度算法

      是轮转算法和优先级算法的综合和发展,通过动态调整进程优先级和时间片大小,

      (1)设置多个就绪队列,并为各个队列赋予不同的优先级,第1个最高,第2个次之,依次降低

      (2)赋予各个队列中继承执行时间片的大小也各不相同,优先级越高,时间片大小越低。

      (3)当一个新进程进入内存后,首先进入第1个队列的队尾,按FCFS进行排队等待调度,当轮转到该进程执行时,如果它能在该时间片完成,便可准备

               撤离系统,否则,该进程进入到第2个队列队尾继续等待调度。依次类推。

        优点:

         1)终端型作业用户:短作业优先

         2)短批处理作业用户:周转时间较短

         3)长批处理作业用户:经过前面几个队列得到部分执行,不会长期得不到处理。

      

 

 

发布了49 篇原创文章 · 获赞 5 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章