操作系统笔记三 进程管理处理机调度及典型的调度算法

Posted Lora青蛙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统笔记三 进程管理处理机调度及典型的调度算法相关的知识,希望对你有一定的参考价值。

调度的概念

调度的基本概念
在多道程序系统中,进程的数量往往多于处理机的个数。处理机调度是对处理机进行分配,从就绪队列中按照一定的算法选择一个进程并将处理机分配给它运行,以实现进程并发地执行。
处理机调度是多道程序操作系统的基础,是操作系统设计的核心问题。

调度的层次
一个作业从提交开始到完成,往往要经历三级调度。

调度的基本准则

典型的调度算法

先来先服务(FCFS: First Come First Service)调度算法

先来先服务的调度算法:最简单的调度算法,既可以用于作业调度 ,也可以用于程序调度,当作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,优先从后备队列中,选择一个或多个位于队列头部的作业,把他们调入内存,分配所需资源、创建进程,然后放入“就绪队列”,直到该进程运行到完成或发生某事件堵塞后,进程调度程序才将处理机分配给其他进程。

例1:

例2:

  • 优点:“公平”
  • 缺点:短作业或进程、线程等待时间长

短作业优先SJF(Shortest Job First)调度算法


  • 特点:
    假定所有任务同时到达,平均等待时间最短。
    长作业可能被饿死。

最短剩余时间优先(SRTN:Shortest Remaining Time Next)算法

该算法是SJF调度的抢占式版本。 在SRTF中,过程的执行可以在一段时间后停止。 在每个进程到来时,短期调度程序在可用进程列表和正在运行的进程中以最少的剩余突发时间安排进程。

最高响应比优先(HRNN:Highest Response Ratio Next)算法

  • 优点:
    同时到达任务, 短者优先
    长作业随等待时间增加响应比增加

时间片轮转(RR:Round-Robin)调度算法


优先级调度(HPF:Highest Possible Frequency)算法


多级反馈队列(MFQ:Multilevel Feedback Queue Scheduling)调度算法

多级反馈队列调度算法既能使高优先级的作业得到响应又能使短作业(进程)迅速完成。

  • 1、进程在进入待调度的队列等待时,首先进入优先级最高的Q1等待。
  • 2、首先调度优先级高的队列中的进程。若高优先级中队列中已没有调度的进程,则调度次优先级队列中的进程。例如:Q1,Q2,Q3三个队列,当且仅当在Q1中没有进程等待时才去调度Q2,同理,只有Q1,Q2都为空时才会去调度Q3。
  • 3、对于同一个队列中的各个进程,按照FCFS分配时间片调度。比如Q1队列的时间片为N,那么Q1中的作业在经历了N个时间片后若还没有完成,则进入Q2队列等待,若Q2的时间片用完后作业还不能完成,一直进入下一级队列末尾,直至完成。
  • 4、在最后一个队列QN中的各个进程,按照时间片轮转分配时间片调度。
  • 5、在低优先级的队列中的进程在运行时,又有新到达的作业,此时须立即把正在运行的进程放回当前队列的队尾,然后把处理机分给高优先级进程。换而言之,任何时刻,只有当第1~i-1队列全部为空时,才会去执行第i队列的进程(抢占式)。特别说明,当再度运行到当前队列的该进程时,仅分配上次还未完成的时间片,不再分配该队列对应的完整时间片。

算法总结

以上是关于操作系统笔记三 进程管理处理机调度及典型的调度算法的主要内容,如果未能解决你的问题,请参考以下文章

王道操作系统笔记———— 处理机调度

操作系统笔记

进程的三状态及进程调度算法算法

OS学习笔记三:处理器调度

:操作系统基础知识笔记

操作系统典型调度算法