❶ 除了fcfs之外,没有哪个磁盘调度算法是真正公平的
先来先服务FCFS:公平,简单,每个进程的请求都能依次得到处理。没有对寻道优化,平均寻道时间长。
最短时间优先调度算法SSTF:要求访问的磁道是当前磁头所在的磁道最近,每次寻道时间最短。可能导致一些请求无限期推延。
电梯调度算法SCAN:不仅考虑当前磁道的距离,优先考虑在磁道前进方向的最短时间,排除磁头在盘面上的往复运动。电梯原理。
N-SCAN:是SCAN的改良。磁头改变方向时,以到达请求服务的最短时间。对中间请求服务更有利。
C-SCAN:磁头单项移动。消除N-SCAN对两端请求的不公平。
❷ 求磁盘调度算法scan算法的java代码
1、先来先服务算法(FCFS)First Come First Service
这是一种比较简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。此算法由于未对寻道进行优化,在对磁盘的访问请求比较多的情况下,此算法将降低设备服务的吞吐量,致使平均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。
先来先服务 (125)86.147.91.177.94.150.102.175.130
[java] view plain print?
❸ 为什么说传统的调度算法都不能算是公平的调度算法
公平调度器按资源池(pool)来组织作业,并把资源公平的分到这些资源池里。默认情况下,每一个用户拥有一个独立的资源池,以使每个用户都能获得一份等同的集群资源而不管他们提交了多少作业。按用户的 Unix 群组或作业配置(jobconf)属性来设置作业的资源池也是可以的。在每一个资源池内,会使用公平共享(fair sharing)的方法在运行作业之间共享容量(capacity)。用户也可以给予资源池相应的权重,以不按比例的方式共享集群。
除了提供公平共享方法外,公平调度器允许赋给资源池保证(guaranteed)最小共享资源,这个用在确保特定用户、群组或生产应用程序总能获取到足够的资源时是很有用的。当一个资源池包含作业时,它至少能获取到它的最小共享资源,但是当资源池不完全需要它所拥有的保证共享资源时,额外的部分会在其它资源池间进行切分。
主要特点如下:
Ø 支持多用户多队列
Ø 资源公平共享(公平共享量由优先级决定)
Ø 保证最小共享量
Ø 支持时间片抢占
Ø 限制作业并发量,以防止中间数据塞满磁盘
3. 公平调度算法分析
3.1 变量定义
❹ 磁盘调度算法的常用磁盘调度算法
FCFS算法根据进程请求访问磁盘的先后顺序进行调度,这是一种最简单的调度算法。该算法的优点是具有公平性。如果只有少量进程需要访问,且大部分请求都是访问簇聚的文件扇区,则有望达到较好的性能;但如果有大量进程竞争使用磁盘,那么这种算法在性能上往往接近于随机调度。所以,实际磁盘调度中考虑一些更为复杂的调度算法。
1、算法思想:按访问请求到达的先后次序服务。
2、优点:简单,公平。
3、缺点:效率不高,相邻两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利。
4、例子:
假设磁盘访问序列:98,183,37,122,14,124,65,67。读写头起始位置:53。求:磁头服务序列和磁头移动总距离(道数)。
由题意和先来先服务算法的思想,得到下图所示的磁头移动轨迹。由此:
磁头服务序列为:98,183,37,122,14,124,65,67
磁头移动总距离=(98-53)+(183-98)+|37-183|+(122-37)+|14-122|+(124-14)+|65-124|+(67-65)=640(磁道) SSTF算法选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道,以使每次的寻找时间最短。当然,总是选择最小寻找时间并不能保证平均寻找时间最小,但是能提供比FCFS算法更好的性能。这种算法会产生“饥饿”现象。
1、算法思想:优先选择距当前磁头最近的访问请求进行服务,主要考虑寻道优先。
2、优点:改善了磁盘平均服务时间。
3、缺点:造成某些访问请求长期等待得不到服务。
4、例子:对上例的磁盘访问序列,可得磁头移动的轨迹如下图。 SCAN算法在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象。由于磁头移动规律与电梯运行相似,故又称为电梯调度算法。SCAN算法对最近扫描过的区域不公平,因此,它在访问局部性方面不如FCFS算法和SSTF算法好。
算法思想:当设备无访问请求时,磁头不动;当有访问请求时,磁头按一个方向移动,在移 动过程中对遇到的访问请求进行服务,然后判断该方向上是否还有访问请求,如果有则继续扫描;否则改变移动方向,并为经过的访问请求服务,如此反复。如下图所示:
扫描算法(电梯算法)的磁头移动轨迹
2、优点:克服了最短寻道优先的缺点,既考虑了距离,同时又考虑了方向。 在扫描算法的基础上规定磁头单向移动来提供服务,回返时直接快速移动至起始端而不服务任何请求。由于SCAN算法偏向于处理那些接近最里或最外的磁道的访问请求,所以使用改进型的C-SCAN算法来避免这个问题。
釆用SCAN算法和C-SCAN算法时磁头总是严格地遵循从盘面的一端到另一端,显然,在实际使用时还可以改进,即磁头移动只需要到达最远端的一个请求即可返回,不需要到达磁盘端点。这种形式的SCAN算法和C-SCAN算法称为LOOK和C-LOOK调度。这是因为它们在朝一个给定方向移动前会查看是否有请求。注意,若无特别说明,也可以默认SCAN算法和C-SCAN算法为LOOK和C-LOOK调度。
❺ 关于《操作系统》中的磁盘调度算法
(1)先来先服务调度算法
由于该算法就是按照磁道请求序列的先后次序依次访问磁道的,因此磁道的访问序列(服务顺序)就是:
110、180、32、115、15、120、60、70。
当前磁头在50号磁道。故磁头移动道数为:
(110-50)+(180-110)+(180-32)+(115-32)+(115-15)+(120-15)+(120-60)+(70-60)=60+70+148+83+100+105+60+10=636
(2)单向扫描调度算法
该算法是沿磁头移动方向访问距离当前磁道最近的磁道,当到达一个顶端时立刻返回到另一个顶端继续扫描。本题磁头移动方向是磁道增加的方向,当前磁头在50号磁道。因此磁道的访问序列(服务顺序)就是:60、70、110、115、120、180、15、32。而磁头移动道数与前面(1)问差不多,也是两两相减,然后求和。在此略
❻ 若磁头的当前位置100柱面,磁头正向磁道号减小方向移动。现有一磁盘读写请求队列,柱面号依次为:
磁盘调度在多道程序设计的计算机系统中,各个进程可能会不断提出不同的对磁盘进行读/写操作的请求。为了尽快的响应进程的磁盘请求,人们设计了磁盘调度算法。主要有四种磁盘调度算法。先来先服务算法(FCFS),最短寻道时间优先算法(SSTF),扫描算法(SCAN),循环扫描算法(CSCAN)。
运用最短寻道优先算法依次选择的磁道是:90、80、125、140、160、190、30、29、25、20、10。
运用电梯调度算法依次经过的磁道是:90、80、30、29、25、20、10、125、140、160、190。
我们根据算法的寻道序列可以得出:最短寻道优先算法的经过的煮面数为310个柱面,电梯调度算法经过的柱面数为270次。
(6)磁盘调度算法中哪个体现公平性扩展阅读:
每种磁盘调度算法的优缺点
先来先服务算法的优点会根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况,此算法将降低设备服务的吞吐量,致使平均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。
最短寻道优先算法的缺点每次的寻道时间最短,该算法可以得到比较好的吞吐量,但却不能保证平均寻道时间最短。其缺点是对用户的服务请求的响应机会不是均等的,因而导致响应时间的变化幅度很大。在服务请求很多的情况下,对内外边缘磁道的请求将会无限期地被延迟,有些请求的响应时间将不可预期。
扫描算法的优缺点此算法基本上克服了最短寻道时间优先算法的服务集中于中间磁道和响应时间变化比较大的缺点,而具有最短寻道时间优先算法的优点即吞吐量较大,平均响应时间较小,但由于是摆动式的扫描方法,两侧磁道被访问的频率仍低于中间磁道。
循环扫描算法的优点是这些磁道刚被处理,而磁盘另一端的请求密度相当高,且这些访问请求等待的时间较长,为了解决这种情况,循环扫描算法规定磁头单向移动。
参考资料来源:网络-磁盘调度算法
❼ 磁盘调度算法的简介
一次磁盘读写操作的时间由寻找(寻道)时间、延迟时间和传输时间决定:
1) 寻找时间Ts:活动头磁盘在读写信息前,将磁头移动到指定磁道所需要的时间。这个时间除跨越n条磁道的时间外,还包括启动磁臂的时间s,即:Ts = m * n + s。式中,m是与磁盘驱动器速度有关的常数,约为0.2ms,磁臂的启动时间约为2ms。
2)延迟时间Tr:磁头定位到某一磁道的扇区(块号)所需要的时间,设磁盘的旋转速度为r,则:Tr = 1 / (2 * r)。对于硬盘,典型的旋转速度为5400r/m,相当于一周11.1ms,则Tr为5.55ms;对于软盘,其旋转速度在300~600r/m之间,则Tr为50~100ms。
3) 传输时间Tt:从磁盘读出或向磁盘写入数据所经历的时间,这个时间取决于每次所读/写的字节数b和磁盘的旋转速度:Tt = b / (r * N)。式中,r为磁盘每秒钟的转数;N为一个磁道上的字节数。
在磁盘存取时间的计算中,寻道时间与磁盘调度算法相关,下面将会介绍分析几种算法,而延迟时间和传输时间都与磁盘旋转速度相关,且为线性相关,所以在硬件上,转速是磁盘性能的一个非常重要的参数。
总平均存取时间Ta可以表示为:Ta = Ts + Tr + Tt。
虽然这里给出了总平均存取时间的公式,但是这个平均值是没有太大实际意义的,因为在实际的磁盘I/O操作中,存取时间与磁盘调度算法密切相关。调度算法直接决定寻找时间,从而决定了总的存取时间。
❽ 目前常用的磁盘调度算法有哪几种每种算法优先考虑的问题是什么
(1)先来先服务(FCFS,First-Come First-Served)
此算法根据进程请求访问磁盘的先后次序进行调度。
(2)最短寻道时间优先(SSTF ,ShortestSeekTimeFirst)
该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但这种调度算法却不能保证平均寻道时间最短。
(3)扫描(SCAN)算法
SCAN算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。
(4)循环扫描(CSCAN)算法
CSCAN算法规定磁头单向移动,避免了扫描算法导致的某些进程磁盘请求的严重延迟。
(5) N-Step-SCAN和FSCAN调度算法
1) N-Step-SCAN算法。为克服前述SSTF、SCAN、CSCAN等调度算法都可能出现的磁臂停留在某处不动的情况即磁臂粘着现象,将磁盘请求队列分成若干个长度为N的子队列,按先来先服务算法依次处理这些子队列,而各队列分别以扫描算法进行处理。
2) FSCAN算法
FSCAN算法实质上是N步SCAN算法的简化。它只将磁盘请求访问队列分成两个子队列。一是当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。另一个队列则是在 扫描期间,新出现的所有请求磁盘I/O进程的队列,放入另一等待处理的请求队列。这样,所有的新请求都将被推迟到下一次扫描时处理。
❾ 磁盘调度算法的比较
优点缺点FCFS算法公平、简单平均寻道距离大,仅应用在磁盘I/O较少的场合SSTF算法性能比“先来先服务”好不能保证平均寻道时间最短,可能出现“饥饿”现象SCAN算法寻道性能较好,可避免“饥饿”现象不利于远离磁头一端的访问请求C-SCAN算法消除了对两端磁道请求的不公平--
❿ 谁知道磁盘管理的作用
磁盘管理是一项使用计算机时的常规任务,Windows 2000 Server的磁盘管理任务是以一组磁盘管理应用程序的形式提供给用户的,它们位于“计算机管理”控制台中,包括查错程序、磁盘碎片整理程序、磁盘整理程序等。
磁盘存储器不仅容量大,存取速度快,而且可以实现随机存取,是实现虚拟存储器所必需的硬件。因此在现代计算机系统中,都配置了磁盘存储器,并以它为主,存放文件。磁盘存储管理的主要任务是:
·为文件分配必要的存储空间;
·提高磁盘存储空间的利用率;
·提高对磁盘的I/O速度,以改善文件系统的性能;
·采取必要的冗余措施,来确保文件系统的可靠性。
1.磁盘调度算法
磁盘是可被多个进程共享的设备。当有多个进程都请求访问磁盘时,应采用一种适当的调度算法,以使各进程对磁盘的平均访问(主要是寻道)时间最小。由于在访问磁盘的时间中,主要是寻道时间,因此,磁盘调度的目标应是使磁盘的平均寻道时间最少。目前常用的磁盘调度算法有:先来先服务;最短寻道时间优先;扫描算法;循环扫描算法等。
(1)先来先服务.(First-Come,First-Served,FCFS)
这是一种简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。但此算法由于未对寻道进行优化,致使平均寻道时间可能较长。图4-5示出了有9个进程先后提出磁盘I/O请求时,按FCFS算法进行调度的情况。这里,将进程号(请求者)按其发出请求的先后次序排列。这样,平均寻道距离为55.3条磁道。与后面要讲的几种调度算法相比,其平均寻道距离较大。故FCFS算法仅适用于请求磁盘I/O的进程数目较少的场合。
(2)最短寻道时间优先(ShortestSeekTimeFirst,SSTF)
该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,但这种调度算法却不能保证平均寻道时间最短。图4-6所示按SSTF算法进行调度时,各进程被调度的次序,每次磁头的移动距离,以及9次磁头移动的平均距离。比较图4-5和图4-6可以看出,SSTF算法的平均每次磁头移动距离,明显低于FCFS的距离。SSTF较之FCFS有更好的寻道性能,故过去一度被广泛采用过。
(3)各种扫描算法
1)扫描(SCAN)算法。SSTF算法虽然获得较好的寻道性能,但它可能导致某些进程发生“饥饿”(starvation)。SCAN算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。例如,当磁头正在自里向外移动时,SCAN算法所选择的下一个访问对象应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向外地访问,直到再五更外的磁道需要访问才将磁臂换向,自外向里移动。这时,同样也是每次选择这样的进程来调度,即其要访问的磁道,在当前磁道之内,从而避免了饥饿现象的出现。由于这种算法中磁头移动的规律颇似电梯的运行,露故又称为电梯调度算法。
2)循环扫描(CSCAN)算法。处理该进程的请求,致使该进程的请求被严重地推迟。为了减少这种延迟,CSCAN算法规定磁头单向移动。例如,只自里向外移动,当磁头移到最外的被访问磁道时,磁头立即返回到最里的欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。
2.廉价冗余磁盘阵列RAID
磁盘系统中比较引人注目的是廉价冗余磁盘阵列(Rendant arrays ofinexpensive disk,RAID)的发展,这是将并行处理原理引入磁盘系统。它采用低成本的小温盘,使多台磁盘构成磁盘阵列,数据展开存储在多台磁盘上,提高数据传输的带宽,并利用冗余技术提高可靠性。磁盘阵列还具有容量大,数据传输率高,功耗低,体积小,成本低和便于维护等优点。1987年美国加州大学伯克利分校的D.A.Patterson等人,首先提出了廉价冗余磁盘阵列的概念,并将RAID分为6级:
RAID-0。该级仅提供了并行交叉存取。它虽然有效提高了磁盘I/O速度,但并无冗余校验功能,致使磁盘系统的可靠性不好。只要阵列中有一个磁盘损坏,便会造成不可弥补的数据丢失。
RAID-1。它是镜像磁盘冗余阵列,将每一数据块重复存人镜像磁盘,以改善磁盘机的可靠性。镜像盘也称拷贝盘,它相当于一个不断进行备份操作的磁盘。这种磁盘的冗余度为100%,使有效容量下降了一半,成本较高。镜像盘是磁盘阵列的简单形式。
RAID-2。它是采用海明码纠错冗余的磁盘阵列,将数据位交叉写人几个磁盘中,并利用几个磁盘驱动器进行按位的出错检查,它比镜像磁盘冗余阵列的冗余度小。这种阵列中的数据读写操作涉及阵列中的每一个磁盘,这影响小文件的传输率,因此它适合于大量顺序数据访问。
RAID-3。它是采用奇偶校验冗余的磁盘阵列,也采用数据位交叉,阵列中只有一个校验盘。将数据按位交叉写到几个磁盘上,用一个校验盘检查数据错误。各磁盘同步运转,阵列中的驱动器数量可扩展。这种阵列冗余度较小,因为采用数据位交叉,所以也适合大量顺序数据访问。
RAID-4。它是一种独立传送磁盘阵列,采用数据块交叉,用一个校验盘。将数据按块交叉存储在多个磁盘上。在数据不冲突时,多个磁盘可并行进行数据读操作。这种磁盘阵列适用于小块数据读写,它的小块数据传输速度比RAID-3快。
RAID-5。它也是一种独立传送磁盘阵列,采用数据块交叉和分布的冗余校验,将数据和校验都分布在各个磁盘中,没有专门的奇偶校验驱动器。奇偶校验码被分布存放在阵列中各驱动器中,磁盘冗余度低,使并行读写操作成为可能。这种方法也适用于小块数据的读写。但对控制器的要求较高,是最难实现的一种磁盘阵列。
RAID自1988年面世后,很快流行起来,这主要是因为RAID具有以下明显的优点:
可靠性高。RAID的最大特点就是它的高可靠性。除了RAID-0级外,其余各级都采用了容错技术。与单台磁盘机相比,其可靠性往往高出一个数量级。
磁盘I/O速度高。由于磁盘阵列采取并行交叉存取,故可将磁盘I/O速度提高N-1倍,N为磁盘数目。性能/价格比高。利用RAID技术实现犬容量高速存储器时,其体积与相同容量和速度的大型磁盘系统相比,只是后者的三分之一,价格也是后者的三分之一,且可靠性更高。