4.3 磁盘的组织与管理
最后更新于
最后更新于
磁盘:磁盘的表面由一些磁性物质组成,可以用这些磁性物质来记录二进制数据
磁道:磁盘的盘面被划分成一个个磁道。这样的一个“圈”就是一个磁道。
扇区:一个磁道又被划分成一个个扇区,每个扇区就是一个磁盘块。各个扇区存放的数据量相同。
盘面:磁盘表面所有的扇区的集合。
柱面:所有盘面中相对位置相同的磁道组成柱面。
可以用(柱面号,盘面号,扇区号)来定位任意一个磁盘块。
启动磁头所需要的时间,设为s;
移动磁头所需要的时间,假设磁头匀速运动,每跨越一个磁道的时间为m,总共跨越n条磁道,则:
即转动磁盘,使磁头定位到目标扇区所用的时间,设磁盘转速为r,则平均所需的延时为;
减少延迟时间的方法:
交替编号:若采用交替编号的策略,即让逻辑上相邻的扇区在物理上有一定的间隔,可以使读取连续的逻辑扇区所需要的延迟时间更小。(磁头读取完一个扇区之后需要一段时间冷却)
错位命名:与交替编号类似,将不同盘面的编号错开来。
对磁盘进行读/写操作所需的时间。设磁盘转速为r,需要进行读/写的字节数为b,每个磁道上存储的字节数为N,则:
其中,延迟时间与传输时间都取决于硬盘的转速,操作系统则可以通过不同的算法来影响寻道时间。
根据进程请求访问磁盘的先后顺序进行调度。
优点
公平
当访问的磁道比较集中时性能还彳亍
缺点
有大量进程同时请求访问,且磁道十分分散,则性能很差
SSTF算法会优先处理的磁道是与当前磁头最近的磁道。可以保证每次的寻道时间最短,但是并不能保证总的寻道时间最短。
优点
性能较好
平均寻找时间短
缺点
可能产生饥饿现象
SSTF算法会产生饥饿的原因在于:磁头有可能在一个小区域内来回来去地移动。
为了防止这个问题,可以规定只有磁头移动到最外侧磁道的时候才能往内移动,移动到最内侧磁道的时候才能往外移动。这就是扫描算法(SCAN)的思想。由于磁头移动的方式很像电梯,因此也叫电梯算法。
优点
性能较好
平均寻道时间短
不会产生饥饿现象
缺点
只有到达最边上的磁道才能开始反向移动(哪怕已经没有更外侧的磁道需要访问)
对各个磁道的响应时间不均
相较于扫描算法,在当前磁头移动方向前方若没有其他需要访问的磁道,LOOK算法允许磁头立刻开始反方向移动。
LOOK算法使得寻道时间进一步缩短。
SCAN算法对于各个位置磁道的响应频率不平均,而C-SCAN算法就是为了解决这个问题。规定只有磁头朝某个特定方向移动时才处理磁道访问请求,而返回时直接快速移动至起始端而不处理任何请求。
将LOOK算法与C-SCAN算法结合,得到C-LOOK算法。
如果磁头移动的方向上已经没有磁道访问请求了,就可以立即让磁头返回,返回途中不处理任何请求,并且磁头只需要返回到有磁道访问请求的位置即可。
进行低级格式化(物理格式化)
将磁盘的各个磁道划分为扇区。
一个扇区通常可分为头、数据区域、尾三个部分组成。
管理扇区所需要的各种数据结构一般存放在头、尾两个部分,包括扇区校验码等
将磁盘分区,每个分区由若干柱面组成(C盘、 D盘 、 E盘)
进行逻辑格式化,创建文件系统
包括创建文件系统的根目录、初始化存储空间管理所用的数据结构(如位示图、空闲分区表等)
计算机启动时需要运行一系列的初始化程序(自举程序),用于初始化各软硬件。
完整的自举程序放在磁盘的启动块(引导块 /启动分区)上,启动块位于磁盘的固定位置。在ROM中存放自举装入程序,用于找到引导快并将其中的自举程序装入内存。
拥有启动分区的磁盘称为启动磁盘或是系统盘。
无法正常使用的扇区就是坏块。这属于硬件故障,操作系统是无法修复的。应该将坏块标记出来,以免错误地使用到它。
对于简单的磁盘,可以在逻辑格式化时对整个磁盘进行坏块检查,标明哪些扇区是坏扇区(在这种方式中,坏块对操作系统不透明)
对于复杂的磁盘,磁盘控制器(磁盘设备内部的一个硬件部件)会维护一个坏块链表。在磁盘出厂前进行物理格式化时就将坏块链进行初始化。会保留一些备用扇区,用于替换坏块。这种方案称为扇区备用。且这种处理方式中,坏块对操作系统透明。
找到目标分区平均需要转半圈,因此乘以。