F_JustWei's Studio.

设备管理

字数统计: 2.4k阅读时长: 8 min
2021/05/01 Share

设备管理

磁盘结构

  • 盘面(Platter):一个磁盘有一个或多个盘面。
  • 磁道(Track):盘面上的圆形带状区域,每个盘面可以划分多个磁道,最外圈的磁道是 0 号磁道,向圆心增长依次为 1 磁道、2 磁道……磁盘的数据存放就是从最外圈开始的。
  • 扇区(Track Sector):磁道上的一个弧段,一个磁道可以有多个扇区,它是最小的物理储存单位,目前主要有 512 bytes 与 4 K 两种大小。
  • 柱面(Cylinder):是我们抽象出来的一个逻辑概念,简单来说就是处于同一个垂直区域的磁道称为柱面 ,即各盘面上面相同位置磁道的集合。
  • 磁头(Head):与盘面非常接近,能够将盘面上的磁场转换为电信号(读),或者将电信号转换为盘面的磁场(写)。
  • 制动手臂(Actuator arm):用于在磁道之间移动磁头。
  • 主轴(Spindle):使整个盘面转动。

img

img

如何计算存储容量?

$存储容量 = 盘面数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数$

磁盘调度算法

现代硬盘寻道都是采用 CHS (Cylinder Head Sector)的方式,硬盘读取数据时,读写磁头沿径向移动,移到要读取的扇区所在磁道的上方,这段时间称为寻道时间(seek time)。因读写磁头的起始位置与目标位置之间的距离不同,寻道时间也不同。磁头到达指定磁道后,然后通过盘片的旋转,使得要读取的扇区转到读写磁头的下方,这段时间称为旋转时间(rotational latencytime)。然后再读写数据,读写数据也需要时间,这段时间称为传输时间(transfer time)。

所以读写一个磁盘块的时间的影响因素有:

  • 寻道时间(制动手臂移动,使得磁头移动到适当的磁道上)
  • 旋转时间(主轴转动盘面,使得磁头移动到适当的扇区上)
  • 传输时间(读写数据)

其中,寻道时间最长,因此磁盘调度的主要目标是使磁盘的平均寻道时间最短

先来先服务(FCFS, First Come First Served)

按照磁盘请求的顺序进行调度。

先来先服务磁盘调度算法的优点:

公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。

先来先服务磁盘调度算法的缺点:

未对寻道进行优化,致使平均寻道时间可能很长。当用户提出的访问请求比较均匀地遍布整个盘面,而不具有某种集中倾向时(通常是这样),该算法策略导致了随机访问模式,即无法对访问进行优化。在对盘的访问请求比较多的情况下,此策略将降低设备服务的吞吐量、增加响应时间,但各进程得到服务的响应时间的变化幅度较小。

例题:

假定某磁盘共有 200 个柱面,编号为 0-199 ,如果在为访问 143 号柱面的请求者服务后,当前正在为访问 125 号柱面的请求服务,同时有若干请求者在等待服务,它们每次要访问的柱面号为 86,147,91,177,94,150,102,175,130。

1
2
先来先服务:(125)86.147.91.177.94.150.102.175.130
磁头移动距离:abs(125-86)+abs(86-147)+abs(147-91)+abs(91-177)+abs(177-94)+abs(94-150)+abs(150-102)+abs(102-175)+abs(175-130)

最短寻道时间优先(SSTF, Shortest Seek Time First)

优先调度与当前磁头所在磁道距离最近的磁道。

最短寻道时间优先磁盘调度算法的优点:

可以得到比较好的吞吐量,有较低的平均响应时间。

最短寻道时间优先磁盘调度算法的缺点:

对用户的服务请求的响应机会不是均等的,可能会有进程处于饥饿状态。对中间磁道的访问请求一般会得到最好的服务,对内、外两侧磁道的服务随偏离中心磁道的距离而越远越差,因而导致响应时间的变化幅度很大,在服务请求很多的情况下,对内、外边缘磁道的请求将会无限期地被延迟,因而有些请求的响应时间将不可预期。

例题:

假定某磁盘共有 200 个柱面,编号为 0-199 ,如果在为访问 143 号柱面的请求者服务后,当前正在为访问 125 号柱面的请求服务,同时有若干请求者在等待服务,它们每次要访问的柱面号为 86,147,91,177,94,150,102,175,130。

1
2
3
4
先排序:86.91.94.102.130.147.150.175.177
然后找与当前访问的柱面号差值最小的柱面号填入序列中
最短寻道时间优先:(125)130.147.150.175.177.102.94.91.86
磁头移动距离:abs(125-130)+abs(130-147)+abs(147-150)+abs(150-175)+abs(175-177)+abs(177-102)+abs(102-94)+abs(94-91)+abs(91-86)

