操作系统:七种进程调度算法

 

前提知识(衡量各个算法时使用其作为指标):TT——周转时间(turn around time) 、ATT——平均周转时间(average turn around time) 、RT——响应时间(response time)。

 

一、先来先服务(FCFS)算法:

算法:把处理机分配给最先进入就绪队列的进程。

优点:易于实现。

缺点:表面上公平,服务质量不佳 、对短进程不利;所以该算法很少作为进程调度主算法,常常作为一种辅助调度算法

操作系统:七种进程调度算法_第1张图片


二、最短CPU运行期优先调度算法:

算法:从就绪队列中选出“下一个CPU执行期”最短的进程,为之分配处理机使之执行。

优点:可获得较好的调度性能。

缺点: 进程的CPU执行期难以准确得到(仅根据执行历史来预测t_{n+1} = \alpha t_{n} + (1-\alpha )p_{n})、对长进程不利。

操作系统:七种进程调度算法_第2张图片


三、最高响应比优先调度算法:

算法:响应比=(等待时间+要求的服务时间)/要求的服务时间 ,每次选取响应比最高的进程调度。

优点:对短进程有利,并且考虑了等待时间。

缺点:计算响应比有一定的系统开销。


四、优先级调度算法:

算法:将CPU分配给就绪队列中优先级最高的进程

静态优先级:在进程创建时确立,确定后运行期间保持不变。

  • 确立依据有:进程的类型、进程对资源的需求、用户申请的优先级
  • 优点:简单。
  • 缺点:不能动态反映进程特点,系统调度性能差。

动态优先级:进程在开始创建时,根据某种原则确定一个优先级后,随着进程执行时间的变化,其优先级不断地进行动态调整。(个人理解:这种机制有点像高中生物里的负反馈调节,运行产生的结果反过来抑制这种运行,维持了一种动态的平衡;譬如:抗利尿激素的作用机制。)

  • 确定依据:根据进程占有的CPU时间的长短来决定,占有时间越长优先级越低;根据进程等待CPU的时间来决定,时间越长优先级越高。
  • 优点:克服了静态优先级的缺点。
  • 缺点:需付出一定系统开销。

五、时间片轮转调度算法:(个人理解:在先进先出原则上对于分时执行的一种妥协。)

算法:通常用在分时系统,它轮流地调度系统中所有就绪进程,使就绪进程依次获得一个时间片的运行时间(记为q)。系统为就绪队列中的每一个进程分配一个时间片,在使用完一个时间片后即使进程还没有运行完毕,也要强迫其释放处理机,让给另一个进程使用。它自己则返回到就绪队列末尾,排队等待下一次调度的到来。q的大小不仅影响CPU的利用率,也影响平均周转时间。

时间片长短确定遵循原则——既要保证系统各个用户进程及时地得到响应,又不要由于时间片太 短而增加调度的开销,降低系统的效率。

  • 太大:无异于先来先服务。
  • 太小:调度程序频率上升,系统耗费在调度上的时间增加,真正运行用户程序的时间减少。

进程执行时可能发生的三种情况:

  • 进程未用完一个时间片便结束,这时系统应提前进行调度。
  • 进程在执行过程中提出I/O请求而阻塞,系统应将它放入相应的阻塞队列并重新调度。
  • 进程用完一个时间片后尚未完成。系统应将它重新放到就绪队列的末尾,等待下次执行。

操作系统:七种进程调度算法_第3张图片


六、前后台调度算法:

算法:该方法用在批处理和分时相结合的系统中。将分时用户作业放在前台,把批处理作业放在后台。系统对前台作业按照时间片轮转法进行调度,仅当前台无作业时,才把处理机分配给后台作业的进程。后台进程通常按先来先服务方式运行

优点:使分时用户进程得到及时响应,又提高了系统资源的利用率。


七、多级反馈队列轮转算法: 

  • 系统设置多个不同优先级的就绪队列,每次调度总是先调度优先级高的队列,仅当该队列空时,才调度次高优先级队列。它是时间片调度算法与先来先服务调度算法的结合。实行这种调度算法时,系统维持多个就绪队列。每个就绪队列具有不同的调度级别可以获得不同长度 的时间片。
  • 通常进程刚被创建时和因请求I/O未用完时间片的进程由阻塞状态再次转换为就绪状态时,排在最高优先级队列
  • 在这个队列中运行2-3个时间片未完成的进程排列下一个较低优先级队列
  • 不论什么时候,只要较高优先级队列有进程进入,立即转进程调度,及时调度较高优先级队列进程。  

优点:能较好地满足各类作业的用户要求,既能使分时用户作业得到满意的响应,又能使批处理用户的作业获得较合理的周转时间。

操作系统:七种进程调度算法_第4张图片

个人理解:

  • 相当于进一步动态细化划分了优先级,使得规划更加合理,兼顾了分时和批处理的特点。
  • 尤为优先级的原因,使得有先后的排序,在这里使用时间片对其进行补偿调配,使得整体更加合理。
  • 从整体来看是基于负反馈的优先级时间片补偿机制。

 

Ending... ...

你可能感兴趣的:(#,操作系统,操作系统,算法)