八戒装机

您现在的位置是:首页 < Win10教程 <

进程调度是什么意思?操作系统中常见的五种进程调度算法

2023年01月10日 08:12:58 小猪 Win10教程

进程调度是什么意思?流程大家都很熟悉了,那么你知道流程调度器吗?熟悉操作系统的用户都知道,用户进程的数量一般要多于处理器的数量,这就导致了进程争抢处理器的情况。这时候进程调度器就派上用场了。很多小伙伴可能会好奇进程调度器是如何实现调度的?下面总结了操作系统常用的五种进程调度算法。

进程调度是什么意思?

无论是批处理系统还是分时系统,用户进程的数量一般都会超过处理器的数量,这就会导致它们相互竞争处理器。此外,系统进程也需要使用处理器。这就需要进程调度器按照一定的策略,动态地将处理器分配给就绪队列中的某个进程,使其得以执行。

操作系统常用的进程调度算法:

1.先到先得(FCFS,先到先得)

在所有调度算法中,最简单的是非抢占式 FCFS 算法。

算法原理:进程按照请求CPU的顺序使用CPU。就像你买东西排队一样,谁先排队,谁就先被执行。在执行期间,它不会被打断。当其他人也想进入内存执行时,就得排队等候。万一执行的时候出了什么事,他如今可不想排队,等下一个排队的人来补上。这个时候,他想要再排队,只能站在队伍的最后。

算法优点:简单易懂,实现简单,只需要一个队列(FIFO),比较公平

该算法的缺点:更利于长进程,不利于短进程,利于CPU繁忙的进程,不利于I/O繁忙的进程

2. 最短作业优先(SJF,Shortest Job First)

最短作业优先(SJF,Shortest Job First)又称“短进程优先”SPN(Shortest ProcessNext);这是对 FCFS 算法的改进,其目标是减少平均周转时间。

算法原理:优先将处理器分配给预期执行时间短的进程。通常后面的短进程不会抢占正在执行的进程。

算法优点:与FCFS算法相比,该算法可以提高平均周转时间和平均加权周转时间,缩短进程的等待时间,提高系统的吞吐量。

该算法的缺点:对长进程非常不利,可能长时间不执行,且不能根据进程的紧急程度划分执行的优先级,难以准确预估执行时间进程,从而影响调度性能。

3. Highest Response Ratio Next(HRRN,Highest Response Ratio Next)

Highest Response Ratio Next(HRRN,Highest Response RatioNext)是FCFS和SJF的综合平衡。FCFS方法只考虑每个作业的等待时间,不考虑执行时间的长短,而SJF方法只考虑执行时间,不考虑等待时间的长短。因此,这两种调度算法在某些极端情况下会带来一些不便。HRN调度策略综合考虑每个作业的等待时间和每个作业的预计执行时间,选择响应率最高的作业执行。这样,即使是一个long job,随着它等待时间的增加,W/T也会增加,它就有机会被调度执行。该算法是 FCFS 和 SJF 之间的折衷。

算法原理:响应比R定义如下:R = (W+T)/T = 1+W/T

其中 T 是作业的估计执行时间,W 是作业在备用队列中的等待时间。每当要进行作业调度时,系统会计算每个作业的响应率,选择R最大的作业执行。

算法优点:由于长作业也有机会投入运行,同时处理的作业数明显少于SJF方法,所以HRRN方法的吞吐量会比SJF 方法。

该算法的缺点:由于每次调度前都需要计算响应比,系统开销也会相应增加。

4、时间片轮转算法(RR,Round-Robin)

该算法采用剥夺策略。时间片循环调度是最古老、最简单、最公平、应用最广泛的算法,也称为RR调度。每个进程都被分配了一段时间,称为它的时间片,这是允许进程运行的时间量。

算法原理:FCFS模式下让就绪进程按照时间片轮流使用CPU调度方式,即系统中所有就绪进程按照FCFS原则排成一个队列,分配CPU调度时每次给队头进程,让其执行一个时间片,时间片的长度从几毫秒到几百毫秒不等。在一个时间片结束时,发生时钟中断,调度器相应地暂停当前进程的执行,将其送至就绪队列的尾部,通过上下文切换执行当前头进程。进程不能用完一个时间片。只卖CPU(比如阻塞)。

算法优点:时间片循环调度算法具有简单、平均响应时间短的特点。

该算法的缺点:不利于处理紧急作业。在时间片轮转算法中,时间片的大小对系统性能的影响很大,因此时间片的大小应选择恰当

如何确定时间片的大小:

1、响应时间的系统要求

2、就绪队列中的进程数

3、系统处理能力

5. 多级反馈队列

多级反馈队列调度算法是一种CPU处理器调度算法,被UNIX操作系统所采用。

多级反馈队列调度算法说明:

1、当进程进入待调度队列等待时,首先进入优先级最高的Q1等待。

2、优先级较高的队列中的进程首先被调度。如果高优先级队列中没有被调度的进程,则调度次优先级队列中的进程。例如:Q1、Q2、Q3是三个队列。Q2 只有在 Q1 没有进程在等待时才会被调度。同样,只有在Q1和Q2为空时才会调度Q3。

3、对于同一个队列中的各个进程,按照时间片轮询的方式进行调度。比如Q1队列的时间片是N,那么如果N个时间片后Q1中的作业还没有完成,就会进入Q2队列等待。如果作业在Q2时间片用完后还不能完成,则继续进入下一级队列,直到完成。

4、当低优先级队列中的进程在运行时,有一个新来的作业,那么在运行完这个时间片后,立即将CPU分配给新来的作业(抢占式)。

在多级反馈队列调度算法中,如果第一队列的时间片略大于大多数人机交互所需的处理时间,则可以更好地满足各类用户的需求。

这里总结了关于进程调度的算法。经过小编的总结,相信大家对进程调度器有了一定的了解。

关于"进程调度是什么意思"就介绍到这里,希望对大家有帮助。

文章评论

共有5条评论来说两句吧...