进程调度是什么意思?操作系统中常见的五种进程调度算法
进程调度是什么意思?流程大家都很熟悉了,那么你知道流程调度器吗?熟悉操作系统的用户都知道,用户进程的数量一般要多于处理器的数量,这就导致了进程争抢处理器的情况。这时候进程调度器就派上用场了。很多小伙伴可能会好奇进程调度器是如何实现调度的?下面总结了操作系统常用的五种进程调度算法。
进程调度是什么意思?
无论是批处理系统还是分时系统,用户进程的数量一般都会超过处理器的数量,这就会导致它们相互竞争处理器。此外,系统进程也需要使用处理器。这就需要进程调度器按照一定的策略,动态地将处理器分配给就绪队列中的某个进程,使其得以执行。
操作系统常用的进程调度算法:
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分配给新来的作业(抢占式)。
在多级反馈队列调度算法中,如果第一队列的时间片略大于大多数人机交互所需的处理时间,则可以更好地满足各类用户的需求。
这里总结了关于进程调度的算法。经过小编的总结,相信大家对进程调度器有了一定的了解。
关于"进程调度是什么意思"就介绍到这里,希望对大家有帮助。
- 上一篇
win7中查找文件的方法有哪些?windows7中查找文件的三种方法
大家经常使用win7系统。在工作的过程中,难免会在电脑上找一些文件,但是当文件多了又不好找的时候,大家就无所适从了。那么win7中查找文件的方法有哪些呢?下面小编就为大家带来Windows7中三种查找文件的方法。win7中查找文件的方法有哪些方法...
- 下一篇
什么文件管理软件好用?推荐的文件管理软件
每个人通常都使用电脑上班。有很多文件和资料。管理文件对工作效率很有帮助,可以帮助用户更好的处理文件存储。那么文件管理软件有哪些呢?为您带来好用的文件管理软件推荐。文件管理软件有哪些1、TotalCommander一款老牌的文件管理软件...