【概述】
磁盘存储器是计算机系统中最重要的存储设备,其中存放了大量的文件。
对文件的读写操作都涉及到对磁盘的访问,磁盘 I/O 速度高低和磁盘系统可靠性,直接影响到系统的性能。
磁盘设备包含一到多个物理盘片,每个盘片分一或两个存储面,每个盘面上有若干磁道,每条磁道由从逻辑上划分了若干扇区(盘块)。
为方便处理,每条磁道存储容量相同,由于磁盘密度规定为单位英寸上存储的位数,因此内层磁道的密度较外层磁道的密度要高。
对于固定磁头磁盘来说,每磁道具有一磁头;对于移动磁头来说,每磁盘具有一磁头。
【磁盘访问时间】
磁盘设备在工作时以恒定速率旋转,为了读写,磁头必须能移动到所指定的磁道上,并等待所指定扇区的开始位置旋转到磁头下,然后再开始读写数据。
因此,可将对磁盘的访问时间分为以下三部分:
寻道时间 :将磁头移动到指定磁道上所经历的时间,该事件是启动磁臂的时间 s 与磁头移动 n 条磁道时间的总和。
其中,m 是一常数,与磁盘驱动器的速度有关,对于一般磁盘,,对于高速磁盘,
旋转延迟时间 :指定扇区移动到磁头下所经历的时间。
不同的磁盘类型旋转速度不同,软盘为 ,硬盘为 ,对于旋转延迟时间而言,硬盘的 ,软盘的
传输时间 :从磁盘读写数据所经历的时间,其大小于每次读写的字节数 b 和旋转速度有关。
其中,r 为磁盘每秒的转数,N 为一条磁道上的字节数。
当一次读写的字节数相当于半条磁道上的字节数时,
综上,访问时间
【磁盘调度算法】
为减少对文件的访问时间,应采取一种最佳的磁盘调度算法,以使得各进程对磁盘的平均访问时间最小。
1.先来先服务
先来先服务(First Come First Service,FCFS)算法,是最简单的调度算法,其根据进程请求访问磁盘的先后次序进行调度。
该算法公平、简单,每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。
但此算法未对寻到进行优化,使得平均寻到时间可能较长。
2.最短寻道时间优先
最短寻道时间优先(Shortest Seek Time First,SSTF)算法,每次选择访问磁道与当前磁头所在磁道最近的进程,这样使得每次寻道时间最短,但无法保证平均寻道时间最短。
该算法对中间磁道有利,但可能会使得低优先级进程长期处于饥饿状态。
3.扫描算法
扫描(Scan)算法是在 SSTF 算法的基础上修改得来的,其可以防止低优先级进程出现饥饿现象。
该算法规定磁头移动方向,每次要访问的对象应在磁道之外,又是距离最近的,这样从里向外地访问,直到无更外的磁道需要访问时,才将磁臂自外向里移动。
4.循环扫描算法
循环扫描(Cycle Scan,CSCAN)算法,是在 SCAN 算法的基础上修改得来的。
对于 SCAN 算法来说,其具有较好的寻道功能,且可以防止饥饿现象,但当磁头刚从里向外移动越过了某磁道时,恰有一进程要访问该磁道,此时进程必须等待,待磁头继续从从里向外扫描完后再返回来,才能处理该进程的要求,使得该进程的请求被大大地推迟。
为减少上述的延迟,CSCAN 规定磁头单向移动,即当有里向外访问再无更外的磁道时,返回最里的磁道,再次有里向外访问。
来源:CSDN
作者:Alex_McAvoy
链接:https://blog.csdn.net/u011815404/article/details/103622939