扫描算法(SCAN)

由于这种算法中磁头移动的规律像电梯的运行,所以又称为电梯调度算法。

在等候电梯时,我们都希望电梯立即满足自己的要求,但是,电梯自有它对乘客请求的响应算法。

扫描算法(电梯算法)考虑两个因素:

  1. 先响应请求方向与电梯移动方向一致的请求。
  2. 在方向一致的请求中,先响应电梯最先经其所在楼层的请求者。例如电梯在升到三楼时检测到四个请求:二楼、四楼和六楼有人上楼,五楼有人要下楼,那么在假定未超出电梯容釐而且暂时没有其他新请求出现的情况下,电梯的响应次序是 :四楼、六楼、五楼、二楼。

选择在磁头前进方向上从当前位置移动最少的磁盘 I/O 请求执行,没有前进方向上的请求时才改变方向。该算法是对 SSTF 算法的改进,磁盘 I/O 性能较好,且没有进程会饿死。
该算法不仅考虑到欲访问的磁道与当前磁道的柱面距离,更优先考虑磁头的当前移动方向。即当磁头正在自里向外运动时,该算法要选择的下一访问对象是其欲访问的磁道在当前磁道之外,又是距离最近的。直至再无更外的磁道需要访问时,才将磁臂换向,自外向里运动。从而避免了饥饿现象的出现。

例题:

假定某磁盘共有 200 个柱面,编号为 0-199 ,如果在为访问 143 号柱面的请求者服务后,当前正在为访问 125 号柱面的请求服务,同时有若干请求者在等待服务,它们每次要访问的柱面号为 86,147,91,177,94,150,102,175,130。

1
2
3
4
判断前进的方向:由 143 -> 125 
排序:86.91.94.102.130.147.150.175.177
扫描算法(125):102.94.91.86.130.147.150.175.177
磁头移动距离:abs(125-102)+abs(102-94)+abs(94-91)+abs(91-86)+abs(86-130)+abs(130-147)+abs(147-150)+abs(150-175)+abs(175-177)

循环扫描算法(CSCAN)

循环扫描是指总在一个方向上使用扫描算法,当到达边沿时直接移动到另一边沿的第一个位置。

该算法可改进扫描算法对中间磁道的偏好。实验表明,该算法在中负载或重负载时,磁盘 I/O 性能比扫描算法好。循环扫描算法实际上可以看成源于 CRT 电子束扫描线法。
循环扫描策略与基本扫描策略不同之处在于循环扫描是单向反复地扫描。当磁臂向内移动时,它对本次移动开始前到达的各访问要求,自外向内地依次给予服务,直到对最内柱面上的访问要求满足后,磁臂直接向外移动,使磁头停在所有新的访问要求的最外边的柱面上。然后再对本次移动前到达的各访问要求依次给予服务。
它之所以被称为循环扫描策略,是因为将磁盘各磁道视为一个环形缓冲区似的构造一首尾相连,最后一个磁道与第一个相接。若有磁头能立即折返的驱动器则此算法才更有意义。

例题:

假定某磁盘共有 200 个柱面,编号为 0-199 ,如果在为访问 143 号柱面的请求者服务后,当前正在为访问 125 号柱面的请求服务,同时有若干请求者在等待服务,它们每次要访问的柱面号为 86,147,91,177,94,150,102,175,130。

1
2
3
4
判断前进的方向:由 143 -> 125 ,从大到小。
排序:86.91.94.102.130.147.150.175.177
循环扫描算法(125):102.94.91.86.177.175.150.147.130
磁头移动距离:abs(125-102)+abs(102-94)+abs(94-91)+abs(91-86)+abs(86-177)+abs(177-175)+abs(175-150)+abs(150-147)+abs(147-130)
CATALOG
  1. 1. 设备管理
    1. 1.1. 磁盘结构
    2. 1.2. 磁盘调度算法
      1. 1.2.1. 先来先服务(FCFS, First Come First Served)
        1. 1.2.1.1. 先来先服务磁盘调度算法的优点:
        2. 1.2.1.2. 先来先服务磁盘调度算法的缺点:
          1. 1.2.1.2.1. 例题:
      2. 1.2.2. 最短寻道时间优先(SSTF, Shortest Seek Time First)
        1. 1.2.2.1. 最短寻道时间优先磁盘调度算法的优点:
        2. 1.2.2.2. 最短寻道时间优先磁盘调度算法的缺点:
          1. 1.2.2.2.1. 例题:
      3. 1.2.3. 扫描算法(SCAN)
        1. 1.2.3.0.1. 例题:
    3. 1.2.4. 循环扫描算法(CSCAN)
      1. 1.2.4.0.1. 例题: