主引导扇区

定义

硬盘的0柱面、0磁头、1扇区称为主引导扇区。

主引导扇区是在硬盘分区时由分区软件写入的(FDISK),因而不属于任何操作系统,所以分区时不进行操作系统引导扇区的写入。

组成

前446字节为启动代码(BootLoader)
后面64字节是分区表(DPT),一共可以记录4个分区。
最后有2个字节是幻数,标识这是一个被分区的硬盘

硬盘分区有三种,主磁盘分区、扩展磁盘分区、逻辑分区。
主分区只能有一个是激活(活动)的,其余是未激活。
分出主分区后,其余的部分可以分成扩展分区,一般是剩下的部分全部分成扩展分区,也可以不全分,剩下的部分就浪费了。
扩展分区不能直接使用,必须分成若干逻辑分区。所有的逻辑分区都是扩展分区的一部分。

DPT表项

DPT表项

磁盘分类

固定头磁盘

磁头相对于盘片径向方向固定的,称为固定头磁盘,每个磁道一个磁头。

活动头磁盘

磁头可移动的、可以来回伸缩定位磁道的,称为活动头磁盘

固定盘磁盘

磁盘永久固定在磁盘驱动器内,称为固定盘磁盘。

可换盘磁盘

磁盘可移动和替换的,称为可换盘磁盘。

磁盘地址与块号的转换

先记忆一个知识,一个逻辑块号的大小为一个扇区的大小。
一般情况下、先填满扇区、再填满磁道、再填满柱面。
在此基础上。可进行如下转换

已知块号

柱面号 = 块号 / (磁头数 * 扇区数)
磁头号 = (块号 % (磁头数 * 扇区数)) / 扇区数
扇区号 = (块号 % (磁头数 * 扇区数)) % 扇区数

已知磁盘地址

块号 = 柱面号 * 磁头数 * 扇区数 + 磁头号 * 扇区数 + 扇区号

磁头数是一个让人迷惑的说法,但确实是正确的,更通俗的说法是一个柱面里面有多少磁道,但一个盘面对应一个磁头,所以说磁头数也没毛病。
当然,有些题会直接告诉你一个柱面里面有多少磁道,这就是公式中磁头数。
显然,这里认为它是活动头磁盘。

已知块号

柱面号 = 块号 / (磁头数 * 扇区数)
磁头号 = (块号 % (磁头数 * 扇区数)) / 扇区数
扇区号 = (块号 % (磁头数 * 扇区数)) % 扇区数

磁盘访问时间

  • 寻道时间:把磁头从当前位置移动到指定磁道上所经历的时间。 $${T_S} = m \times n + s$$
  • 旋转延迟时间:盘面转到指定扇区所需要的时间 $${T_r} = 1/(2r)$$
  • 传输时间:把数据从磁盘写入或读出所经历的时间 $${T_t} = b/(rN)$$ 大小与所读/写的字节数b,旋转速度r以及磁道上的字节数N有关。
  • 访问时间
    访问时间 = 寻道时间 + 旋转延迟时间 + 传输时间

表示存储容量、文件大小时K等于1024(通常用大写的K)
表示传输速率时k等于1000(通常用小写的k)
当然,这是通常,笔者也遇到过KB/S表示的单位是1000的,也遇到过单位是1024的。所以还是得看题目而定。
但留个心眼知道可以表示1000即可。

磁盘调度算法

先来先服务(FCFS)

定义

按访问请求到达的先后次序服务。

图示

先来先服务

最短寻道时间优先算法(SSTF)

定义

优先选择距离当前磁头最近的访问请求进行服务。

图示

SSTF

扫描算法(SCAN)

定义

当有访问请求时,磁头按一个方向移动,在移动过程中对遇到的访问请求进行服务,然后判断该方向上是否还有访问请求,如果有则继续扫描;否则改变移动方向,并为经过的访问请求服务,如此反复。

准确的说,会一直保持一个方向走到尽头,再转向。

图示

SCAN

循环扫描算法(CSCAN)

定义

在扫描算法的基础上加一条,返回时不处理任何请求,快速返回后再次扫描。

图示

CSCAN

LOOK算法

定义

SCAN的改进,当前方向没有请求就立刻转向。

CLOOK算法

定义

CSCAN的改进,当前方向没有请求就转向快速返回。

一般意义下,不强调的话,认为SCAN就是LOOK,CSCAN就是CLOOK。

调度算法比较

算法比较

磁盘空间管理

位图

位图法

空闲表

空闲表

成组链接法

原来管理空白页面的链表法在这里不太适用,因为块实在太多了,所以引入成组链接法。

笔者认为是链表和空闲表的杂交。

定义

把空白物理块分成组,在通过指针把组与组之间链接起来,这种管理空白块的方法称为成组链接法。

图示

成组链接法
解释:专用块代表这一块是专门记录哪些块是空闲块,第一个表项是专门记录下一个专用块的位置,其余是真正的空闲块位置。

其余方法

UFS
类页表法

RAID

廉价冗余磁盘阵列

RAID0

RAID0

RAID1

RAID1

RAID2

RAID2

RAID3

RAID3

RAID4

RAID4

RAID5

RAID5

RAID6

RAID6

比较

RAID比较

一句话总结,RAID0实现了并行访问,RAID1镜像保存,RAID2海明码,RAID3字节存储,单独盘奇偶校验;RAID4块存储,单独盘奇偶校验;RAID5,奇偶校验块错开融入数据盘;RIAD6,RAID5的基础上double校验块。

提高I/O速度

  • 氪金买好磁盘
  • 并行化处理(RAID0)
  • 采用适当的调度算法
  • 设置高速缓冲区