导航:首页 > 源码编译 > 湖南调度算法

湖南调度算法

发布时间:2022-11-26 20:20:37

1. 常见的调度算法总结

一、FCFS——先来先服务和短作业(进程)优先调度算法

1. 先来先服务调度算法。

先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度, 也可用于进程调度。FCFS算法比较有利于长作业(进程),而不利于短作业(进程)。由此可知,本算法适合于CPU繁忙型作业, 而不利于I/O繁忙型的作业(进程)。

2. 短作业(进程)优先调度算法。

短作业(进程)优先调度算法(SJ/PF)是指对短作业或短进程优先调度的算法,该算法既可用于作业调度, 也可用于进程调度。但其对长作业不利;不能保证紧迫性作业(进程)被及时处理;作业的长短只是被估算出来的。

二、FPF高优先权优先调度算法

1. 优先权调度算法的类型。

为了照顾紧迫性作业,使之进入系统后便获得优先处理,引入了最高优先权优先(FPF)调度算法。 此算法常被用在批处理系统中,作为作业调度算法,也作为多种操作系统中的进程调度,还可以用于实时系统中。当其用于作业调度, 将后备队列中若干个优先权最高的作业装入内存。当其用于进程调度时,把处理机分配给就绪队列中优先权最高的进程,此时, 又可以进一步把该算法分成以下两种:

1)非抢占式优先权算法

2)抢占式优先权调度算法(高性能计算机操作系统)

2. 优先权类型 。

对于最高优先权优先调度算法,其核心在于:它是使用静态优先权还是动态优先权, 以及如何确定进程的优先权。

3.动态优先权

高响应比优先调度算法为了弥补短作业优先算法的不足,我们引入动态优先权,使作业的优先等级随着等待时间的增加而以速率a提高。 该优先权变化规律可描述为:优先权=(等待时间+要求服务时间)/要求服务时间;即 =(响应时间)/要求服务时间

三、基于时间片的轮转调度算法

1.时间片轮转法。

时间片轮转法一般用于进程调度,每次调度,把CPU分配队首进程,并令其执行一个时间片。 当执行的时间片用完时,由一个记时器发出一个时钟中断请求,该进程被停止,并被送往就绪队列末尾;依次循环。

2. 多级反馈队列调度算法

多级反馈队列调度算法多级反馈队列调度算法,不必事先知道各种进程所需要执行的时间,它是目前被公认的一种较好的进程调度算法。 其实施过程如下:

1) 设置多个就绪队列,并为各个队列赋予不同的优先级。在优先权越高的队列中, 为每个进程所规定的执行时间片就越小。

2) 当一个新进程进入内存后,首先放入第一队列的末尾,按FCFS原则排队等候调度。 如果他能在一个时间片中完成,便可撤离;如果未完成,就转入第二队列的末尾,在同样等待调度…… 如此下去,当一个长作业(进程)从第一队列依次将到第n队列(最后队列)后,便按第n队列时间片轮转运行。

3) 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;

仅当第1到第( i-1 )队列空时, 才会调度第i队列中的进程运行,并执行相应的时间片轮转。

4) 如果处理机正在处理第i队列中某进程,又有新进程进入优先权较高的队列, 则此新队列抢占正在运行的处理机,并把正在运行的进程放在第i队列的队尾。

2. 第三章 进程调度的几种方式

进程调度概念:操作系统必须为多个,吗进程可能有竞争的请求分配计算机资源。对处理器而言,可分配的资源是在处理器上的执行时间,分配途径是调度。调度功能必须设计成可以满足多个目标,包括公平、任何进程都不会饿死、有效地使用处理器时间和低开销。此外,调度功能可能需要为某些进程的启动或结束考虑不同的优先级和实时最后期限。

这些年以来,调度已经成为深入研究的焦点,并且已经实现了许多不同的算法。如今,调度研究的重点是开发多处理系统,特别是用于多线程的。

下面简介几种调度算法。

一、先来先服务和短作业(进程)优先调度算法

1.先来先服务调度算法

先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。

2.短作业(进程)优先调度算法

短作业(进程)优先调度算法SJ(P)F,是指对短作业或短进程优先调度的算法。它们可以分别用于作业调度和进程调度。短作业优先(SJF)的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。而短进程优先(SPF)调度算法则是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。

二、高优先权优先调度算法

1.优先权调度算法的类型

为了照顾紧迫型作业,使之在进入系统后便获得优先处理,引入了最高优先权优先(FPF)调度算法。此算法常被用于批处理系统中,作为作业调度算法,也作为多种操作系统中的进程调度算法,还可用于实时系统中。当把该算法用于作业调度时,系统将从后备队列中选择若干个优先权最高的作业装入内存。当用于进程调度时,该算法是把处理机分配给就绪队列中优先权最高的进程,这时,又可进一步把该算法分成如下两种。

1) 非抢占式优先权算法

在这种方式下,系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程。这种调度算法主要用于批处理系统中;也可用于某些对实时性要求不严的实时系统中。

2) 抢占式优先权调度算法

在这种方式下,系统同样是把处理机分配给优先权最高的进程,使之执行。但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进程(原优先权最高的进程)的执行,重新将处理机分配给新到的优先权最高的进程。因此,在采用这种调度算法时,是每当系统中出现一个新的就绪进程i 时,就将其优先权Pi与正在执行的进程j 的优先权Pj进行比较。如果Pi≤Pj,原进程Pj便继续执行;但如果是Pi>Pj,则立即停止Pj的执行,做进程切换,使i 进程投入执行。显然,这种抢占式的优先权调度算法能更好地满足紧迫作业的要求,故而常用于要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中。

2.高响应比优先调度算法

在批处理系统中,短作业优先算法是一种比较好的算法,其主要的不足之处是长作业的运行得不到保证。如果我们能为每个作业引入前面所述的动态优先权,并使作业的优先级随着等待时间的增加而以速率a 提高,则长作业在等待一定的时间后,必然有机会分配到处理机。该优先权的变化规律可描述为:

由于等待时间与服务时间之和就是系统对该作业的响应时间,故该优先权又相当于响应比RP。据此,又可表示为:

由上式可以看出:

(1) 如果作业的等待时间相同,则要求服务的时间愈短,其优先权愈高,因而该算法有利于短作业。

(2) 当要求服务的时间相同时,作业的优先权决定于其等待时间,等待时间愈长,其优先权愈高,因而它实现的是先来先服务。

(3) 对于长作业,作业的优先级可以随等待时间的增加而提高,当其等待时间足够长时,其优先级便可升到很高,从而也可获得处理机。简言之,该算法既照顾了短作业,又考虑了作业到达的先后次序,不会使长作业长期得不到服务。因此,该算法实现了一种较好的折衷。当然,在利用该算法时,每要进行调度之前,都须先做响应比的计算,这会增加系统开销。

三、基于时间片的轮转调度算法

1.时间片轮转法

1) 基本原理

在早期的时间片轮转法中,系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU 分配给队首进程,并令其执行一个时间片。时间片的大小从几ms 到几百ms。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程在一给定的时间内均能获得一时间片的处理机执行时间。换言之,系统能在给定的时间内响应所有用户的请求。

2.多级反馈队列调度算法

前面介绍的各种用作进程调度的算法都有一定的局限性。如短进程优先的调度算法,仅照顾了短进程而忽略了长进程,而且如果并未指明进程的长度,则短进程优先和基于进程长度的抢占式调度算法都将无法使用。而多级反馈队列调度算法则不必事先知道各种进程所需的执行时间,而且还可以满足各种类型进程的需要,因而它是目前被公认的一种较好的进程调度算法。在采用多级反馈队列调度算法的系统中,调度算法的实施过程如下所述。

(1) 应设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。例如,第二个队列的时间片要比第一个队列的时间片长一倍,……,第i+1个队列的时间片要比第i个队列的时间片长一倍。

(2) 当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行;如果它在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,……,如此下去,当一个长作业(进程)从第一队列依次降到第n队列后,在第n 队列便采取按时间片轮转的方式运行。

(3) 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第1~(i-1)队列均空时,才会调度第i队列中的进程运行。如果处理机正在第i队列中为某进程服务时,又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列),则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第i队列的末尾,把处理机分配给新到的高优先权进程。

3. 关于作业调度的算法怎么写

网络上搜一下就有了,我做这个就是找的

4. 作业调度的算法都有哪些

作业调度的算法有:算法有先来先服务、最短作业优先算法、最高响应比优先算法、基于优先数调度算法。

1、算法有先来先服务

最简单的调度算法,按作业的先后顺序进行调度,只考虑每个作业的等待时间而未考虑执行时间的长短。

2、最短作业优先算法

最短作业优先算法是对先来先服务算法的改进,其目标是减少平均周转时间。对预计执行时间短的作业优先分派处理机。通常后来的短作业不抢先正在执行的作业。 只考虑执行时间而未考虑等待时间的长短。

3、最高响应比优先算法

