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

进程调度是什么意思?对于进程大家再熟悉不过了,那么对于进程调度程序大家了解吗?熟悉操作系统的用户都知道,用户进程数一般都多于处理机数,这就导致了进程会争夺处理机的情况,这时候进程调度程序就派上用场了 。可能很多伙伴都会好奇进程调度程序是怎么实现调度的呢?下面给大家总结了操作系统常见的五种进程调度算法 。

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

文章插图
进程调度是什么意思?
无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机 。另外,系统进程也同样需要使用处理机 。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行 。
操作系统的常见进程调度算法:
一、先来先服务 (FCFS,first come first served)
在所有调度算法中,最简单的是非抢占式的FCFS算法 。
算法原理:进程按照它们请求CPU的顺序使用CPU.就像你买东西去排队,谁第一个排,谁就先被执行,在它执行的过程中,不会中断它 。当其他人也想进入内存被执行,就要排队等着,如果在执行过程中出现一些事,他现在不想排队了,下一个排队的就补上 。此时如果他又想排队了,只能站到队尾去 。
算法优点:易于理解且实现简单,只需要一个队列(FIFO),且相当公平
算法缺点:比较有利于长进程,而不利于短进程,有利于CPU 繁忙的进程,而不利于I/O 繁忙的进程
二、最短作业优先(SJF,Shortest Job First)
短作业优先(SJF,Shortest Job First)又称为“短进程优先”SPN(Shortest Process Next);这是对FCFS算法的改进,其目标是减少平均周转时间 。
算法原理:对预计执行时间短的进程优先分派处理机 。通常后来的短进程不抢先正在执行的进程 。
算法优点:相比FCFS 算法,该算法可改善平均周转时间和平均带权周转时间,缩短进程的等待时间,提高系统的吞吐量 。
算法缺点:对长进程非常不利,可能长时间得不到执行,且未能依据进程的紧迫程度来划分执行的优先级,以及难以准确估计进程的执行时间,从而影响调度性能 。
三、最高响应比优先法(HRRN,Highest Response Ratio Next)
最高响应比优先法(HRRN,Highest Response Ratio Next)是对FCFS方式和SJF方式的一种综合平衡 。FCFS方式只考虑每个作业的等待时间而未考虑执行时间的长短,而SJF方式只考虑执行时间而未考虑等待时间的长短 。因此,这两种调度算法在某些极端情况下会带来某些不便 。HRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行 。这样,即使是长作业,随着它等待时间的增加,W / T也就随着增加,也就有机会获得调度执行 。这种算法是介于FCFS和SJF之间的一种折中算法 。
算法原理:响应比R定义如下: R =(W T)/T = 1 W/T
其中T为该作业估计需要的执行时间,W为作业在后备状态队列中的等待时间 。每当要进行作业调度时,系统计算每个作业的响应比,选择其中R最大者投入执行 。
算法优点:由于长作业也有机会投入运行,在同一时间内处理的作业数显然要少于SJF法,从而采用HRRN方式时其吞吐量将小于采用SJF 法时的吞吐量 。
算法缺点:由于每次调度前要计算响应比,系统开销也要相应增加 。
四、时间片轮转算法(RR,Round-Robin)
该算法采用剥夺策略 。时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法,又称RR调度 。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间 。

推荐阅读