进程调度算法的特点以及使用场景

您所在的位置:网站首页 环形队列有什么应用场景和特点 进程调度算法的特点以及使用场景

进程调度算法的特点以及使用场景

2024-07-07 04:47| 来源: 网络整理| 查看: 265

文章目录 一、调度二、调度算法的分类以及它们的特点、使用场景1、批处理系统中的调度2、交互式系统中的调度3、实时系统中的调度

一、调度

只要对资源的请求大于资源本身的数量,就会涉及调度。

  当计算机系统是多道程序设计系统时,通常就会有多个进程或线程同时竞争CPU。只要有两个或更多的进程处于就绪状态,这种情形就会发生。如果只有一个CPU可用,那么就必须选择下一个要运行的进程。在操作系统中,完成选择工作的这一部分称为调度程序(scheduler),该程序使用的算法称为调度算法(scheduling algorithm)。

二、调度算法的分类以及它们的特点、使用场景

毫无疑问,不同的环境需要不同的调度算法。之所以出现这种情形,是因为不同的应用领域(以及不同的操作系统)有不同的目标。换句话说,在不同的系统中,调度程序的优化是不同的。这里有必要划分出三种环境:批处理;交互式;实时。

1、批处理系统中的调度

有必要指出,某些算法既可以用在批处理系统中,也可以用在交互式系统中。

1)先来先服务(first-coming first-served):非抢占式,选择最先进入队列的。该算法的主要优点是易于理解并且便于在程序中运用,不过,该算法也有明显的缺点:FCFS调度算法属于不可剥夺算法,从表面上看,它对所有作业都是公平的,但若一个长作业先到达系统,就会使后面的许多短作业等待很长时间。   FCFS调度算法的特点是算法简单,但效率低;对长作业比较有利,但对短作业不利(相对SJF和高响应比);有利于CPU繁忙型作业,而不利于I/O繁忙型作业。 2)最短作业优先(shortest job first):非抢占式,选择完成时间最短的。SJF调度算法也存在不容忽视的缺点:一,该算法对长作业不利,有可能会导致长作业长期不被调度(“饥饿”现象,注意区分“死锁”,后者是系统环形等待,前者是调度策略问题);二,该算法完全未考虑作业的紧迫程度,因而不能保证紧迫性作业会被及时处理;三,由于作业的长短只是根据用户所提供的估计执行时间而定的,而用户有可能会有意或无意的缩短其作业的估计运行时间,致使该算法不一定能真正做到短作业优先调度。 注意,SJF调度算法的平均等待时间、平均周转时间最少。

3)最短剩余时间优先(shortest remaining time next):最短作业优先的抢占式版本。当一个新的作业到达时,其整个时间同当前进程的剩余时间作比较。如果新的进程比当前运行进程需要更少的时间,当前进程就被挂起,而运行新的进程。这种方式可以使新的短作业获得良好的服务。 4)高响应比优先调度算法(highest response ratio next):是对FCFS调度算法和SJF调度算法的一种综合平衡,同时考虑了每个作业的等待时间很孤寂的运行时间。在每次进行作业调度时,先计算后备作业队列中每个作业的响应比,从中选出相应比最高的作业投入运行。该算法中的响应比是指作业等待时间与运行比值,响应比公式定义如下:   响应比 =(等待时间+要求服务时间)/ 要求服务时间,即RR=(w+s)/s=1+w/s,因此响应比一定是大于等于1的。   优缺点:短作业与先后次序的兼顾,且不会使长作业长期得不到服务;响应比计算系统开销,增加系统开销。适用场景:批处理系统,主要用于作业调度。

2、交互式系统中的调度

它们在个人计算机、服务器和其它类系统中都是常用的。

1)轮转调度(round robin):总是选择就绪队列中的第一个进程,但仅能运行一个时间片。轮转调度是一种最古老、最简单、最公平且使用最广的算法。每个进程被分配一个时间段,称为时间片(quantum),即允许该进程在该时间段中运行。如果在时间片结束时该进程还在运行,则将剥夺CPU并分配给另一个进程。如果该进程在时间片结束前阻塞或结束,则CPU立即进行切换。   优点是兼顾长短作业;缺点是平均等待时间较长,上下文切换较费时。 注意:时间片设的太短会导致过多的进程切换,降低了CPU效率;而设得太长又可能引起对短的交互请求的响应时间变长。将时间片设为20~50ms通常是一个比较合理的折中。

2)优先级调度:选择优先级别最高的。根据新的更高优先级进程能否抢占正在执行的进程,可将该调度算法分为非剥夺式优先级调度算法与剥夺式优先级调度算法。根据进程创建后其优先级是否可以改变,可以将进程优先级分为静态优先级与动态优先级。其中,动态调整优先级的主要依据有进程占有CPU时间的长短、进程对资源的要求、用户要求。   ①静态优先级的优点是简单易行、系统开销小,缺点是不太灵活,很可能出现低优先级的作业(进程),长期得不到调度而等待的情况;②动态优先级的优点是使相应的优先级调度算法比较灵活、科学,可防止有些进程一直得不到调度,也可防止有些进程长期垄断处理机,缺点是需要花费相当多的执行程序时间,因而花费的系统开销比较大。   非抢占式优先级算法和抢占式优先级算法的适用场景:①非抢占式优先级算法主要用于一般的批处理系统、分时系统,也常用于某些实时性要求不太高的实时系统;②常用于实时要求比较严格的实时系统中,以及对实时性能要求高的分时系统。 3)多级队列(Compatible Time Shareing System):CTSS,时间片轮转调度算法和优先级调度算法的综合发展。通过动态调整进程优先级和时间片大小,多级队列调度算法可以兼顾多方面的系统目标。通过动态调整进程优先级和时间片大小,多级队列调度算法可以兼顾多方面的系统目标。例如,为提高系统吞吐量和缩短平均周转时间而照顾短进程;为获得较好的I/O设备利用率和缩短响应时间而照顾I/O型进程;同时也不必事先估计进程的执行时间。   多级队列的优势有三点:一,终端型作业用户:短作业优先;二,短批处理作业用户:周转时间较短;三,长批处理作业用户:经过前面几个队列得到部分执行,不会长期不到处理。

3、实时系统中的调度

实时系统是一种时间起着主导作用的系统。

  实时系统通常可以分为硬实时和软实时。在这两种情形中,实时性能都是通过把程序划分为一组进程而实现的,其中每个进程的行为是可预测和提前掌握的。这些进程一般寿命较短,并且极快地运行完成。在检测到一个外部信号时,调度程序的任务就是按照满足所有截止时间的要求调度进程。   实时系统的调度算法可以是静态或动态的。前者是系统开始运行之前作出调度决策;后者在运行过程中进行调度决策。只有在可以提前掌握所完成的工作以及必须满足的截至时间等全部信息时,静态调度才能工作,而动态调度算法不需要这些限制。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3