最高响应比优先算法是对先来先服务方式和最短作业优先算法方式的一种综合平衡。最高响应比优先法调度策略同时考虑每个作业的等待时间的长短和估计需要的执行时间长短,从中选出相应比最高的作业投入执行。

4、基于优先数调度算法

优先数调度算法常用于批处理系统中。在进程调度中,每次调度时,系统把处理机分配给就绪队列中优先数最高的进程。它又分为两种:非抢占式优先数算法和抢占式优先数算法。

(4)湖南调度算法扩展阅读:

作业调度是指按照时间周期(年、月、日、时、分、秒等)对作业进行分割,并根据业务需求、作业长度、存储管理及依赖性关系对作业的执行方式加以调度。主要任务是从作业后备队列中选择作业进入主存运行。作业调度的功能主要有以下几方面:

1、记录各作业在系统中的状态;

2、从后备队列中挑选一部分作业投入运行;

3、从被选中的作业做好执行前的准备工作;

4、在作业执行结束时,做善后处理工作。

进行作业调度有很多作业调度算法,这些作业调度算法要实现的目标是:

1、调度对所有作业都是公平合理的;

2、应使设备有较高的利用率(提供系统利用率);

3、每次运行尽可能多的作业(提高系统吞吐量);

4、较快的相应时间。

5. 进程常用的调度方式有哪三种

进程调度有以下两种基本方式:
非剥夺方式
分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。
剥夺方式
当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程、优先原则、时间片原则。
例如,有三个进程P1、P2、P3先后到达,它们分别需要20、4和2个单位时间运行完毕。
假如它们就按P1、P2、P3的顺序执行,且不可剥夺,则三进程各自的周转时间分别为20、24、
26个单位时间,平均周转时间是23.33个时间单位。
假如用时间片原则的剥夺调度方式,可得到:
可见:P1、P2、P3的周转时间分别为26、10、6个单位时间,平均周转时间为14个单位时间。
衡量进程调度性能的指标有:周转时间、响应时间、CPU-I/O执行期。

6. 操作系统的调度算法

1)10:00Job1到达并投入运行。此时内存中有作业:Job1
2)10:05 Job2到达并进入内存。此时,Job1运行时间剩余是25min, Job2运行剩余时间是20min,根据SRTF,Job2开始运行。
3)10:25 Job2运行结束。Job3、Job4在后备队列中,据SJF,Job3进入内存,据SRTF,Job3开始运行。内存:Job1、Job3
4)10:30 Job3运行结束。Job4在后备队列中,Job4进入内存,据SRTF,Job4开始运行。内存:Job1、Job4
5)10:40 Job4运行结束。Job1重新继续运行。
6)11:05 Job1运行结束。

7. 什么是调度算法

调度算法

通常将作业或进程归入各种就绪或阻塞队列。有的算法适用于作业调度,有的算法适用于进程调度,有的两者都适应。

1.先来先服务(FCFS, First Come First Serve)

先来先服务(FCFS, First Come First Serve)是最简单的调度算法,按先后顺序进行调度。

1. FCFS算法

按照作业提交或进程变为就绪状态的先后次序,分派CPU;

当前作业或进程占用CPU,直到执行完或阻塞,才出让CPU(非抢占方式)。

在作业或进程唤醒后(如I/O完成),并不立即恢复执行,通常等到当前作业或进程出让CPU。最简单的算法。

2. FCFS的特点

比较有利于长作业,而不利于短作业。

有利于CPU繁忙的作业,而不利于I/O繁忙的作业。

2. 轮转法(Round Robin)

轮转法(Round Robin)是让每个进程在就绪队列中的等待时间与享受服务的时间成正比例。

1. 轮转法

Ø 将系统中所有的就绪进程按照FCFS原则,排成一个队列。

Ø 每次调度时将CPU分派给队首进程,让其执行一个时间片。时间片的长度从几个ms到几百ms。

Ø 在一个时间片结束时,发生时钟中断。

Ø 调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前的队首进程。

Ø 进程可以未使用完一个时间片,就出让CPU(如阻塞)。

Ø

2. 时间片长度的确定

Ø 时间片长度变化的影响

² 过长->退化为FCFS算法,进程在一个时间片内都执行完,响应时间长。

² 过短->用户的一次请求需要多个时间片才能处理完,上下文切换次数增加,响应时间长。

Ø 对响应时间的要求:T(响应时间)=N(进程数目)*q(时间片)

Ø 就绪进程的数目:数目越多,时间片越小

