导航:首页 > 源码编译 > sjf算法是最简单的调度吗

sjf算法是最简单的调度吗

发布时间:2022-06-25 04:12:32

❶ SJF调度算法

SJF调度算法:最短作业优先算法SJF(Shortest Job First ),SJF算法以进入系统的作业所要求的CPU时间为标准,总选取估计计算时间最短的作业投入运行。

SJF 调度算法优缺点:算法易于实现。但效率不高,主要弱点是忽视了作业等待时间;会出现饥饿现象。SJF 调度算法可证明为最佳的,这是因为对于给定的一组进程, SJF 算法的平均等待时间最小。虽然 SJF 算法最佳,但是它不能在短期CPU 调度层次上加以实现。因为没有办法知道下一个 CPU 区间的长度。

SJF算法Gantt图:

进程 区间时间


PI 6


P2 8


P3 7


P4 3

进程 P1 的等待时间是 3 ms,进程P2的等待时间为 16 ms,进程P3的等待时间为 9ms,进程P4的等待时间为 0ms。因此,平均等待时间为(3 + 16 + 9 +0) / 4 = 7 ms。

❷ 操作系统相关算法:SJF和SPF的区别

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

❸ 以下五个作业,fcfs sjf hrrn三种调度算法平均周转时间,高响应比怎么算

作业调度算法 .

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

定义:

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


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


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


适用场景:

比较有利于长作业,而不利于短作业。因为长作业会长时间占据处理机。


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


算法实现原理图:


2. 轮转法(Round Robin)

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


定义:

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


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


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


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


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


时间片长度的确定:

时间片长度变化的影响


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


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


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


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


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


算法实现原理图:


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

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


定义:

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


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


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


优点:

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


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


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


几点说明:

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


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


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


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


算法实现原理图:


4. 优先级法(Priority Scheling)

优先级算法是多级队列算法的改进,平衡各进程对响应时间的要求。适用于作业调度和进程调度,可分成抢先式和非抢先式。


静态优先级:

作业调度中的静态优先级大多按以下原则确定:


由用户自己根据作业的紧急程度输入一个适当的优先级。


由系统或操作员根据作业类型指定优先级。


系统根据作业要求资源情况确定优先级。


进程的静态优先级的确定原则:


按进程的类型给予不同的优先级。


将作业的情态优先级作为它所属进程的优先级。


动态优先级:

进程的动态优先级一般根据以下原则确定:


根据进程占用有CPU时间的长短来决定。


根据就绪进程等待CPU的时间长短来决定。


5.短作业优先法(SJF, Shortest Job First)

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


定义:

对预计执行时间短的作业(进程)优先分派处理机。通常后来的短作业不抢先正在执行的作业。


SJF的特点:

(1) 优点:


比FCFS改善平均周转时间和平均带权周转时间,缩短作业的等待时间;


提高系统的吞吐量;


(2) 缺点:


对长作业非常不利,可能长时间得不到执行;


未能依据作业的紧迫程度来划分执行的优先级;


难以准确估计作业(进程)的执行时间,从而影响调度性能。


SJF的变型:

“最短剩余时间优先”SRT(Shortest Remaining Time)(允许比当前进程剩余时间更短的进程来抢占)


“最高响应比优先”HRRN(Highest Response Ratio Next)(响应比R = (等待时间 + 要求执行时间) / 要求执行时间,是FCFS和SJF的折衷)


6. 最高响应比优先法(HRN,Highest Response_ratio Next)

最高响应比优先法是对FCFS方式和SJF方式的一种综合平衡。FCFS方式只考虑每个作业的等待时间而未考虑执行时间的长短,而SJF方式只考虑执行时间而未考虑等待时间的长短。因此,这两种调度算法在某些极端情况下会带来某些不便。HRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。


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


其中T为该作业估计需要的执行时间,W为作业在后备状态队列中的等待时间。每当要进行作业调度时,系统计算每个作业的响应比,选择其中R最大者投入执行。这样,即使是长作业,随着它等待时间的增加,W / T也就随着增加,也就有机会获得调度执行。这种算法是介于FCFS和SJF之间的一种折中算法。由于长作业也有机会投入运行,在同一时间内处理的作业数显然要少于SJF法,从而采用HRN方式时其吞吐量将小于采用SJF 法时的吞吐量。另外,由于每次调度前要计算响应比,系统开销也要相应增加。

❹ SJF是什么意思

是网络上的一个梗,指stg界最高毒奶。

SJF指射击游戏(Shooting game),游戏类型的一种,也是动作游戏的一种。射击游戏带有很明显的动作游戏特点,也没有纯然的射击游戏,因为射击必须要经过一种动作方式来呈现它的“射击”。

“毒奶”指反向加油、拖累队友。

详解:

奶,在电竞中作为名词时候,指使用于游戏治疗辅助职业;在电竞中作为动词时即指治疗的动作。

毒奶,顾名思义,有毒的奶,即起到治疗的反作用,害死队友的行为。

❺ 短作业优先调度算法sjf 写一下具体的运算过程,谢谢

短作业优先(SJF, Shortest Job First)又称为“短进程优先”SPN(Shortest Process Next);这是对FCFS算法的改进,其目标是减少平均周转时间。
定义
对预计执行时间短的作业(进程)优先分派处理机。通常后来的短作业不抢先正在执行的作业。

❻ 处理机调度有哪几种方式它们分别有什么优缺点

