【操作系统】磁盘
磁盘的结构
磁盘的组成结构包括:盘片、盘面、磁道、扇区、磁头、磁臂、柱面。
-
盘片。
一个磁盘由多个盘片叠加而成。
盘片表面由磁性物质组成,可以用来记录二进制数据。
-
盘面。
盘片涂上磁性物质的那一面称为盘面,一个盘片可以有两个盘面。
每个盘面都有一个编号,从0开始。
-
磁道。
磁盘的磁面被划分成很多个圈,一个圈就是一个磁道。
-
扇区。
一个磁道被划分为多个扇区,每个扇区存放的数据量相同。
最内侧磁道的扇区,数据密度最大。
-
磁头。
每个盘面对应一个磁头。
-
磁臂。
所有磁头都是连在同一个磁臂上的。
-
柱面。
所有盘面中相对位置相同的磁道组成了柱面。
磁盘的物理地址
地址结构
对于每一个磁盘块,使用**(柱面号, 盘面号,扇区号)**的地址形式来表示。
地址结构设计原理
如果采用 (盘面号,柱面号,扇区号) 的地址形式,一个盘面磁道读写完,就需要启动磁头臂,将磁头移入下一个柱面。
如果采用 (柱面号,盘面号,扇区号) 的地址形式,一个盘面磁道读写完,不需要移动磁头臂,只需要激活写一个盘面的磁头即可。
在磁盘中读/写数据
- 根据柱面号,移动磁臂,将磁头指向指定柱面。
- 根据盘面号,激活指定盘面的磁头。
- 当指定扇区从磁头下划过时,就能完成数据读/写。
磁盘分类
- 活动头磁盘:磁头可以移动。
- 固定头磁盘:磁头不可移动,每个磁道有一个磁头。
- 可换片磁盘:盘片可以更换。
- 固定盘磁盘:盘片不可更换。
一次磁盘读写花费的时间
-
寻找时间(寻道时间)。
在读写数据前,将磁头移动到指定磁道所花的时间。包括两部分:启动磁头臂的时间 + 移动磁头的时间。
-
延迟时间。
旋转磁盘使磁头定位到指定扇区所用的时间。平均延迟时间为:
平均延迟时间 = (1/2)*(1/r)
,1/2表示平均要转动半圈。r表示每分钟转多少圈。 -
传输时间。
读写数据所用时间。
总时间为上述三个时间的总和。
磁盘调度算法
不同的磁盘调度算法所需的寻道时间不同。
常见的磁盘调度算法为:
- 先来先服务算法。
- 最短寻找时间优先。
- 扫描算法。
Look
调度算法。- 循环扫描算法。
C-Look
调度算法。
1. 先来先服务算法
根据进程请求访问磁盘的先后顺序进行调度。
优点:公平;如果请求的磁道比较集中,性能还可以。
缺点:如果请求访问的磁道分散,则寻道时间长,性能很差。
2. 最短寻找时间优先
优先处理与当前磁头最近的磁道。可以保证每次寻道时间最短,但是不能保证总寻道时间最短。
优点:性能较好,平均寻道时间短。
缺点:可能产生饥饿。
3. 扫描算法
也叫电梯算法,磁头只有移动到最外侧磁道的时候,才能往内移动,只有移动到最内侧的时候,才能往外移动。
优点:性能较好,平均寻道时间较短,不会产生饥饿现象。
缺点:对各个磁道的响应不平均;可能会产生不必要的移动。
4. Look 调度算法
类似于扫描算法,但是如果在磁头移动方向上,已经没有请求了,就立即改变磁头移动方向。
优点:寻道时间比扫描算法跟短。
5. 循环扫描算法
规定磁头朝一个方向移动时才处理访问请求,移动到尽头后直接返回到起始端,该过程不处理请求。
优点:每个磁道的响应都很平均,寻道时间比扫描算法更短。
缺点:会产生不必要的移动。
6. C-Look 调度算法
类似于循环扫描算法。但是,如果移动方向上没有请求了,就立即让磁头返回,并且只返回到需要访问的磁道位置。
优点:寻道时间进一步缩短。
优化延迟时间
磁头读写一个扇区后,需要一小段时间做其他处理,然后才能继续操作其他扇区,但是磁盘会继续旋转,此时就会错过下个扇区。
如果逻辑相邻的扇区,在物理上也相邻,读写下个扇区时,就需要磁盘多转一轮,从而导致延迟时间变长。
根据上述原理,有两种减少延迟时间的办法:交替编号和错位命名。
1. 交替编号
让逻辑相邻的扇区在物理上不相邻,如(0,4,1,5,2,6,3,7)。
2. 错位命名
让相邻盘面的扇区编号错位。如上个盘面的0对应下个盘面的7。
磁盘格式化
- 低级格式化:又称物理格式化,将磁盘的各个磁道划分为扇区。一个扇区由头、数据区域、尾三个部分组成。
- 将磁盘分区,每个分区由若干个柱面组成。如C盘,D盘。
- 进行逻辑格式化,创建文件系统。
引导块
初始化程序
计算机开机时,需要进行一系列初始化工作,这些工作是通过“初始化程序”完成的。
初始化程序可以放在只读存储器ROM
中,ROM
中的数据在出厂时就写入了,并且不能再修改。
启动分区
如果初始化程序放在ROM
中,就很难再去更新,所以通常将完整的初始化程序放在磁盘的启动分区上。启动分区位于磁盘固定位置,拥有启动分区的磁盘称为启动磁盘,或者系统磁盘。
ROM
只存放很小的“自举装入程序”。开机时,计算机通过运行该程序找到启动分区,然后将完成的初始化程序读入内存,进行初始化。