Ø 系统的处理能力:应当使用户输入通常在一个时间片内能处理完,否则使响应时间,平均周转时间和平均带权周转时间延长。

3. 多级反馈队列算法(Round Robin with Multiple Feedback)

多级反馈队列算法时间片轮转算法和优先级算法的综合和发展。

优点:

² 为提高系统吞吐量和缩短平均周转时间而照顾短进程。

² 为获得较好的I/O设备利用率和缩短响应时间而照顾I/O型进程。

² 不必估计进程的执行时间,动态调节。

1. 多级反馈队列算法

² 设置多个就绪队列,分别赋予不同的优先级,如逐级降低,队列1的优先级最高。每个队列执行时间片的长度也不同,规定优先级越低则时间片越长,如逐级加倍。

² 新进程进入内存后,先投入队列1的末尾,按FCFS算法调度;若按队列1一个时间片未能执行完,则降低投入到队列2的末尾,同样按FCFS算法调度;如此下去,降低到最后的队列,则按“时间片轮转”算法调度直到完成。

² 仅当较高优先级的队列为空,才调度较低优先级的队列中的进程执行。如果进程执行时有新进程进入较高优先级的队列,则抢先执行新进程,并把被抢先的进程投入原队列的末尾。

²

2. 几点说明

² I/O型进程:让其进入最高优先级队列,以及时响应I/O交互。通常执行一个小时间片,要求可处理完一次I/O请求的数据,然后转入到阻塞队列。

² 计算型进程:每次都执行完时间片,进入更低级队列。最终采用最大时间片来执行,减少调度次数。

² I/O次数不多,而主要是CPU处理的进程。在I/O完成后,放回优先I/O请求时离开的队列,以免每次都回到最高优先级队列后再逐次下降。

² 为适应一个进程在不同时间段的运行特点,I/O完成时,提高优先级;时间片用完时,降低优先级。

8. 求一个关于作业调度的算法问题的解!!

n个任务的总执行时间:total=t1+t2+...+tn;
分配到每个CPU的执行时间:avarage=total/k;
显然最佳情况是每个CPU的执行时间相等,如果要求作业只能在一次调度,一个CPU上完成,那么这种最佳情形是未必能够满足的。
____________________________
所以我在下面提供几个尽可能提高资源利用的算法
1.把所有的输入的任务按照执行时间的长短从小到大进行内部排序,得到新的有序序列s1,s2...sn;
2.在任务的执行时间有序后,按照首尾顺序选择作业,为每个CPU选择(n/k)个作业左右(必不小于n/k);
还有:
1.把所有的输入的任务按照执行时间的长短从小到大进行内部排序,得到新的有序序列s1,s2...sn;
2.按照S形为每个CPU分配作业,即第一个作业交付给c1,第二个作业交付给c2,...第k个作业交付给ck,第k+1个作业交付给ck,第k+2个作业交付给c(k-1)...直到所有作业全部交付。

9. 作业调度算法思想是什么

作业调度算法:1、先来先服务算法;2、短作业优先算法;3、最高响应比作业优先算法;4、资源搭配算法;5、多队列循环算法

对算法的选择要考虑三个目标:
1、尽量提高系统的作业吞吐量,即每天处理尽可能多的作业;
2、尽量使CPU和外部设备保持忙碌状态,以提高资源利用率;
3、对各种作业公平合理,使用有用户都满意。

10. 在操作系统中,常见的调度算法有哪些

你要问哪一部分的?磁盘管理,存储管理还是处理机管理,设备管理,每种管理都有自己的调度算法。你给个具体的,常见调度台笼统了

阅读全文

与湖南调度算法相关的资料

热点内容
广数980tb3用g83钻孔怎么编程 浏览:576
程序员上海与北京 浏览:404
安卓手机的动态照片为什么卡 浏览:538
ad编译集成库时最常见的问题 浏览:846
matlab微分方程编程 浏览:700
安卓手机如何打开esp文件 浏览:545
什么app能安装应用 浏览:199
手机用什么app看电视剧电影好 浏览:603
导入原理图为什么文件夹不显示 浏览:655
androidapp风格 浏览:209
php取服务器url地址 浏览:293
linux时间调度算法 浏览:771
单片机最小电路详解 浏览:185
请求要求命令 浏览:806
电脑文件夹发微信显示被占用 浏览:295
手机怎么看加密视频 浏览:206
怎样解压手机es文件包 浏览:661
2017年学什么编程 浏览:935
金融期货pdf 浏览:694
程序员客栈的信息保密吗 浏览:507