导航:首页 > 源码编译 > nstepscan磁盘调度算法

nstepscan磁盘调度算法

发布时间:2023-07-30 07:28:12

❶ 磁盘调度 算法

(1)FCFS(先来先服务):
143-86=57
147-86=61
147-91=56
177-91=86
177-94=97
150-94=56
150-102=48
175-102=73
175-130=45
57+61+56+86+97+56+48+73+45=579
(2)SSTF(最短寻道时间优先):
寻道顺序:143(当前),147,150,130,102,94,91,86,175,177;
4+3+20+28+8+3+5+89+2=162
(3)SCAN:
当前方向:从143#向磁道号增加的方向
依次访问:143(当前),147,150,175,177
再从递减方向:130,102,94,91,86
4+3+25+2+47+28+8+3+5=125
(4)LOOK:(即SCAN,电梯调度算法)
(5)CSCAN:
当前方向:从143#向磁道号增加的方向
依次访问:143(当前),147,150,175,177
再从0开始增加方向:86,91,94,102,130
4+3+25+2+91+5+3+8+28=169

❷ 除了fcfs之外,没有哪个磁盘调度算法是真正公平的

先来先服务FCFS:公平,简单,每个进程的请求都能依次得到处理。没有对寻道优化,平均寻道时间长。

最短时间优先调度算法SSTF:要求访问的磁道是当前磁头所在的磁道最近,每次寻道时间最短。可能导致一些请求无限期推延。

电梯调度算法SCAN:不仅考虑当前磁道的距离,优先考虑在磁道前进方向的最短时间,排除磁头在盘面上的往复运动。电梯原理。

N-SCAN:是SCAN的改良。磁头改变方向时,以到达请求服务的最短时间。对中间请求服务更有利。

C-SCAN:磁头单项移动。消除N-SCAN对两端请求的不公平。

❸ 磁盘调度算法

  上文介绍了磁盘的结构,本文介绍磁盘的调度算法相关的内容。
   本文内容

   寻找时间(寻道时间) 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算法,平均寻道时间更长。

❹ 磁盘调度算法的简介

一次磁盘读写操作的时间由寻找(寻道)时间、延迟时间和传输时间决定:
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)
2.最短寻道时间优先(SSTF)
3.扫描(scan)算法
4循环扫描(CSCAN)算法
5.NStep和FSCAN调度算法

❻ 磁盘调度算法用来改善磁头的性能对不对

对的,磁盘是计算机系统中最重要的存储设备,其中含有绝大部分文件。对文件的操作直接涉及到磁盘的访问,磁盘IO的速度效率和可靠性将直接影响系统的性能。因此,好的磁盘调度算法、优越的冗余技术,都是提高磁盘系统性能的切入点。
磁盘调度算法

1.先来先服务:按照进程访问磁盘的先后顺序进行调度。

优点:公平、简单

缺点:效率低,平均寻道时间较长

2.最短寻道时间优先:要求访问磁道与当前磁头的磁道距离最近。

优点:相比于先来先服务,明显减少平均寻道长度

缺点:磁头可能在一个小的范围内一直寻到,造成远处请求不满足而饥饿

3.扫描算法:又称电梯调度算法,像电梯一样上下连续来回寻道

优点:避免了“饥饿”现象

缺点:对于刚刚经过的磁道又来了新的请求,再次访问要最多等2个磁道长度

4.循环扫描算法:磁头单向移动,其余和扫描算法一样

优点:解决了可能的错过型请求的双倍延迟

缺点:浪费一个磁头的移动次数,什么都没做

5.NStepSCAN算法:磁盘请求分成N个队列,队列间用先来先服务处理,队列内用扫描算法处理

优点:避免新请求带来的粘着问题

缺点:N值很大时,接近于扫描算法;N=1时,就是先来先服务

6.FSCAN算法:磁盘请求只分成两个队列,一个是当前请求队列,一个是未来请求队列,当前队列按照扫描算法处理,当前队列处理完就处理另一个,此时另一个为当前队列,已经处理完的是未来请求队列

优点:简化NStepSCAN算法

缺点:所有新来的请求都在下次扫描时再处理,对于紧急的高优先级的请求也要放到下次

阅读全文

与nstepscan磁盘调度算法相关的资料

热点内容
h3c光纤全工半全工设置命令 浏览:135
公司法pdf下载 浏览:379
linuxmarkdown 浏览:347
华为手机怎么多选文件夹 浏览:679
如何取消命令方块指令 浏览:345
风翼app为什么进不去了 浏览:774
im4java压缩图片 浏览:358
数据查询网站源码 浏览:146
伊克塞尔文档怎么进行加密 浏览:886
app转账是什么 浏览:159
php的基本语法 浏览:792
对外汉语pdf 浏览:516
如何用mamp本地web服务器 浏览:869
如何加密自己js代码 浏览:627
排列组合a与c的算法 浏览:534
如何在文件夹中找到同名内容 浏览:786
有什么app文字转韩文配音 浏览:372
循环宏1命令 浏览:35
斐波那契数列矩阵算法 浏览:674
公式保护后加密不了 浏览:82