❶ 磁盘调度算法的比较
优点缺点FCFS算法公平、简单平均寻道距离大,仅应用在磁盘I/O较少的场合SSTF算法性能比“先来先服务”好不能保证平均寻道时间最短,可能出现“饥饿”现象SCAN算法寻道性能较好,可避免“饥饿”现象不利于远离磁头一端的访问请求C-SCAN算法消除了对两端磁道请求的不公平--
❷ SJF是什么意思
是网络上的一个梗,指stg界最高毒奶。
SJF指射击游戏(Shooting game),游戏类型的一种,也是动作游戏的一种。射击游戏带有很明显的动作游戏特点,也没有纯然的射击游戏,因为射击必须要经过一种动作方式来呈现它的“射击”。
“毒奶”指反向加油、拖累队友。
详解:
奶,在电竞中作为名词时候,指使用于游戏治疗辅助职业;在电竞中作为动词时即指治疗的动作。
毒奶,顾名思义,有毒的奶,即起到治疗的反作用,害死队友的行为。
❸ 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什么意思
最短作业优先算法SJF SJF(Shortest Job First ) SJF算法以进入系统的作业所要求的CPU时间为标准,总选取估计计算时间最短的作业投入运行。 SJF算法的优缺点: 算法易于实现。但效率不高,主要弱点是忽视了作业等待时间;会出现饥饿现象。 SJF算法与FCFS算法的比较: SJF的平均作业周转时间比FCFS要小,故它的调度性能比FCFS好。 SJF调度算法的问题: 实现SJF调度算法需要知道作业所需运行时间,否则调度就没有依据,要精确知道一个作业的运行时间是办不到的。
❻ 磁盘调度算法
上文介绍了磁盘的结构,本文介绍磁盘的调度算法相关的内容。
本文内容
寻找时间(寻道时间) T s :在读/写数据前,需要将磁头移动到指定磁道所花费的时间。
寻道时间分两步:
则寻道时间 T s = s + m * n。
磁头移动到指定的磁道,但是不一定正好在所需要读/写的扇区,所以需要通过磁盘旋转使磁头定位到目标扇区。
延迟时间T R :通过旋转磁盘,使磁头定位到目标扇区所需要的时间。设磁盘转速为r(单位:转/秒,或转/分),则 平均所需延迟时间T R = (1/2)*(1/r) = 1/2r。
传输时间T R :从磁盘读出或向磁盘中写入数据所经历的时间,假设磁盘转速为r,此次读/写的字节数为b,每个磁道上的字节数为N,则传输时间 T R = (b/N) * (1/r) = b/(rN)。
总的平均时间 T a = T s + 1/2r + b/(rN) ,由于延迟时间和传输时间都是与磁盘转速有关的,且是线性相关。而转速又是磁盘的固有属性,因此无法通过操作系统优化延迟时间和传输时间。所以只能优化寻找时间。
算法思想: 根据进程请求访问磁盘的先后顺序进行调度。
假设磁头的初始位置是100号磁道,有多个进程先后陆续地请求访问55、58、39、18、90、160、150、38、184号磁道。
按照先来先服务算法规则,按照请求到达的顺序,磁头需要一次移动到55、58、39、18、90、160、150、38、184号磁道。
磁头共移动了 45 + 3 + 19 + 21 + 72 + 70 + 10 + 112 + 146 = 498个磁道。响应一个请求平均需要移动498 / 9 = 55.3个磁道(平均寻找长度)。
优点: 公平;如果请求访问的磁道比较集中的话,算法性能还算可以 。
缺点: 如果大量进程竞争使用磁盘,请求访问的磁道很分散,FCFS在性能上很差,寻道时间长 。
算法思想: 优先处理的磁道是与当前磁头最近的磁道。可以保证每次寻道时间最短,但是不能保证总的寻道时间最短 。(其实是贪心算法的思想,只是选择眼前最优,但是总体未必最优)。
假设磁头的初始位置是100号磁道,有多个进程先后陆续地请求访问55、58、39、18、90、160、150、38、184号磁道。
磁头总共移动了(100 -18)+ (184 -18) = 248个磁道。响应一个请求平均需要移动248 / 9 = 27.5个磁道(平均寻找长度)。
缺点: 可能产生饥饿现象 。
本例中,如果在处理18号磁道的访问请求时又来了一个38号磁道的访问请求,处理38号磁道的访问请求又来了一个18号磁道访问请求。如果有源源不断的18号、38号磁道访问请求,那么150、160、184号磁道请求的访问就永远得不到满足,从而产生饥饿现象。这里产生饥饿的原因是 磁头在一小块区域来回移动。
SSTF算法会产生饥饿的原因在于:磁头有可能再一个小区域内来回得移动。为了防止这个问题,可以规定: 磁头只有移动到请求最外侧磁道或最内侧磁道才可以反向移动,如果在磁头移动的方向上已经没有请求,就可以立即改变磁头移动,不必移动到最内/外侧的磁道。 这就是扫描算法的思想。由于磁头移动的方式很像电梯,因此也叫 电梯算法 。
假设某磁盘的磁道为0~200号,磁头的初始位置是100号磁道,且此时磁头正在往磁道号增大的方向移动,有多个进程先后陆续的访问55、58、39、18、90、160、150、38、184号磁道。
磁头共移动了(184 - 100)+ (184 -18) = 250个磁道。响应一个请求平均需要移动 250 / 9 = 27.5个磁道(平均寻找长度)。
优点: 性能较好,寻道时间较短,不会产生饥饿现象。
缺点: SCAN算法对于各个位置磁道的响应频率不平均 。(假设此时磁头正在往右移动,且刚处理过90号磁道,那么下次处理90号磁道的请求就需要等待低头移动很长一段距离;而响应了184号磁道的请求之后,很快又可以再次响应184号磁道请求了。)
SCAN算法对各个位置磁道的响应频率不平均,而C-SCAN算法就是为了解决这个问题。规定只有磁头朝某个特定方向移动时才处理磁道访问请求,而 返回时直接快速移动至最靠边缘的并且需要访问的磁道上而不处理任何请求。
通俗理解就是SCAN算在改变磁头方向时不处理磁盘访问请求而是直接移动到另一端最靠边的磁盘访问请求的磁道上。
假设某磁盘的磁道为0~200号,磁头的初始位置是100号磁道,且此时磁头正在往磁道号增大的方向移动,有多个进程先后陆续的访问55、58、39、18、90、160、150、38、184号磁道。
磁头共移动了(184 -100)+ (184 - 18)+(90 - 18)=322个磁道。响应一个请求平均需要移动322 / 9 = 35.8个磁道(平均寻找长度)。
优点: 相比于SCAN算法,对于各个位置磁道响应频率很平均。
缺点: 相比于SCAN算法,平均寻道时间更长。
❼ 操作系统的进程调度算法[总结]
操作系统的进程调度算法直接关系到用户的使用体验。
如果把用户的体验时间,引入到计算机里面,我们引入以下几个概念。
周转时间,指作业从提交系统开始,直到作业完成为止的时间间隔。包括:
是指作业周转时间与作业实际运行服务时间的比值。
平均周转时间和平均带权周转时间是衡量批处理系统调度算法的重要准则。
先来先服务调度算法(First Come First Served, FCFS)是最简单的调度算法,可以用于作业调度和进程调度。
按照作业进入系统后备作业队列的先后次序来挑选作业,加入就绪队列,等待执行。
FCFS是非抢占式的,易于实现,效率不高,性能不好.
有利于长作业(CPU繁忙性)而不利于短作业(I/O繁忙性)。
服务时间:作业需要运行的时间
完成时间 = 开始时间 + 服务时间
等待时间 = 开始时间 - 提交时间
周转时间 = 完成时间 - 提交时间
带权周转时间 = 周转时间 / 服务时间
响应比 = (等待时间 + 服务时间) / 服务时间 = 等待时间/服务时间 + 1
该算法每次从后备作业队列中挑选估计服务时间最短的一个或几个作业,
将他们调入内存,分配必要的资源,创建进程并放入就绪队列。
在进程调度中的原理类似。
SJF是非抢占式的,优先照顾短作业,具有很好的性能,降低平均等待时间,提高吞吐量。
但是不利于长作业,长作业可能一直处于等待状态,出现饥饿现象;
完全未考虑作业的优先紧迫程度,不能用于实时系统。
高响应比优先调度算法(Highest Reponse Ratio First, HRRF)是非抢占式的,主要用于作业调度。
基本思想:每次进行作业调度时,先计算后备作业队列中每个作业的响应比,挑选最高的作业投入系统运行。
响应比 = (等待时间 + 服务时间) / 服务时间 = 等待时间 / 服务时间 + 1
由响应比分析可知,该算法介于FCFS和SJF之间,但是每次需要计算每个作业的响应比,增加系统开销。