先来先服务FCFS和短作业(进程)优先SJ(P)F调度算法,SJF调度算法用于作业和进程调度,能有效的降低作业的平均等待时间,提高系统吞吐量。缺点:该算法对长作业不利,完全未考虑作业的紧迫程度,因此不能保证紧迫性作业会被及时处理,由于作业的长短只是根据用户所提供的估计执行时间而定的,而用户又可能会有意或无意地缩短其作业的估计运行时间,致使该算法不一定能真正做到短作业优先调度。 高优先权优先调度算法,优先权调度算法包括非抢占式优先权算法和抢占式优先权调度算法;高响应比优先调度算法,特点:有利于短作业、先来先服务、对于长作业也可获得处理机。 基于时间片的轮转调度算法,时间片轮转法和多级反馈队列调度算法。

❼ 如果多个进程同时到达系统,则平均周转时间最短的进程调度算法是什么

如果多个进程同时到达系统,则平均周转时间最短的进程调度算法是 短进程优先调度算法 。
短进程优先调度算法SJ(P)F,是指对短作业或短进程优先调度的算法。它们可以分别用于作业调度和进程调度。短作业优先(SJF)的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。而短进程(SPF)调度算法则是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机再重新调度。
优点是SJ(P)F调度算法能有效地降低作业(进程)的平均等待时间,提高系统吞吐量。
缺点是该算法对长作业不利;完全未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)长期不被调度;由于作业(进程)的长短只是根据用户所提供的估计执行时间而定的,而用户又可能会有意或无意地缩短其作业的估计运行时间,致使该算法不一定能真正做到短作业游戏那调度。
该程序定义了一个进程数据块(struct spf),该数据块有进程名(name)、到达时间(arrivetime)、服务时间(servicetime)、开始执行时间(starttime)、完成时间(finishtime)、周转时间(zztime)、平均周转时间(averzztime)。用到的公式有:完成时间=到达时间+服务时间;周转时间=完成时间-到达时间;(第一次执行的进程的完成时间=该进程的到达时间;下一个进程的开始执行时间=上一个进程的完成时间)。运行进程的顺序需要对进程的到达时间和服务时间进行比较。如果某一进程是从0时刻到达的,那么首先执行该进程;之后就比较进程的服务时间,谁的服务时间短就先执行谁(如果服务时间相同则看它们的到达时间,到达时间短的先执行);如果到达时间和服务时间相同,则按先来先服务算法执行。

❽ 作业调度的算法有哪些

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

1、算法有先来先服务

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

2、最短作业优先算法

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

3、最高响应比优先算法

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

4、基于优先数调度算法

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

(8)sjf算法是最简单的调度吗扩展阅读:

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

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

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

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

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

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

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

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

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

4、较快的相应时间。

❾ SJF什么意思

最短作业优先算法SJF SJF(Shortest Job First ) SJF算法以进入系统的作业所要求的CPU时间为标准,总选取估计计算时间最短的作业投入运行。 SJF算法的优缺点: 算法易于实现。但效率不高,主要弱点是忽视了作业等待时间;会出现饥饿现象。 SJF算法与FCFS算法的比较: SJF的平均作业周转时间比FCFS要小,故它的调度性能比FCFS好。 SJF调度算法的问题: 实现SJF调度算法需要知道作业所需运行时间,否则调度就没有依据,要精确知道一个作业的运行时间是办不到的。

❿ 理发店里面只有一位理发师,A、B、C三位顾客同时来到这里。怎样安排可以使三位顾客等待的时间总和最少

每次选择预计花费时间最短的顾客进行理发,最后的三位顾客等待的时间总和最少。

这个问题可以用计算机中作业调度算法来解决。同时到达的不同任务单核的情况下怎样使等待时间的总和最少?已经经过证明的算法,最短任务优先就可以做到。计算机里面的一个经典算法最短任务优先SJF,采用SJF策略可以使各个任务总体等待时间最短。

最短任务优先SJF调度算法是被证明了的最佳调度算法,这是因为对于给定的一组任务,SJF算法的平均周转时间最小。通过将短任务移到长任务之前,短任务等待时间的减少大于长任务等待时间的增加,因此,平均等待时间减少了。

(10)sjf算法是最简单的调度吗扩展阅读:

SJF算法能有效地降低任务的平均等待时间,但是也存在一些不容忽视的缺点。

1、如果不断有短任务进来,长任务有可能要一直等待。

2、如果无法准确知道任务的确切执行时间,致使该算法不一定能真正做到短任务优先调度。

参考资料来源:网络——sjf

阅读全文

与sjf算法是最简单的调度吗相关的资料

热点内容
linux软raid性能 浏览:366
贴片机编程软件下载 浏览:358
mooc大学乐学python答案 浏览:408
怎么投诉途虎app 浏览:37
安卓重力感应怎么关 浏览:720
我的世界ios怎么建服务器地址 浏览:759
服务器端口ip都是什么意思 浏览:262
华为主题软件app怎么下 浏览:840
我们的图片能够收藏加密吗 浏览:979
mysql空值命令 浏览:213
python整点秒杀 浏览:882
怎么样互传app 浏览:293
python分布式抓包 浏览:36
轻量级php论坛 浏览:342
如何查看应用存储在哪个文件夹 浏览:436
app开发项目范围怎么写 浏览:76
androidjms 浏览:843
弹珠连贯解压 浏览:243
程序员的网课 浏览:904
广东加密狗防拷贝公司 浏览:450