磁盘的访问机制及其相关算法

一.磁盘的性能

1.磁盘的结构

磁盘设备包括一个或者多个物理盘片,每个盘片分为一个或者两个存储面,每个盘面上有若干个磁道,每个磁道间有一定的间隙,每个磁道从逻辑上被划分为若干个扇区(软盘大约为8-32个扇区,硬盘可多达上百个),一个扇区称为一个盘块或数据块,每个扇区之间有一定的间隙。


注:上图是将一个磁道分为8个扇区。

        显然,若将一个磁盘的内外磁道分为相同的扇区,就会浪费外面磁道的空间。那么,现代磁盘利用了外磁道较内磁道大,所以将磁道划分在不同的环带内,同一环带内的磁道就具有相同数目的扇区,则:外磁道的扇区数目明显大于内磁道的扇区数目。但是,磁道和盘面的几何形式变化会对驱动程序有所影响,则,现代磁盘向操作系统提供的都是虚拟几何的磁盘结构而不是实际的物理几何的规格。

2.磁盘的分类

(1)固定头磁盘

    用途:主要用于大容量磁盘。

    优点:存取速度快;

(2)移动头磁盘

   用途:主要用于中小型磁盘

   缺点:存取速度慢;

   优点:结构简单;

3.磁盘的访问时间

存取数据时,磁头必须能够移动到所指定的磁道上,并等待所指定的扇区的开始位置旋转到磁头下,最后进行数据的读/写。

(1)寻道时间Ts :启动磁臂的时间与磁头到达指定磁道移动n条磁道所经历时间之和。

    Ts = m*n+s;(m为常数)

(2)旋转延迟时间Tx :指定扇区移动到磁头下所需要的时间。

    对于硬盘,平均旋转延迟时间为2ms;

    对于软盘,平均旋转延迟时间为50-100ms;

(3)传输时间Tt:数据从磁盘读出或者对于磁盘写入数据的时间,所以Tt的大小与读/写数据的大小和磁盘的转速有              关。

         Tt = b/rN(b表示读/写的字节数,rN磁盘的旋转速度)

        则:磁盘访问时间: T = Ts + Tx + Tt;

二.磁盘调度算法

1.先来先服务(FCFS)

思想:按照进程请求访问磁盘的先后次序进行调度。

优点:公平.简单,每个进程的请求都能得到满足;

缺点:平均寻道时间较长。

2.最短寻道时间优先(SSTF)

思想:每次都优先调度要求访问的磁道的与当前磁头所在磁道最近的进程。

优点:降低了磁盘的平均寻道时间;

缺点:当进程要求访问的磁道远离磁头时,该进程的需求始终得不到满足,可能发生“饥饿”现象。

3.扫描算法(SCAN)

思想:下一个访问的对象应是其欲访问的磁道即在当前磁道之外,又是距离最近的。自里向外的访问直至外面没有磁道需要访问时,将磁臂换为从外向里移动。不断地对于磁盘进行访问,有效的避免了“饥饿”问题。

4.循环扫描算法(CSCAN)

提出背景:当有一个进程请求访问一个磁道,但是磁头刚从里向外越过了这个磁道,则:该进程必须等待磁头从里向外                移动到直至外面没有磁道需要访问时,再从外向里移动,访问完该程序之前的所有进程之后再对于该进程进                行调度;这样对于这个进程的调度产生了时间上的一定延迟。基于此问题,提出了循环扫描算法。

思想:规定磁头的移动方向为单向的。(1)当磁头的移动方向为从里向外时:当磁头移动到最外面的请求访问的磁道并且访问后,磁头立即返回最里面的请求访问的磁道,从里向外进行循环访问。(2)当磁头的移动方向为从外向里,类比(1)即可。

5.FSCAN算法

思想:将磁盘请求队列分为两个子队列。

(1)一个是当前所有请求磁盘I/O的进程所形成的队列,由磁盘调度按照SCAN算法进行调度;

(2)另一个是将在扫描期间新出现的请求磁盘I/O的进程插入等待处理的请求队列。

  则:就不会产生“磁臂粘着”现象。

6.NStepSCAN算法

思想:就是将磁盘请求队列分为N个队列,并且按照先来先服务的算法对于这N个队列进行处理。

当N = 1时为SCAN算法;当N = 2时为FSCAN算法。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值