操作系统磁盘复习
主引导扇区
定义
硬盘的0柱面、0磁头、1扇区称为主引导扇区。
组成
前446字节为启动代码(BootLoader)
后面64字节是分区表(DPT),一共可以记录4个分区。
最后有2个字节是幻数,标识这是一个被分区的硬盘
DPT表项
磁盘分类
固定头磁盘
磁头相对于盘片径向方向固定的,称为固定头磁盘,每个磁道一个磁头。
活动头磁盘
磁头可移动的、可以来回伸缩定位磁道的,称为活动头磁盘
固定盘磁盘
磁盘永久固定在磁盘驱动器内,称为固定盘磁盘。
可换盘磁盘
磁盘可移动和替换的,称为可换盘磁盘。
磁盘地址与块号的转换
先记忆一个知识,一个逻辑块号的大小为一个扇区的大小。
一般情况下、先填满扇区、再填满磁道、再填满柱面。
在此基础上。可进行如下转换
已知块号
柱面号 = 块号 / (磁头数 * 扇区数)
磁头号 = (块号 % (磁头数 * 扇区数)) / 扇区数
扇区号 = (块号 % (磁头数 * 扇区数)) % 扇区数
已知磁盘地址
块号 = 柱面号 * 磁头数 * 扇区数 + 磁头号 * 扇区数 + 扇区号
已知块号
柱面号 = 块号 / (磁头数 * 扇区数)
磁头号 = (块号 % (磁头数 * 扇区数)) / 扇区数
扇区号 = (块号 % (磁头数 * 扇区数)) % 扇区数
磁盘访问时间
- 寻道时间:把磁头从当前位置移动到指定磁道上所经历的时间。 $${T_S} = m \times n + s$$
- 旋转延迟时间:盘面转到指定扇区所需要的时间 $${T_r} = 1/(2r)$$
- 传输时间:把数据从磁盘写入或读出所经历的时间 $${T_t} = b/(rN)$$ 大小与所读/写的字节数b,旋转速度r以及磁道上的字节数N有关。
- 访问时间
访问时间 = 寻道时间 + 旋转延迟时间 + 传输时间
磁盘调度算法
先来先服务(FCFS)
定义
按访问请求到达的先后次序服务。
图示
最短寻道时间优先算法(SSTF)
定义
优先选择距离当前磁头最近的访问请求进行服务。
图示
扫描算法(SCAN)
定义
当有访问请求时,磁头按一个方向移动,在移动过程中对遇到的访问请求进行服务,然后判断该方向上是否还有访问请求,如果有则继续扫描;否则改变移动方向,并为经过的访问请求服务,如此反复。
图示
循环扫描算法(CSCAN)
定义
在扫描算法的基础上加一条,返回时不处理任何请求,快速返回后再次扫描。
图示
LOOK算法
定义
SCAN的改进,当前方向没有请求就立刻转向。
CLOOK算法
定义
CSCAN的改进,当前方向没有请求就转向快速返回。
调度算法比较
磁盘空间管理
位图
空闲表
成组链接法
原来管理空白页面的链表法在这里不太适用,因为块实在太多了,所以引入成组链接法。
定义
把空白物理块分成组,在通过指针把组与组之间链接起来,这种管理空白块的方法称为成组链接法。
图示
解释:专用块代表这一块是专门记录哪些块是空闲块,第一个表项是专门记录下一个专用块的位置,其余是真正的空闲块位置。
其余方法
RAID
廉价冗余磁盘阵列
RAID0
RAID1
RAID2
RAID3
RAID4
RAID5
RAID6
比较
提高I/O速度
- 氪金买好磁盘
- 并行化处理(RAID0)
- 采用适当的调度算法
- 设置高速缓冲区