操作系统-存储管理(2)磁盘

机械硬盘:

  • 盘片、盘面

每个盘片有两个盘面都可以读写。每一个盘面均有一个磁头(head),磁头号=盘面号。

  • 磁头

即铁芯+通电流的线圈,线圈通以正向电流使呈N-S状态、通以反向电流使呈S-N状态,不同的磁化状态被记录在磁盘表面。读时,因为载体上小的磁化单元外部的磁力线通过磁头铁芯形成闭合回路,在铁芯线圈两端得到感应电压。根据感应电压的不同的极性,可确定读出为0或1。

所有磁头都落在同一个柱面上,同进同出。

  • 磁道

磁盘表面被分为许多同心圆,每个同心圆称为一个磁道。每个磁道都有一个编号,最外面的是0磁道。

  • 磁柱(cylinder)

各磁盘相同位置的磁道的集合,磁柱是分割槽(partition)的最小单位;柱面号=磁道号

  • 扇区(sector)为最小的物理储存单位,大小一般为512bytes(0.5kb),扇区之间有间隔。

近三十年来,扇区大小一直是512字节。里面的扇区密度大(低密度存储方式)。每个扇区开始有一个索引信号(脉冲),内部有一个ID域一个数据域,之间有空隙。数据域还有同步字节;ID域记录物理块(扇区)地址:柱面号,磁头号,扇区号

如果说0面0道0扇区,“面”是指磁头,不是柱面。

例如最早的IBM公司的温切斯特磁盘如图所示,它是几乎所有现代硬盘产品的原型

Image(13)

图中,每个磁道由若干个扇区组成, 每个扇区记录一个数据块, 每个扇区由头空(间隙1)、ID域、 间隙(间隙2)、 数据域和尾空(间隙3)组成。 头空占17 个字节, 不记录数据, 用全1表示, 磁盘转过该区域的时间是留给磁盘控制器作准备用的; ID 域由同步字节 、 磁道号、 磁头号、 扇段号和相应的CRC码组成, 同步字节标志ID域的开始; 数据域占515个字节, 由同步字节、 数据和相应的CRC码组成, 其中真正的数据区占512字节 ; 尾空是在数据块的CRC码后的区域, 占20个字节, 也用全1表示。

但最近几年正迁移到更大、更高效的4096字节扇区,通常称为4K扇区。内外密度一样。

磁盘格式化操作指在盘面上划分磁道和扇区,并在扇区中填写ID域信息的过程

为了对大量扇区寻址,操作通常不直接管理每一个扇区,而是通过将若干个扇区组成的一个更大的集合来去进行操作管理。

这个比扇区更大的集合,在Windows下叫做簇(clust);在Linux下叫做块(block)。大小由操作系统决定,为2的n次方个扇区。

E5238A37-9A5E-4187-88B0-A26D1A045F8D

硬盘的操作流程如下:

所有磁头同步寻道(由柱面号控制)→ 选择磁头(由磁头号控制) → 被选中磁头等待扇区到达磁头下方(由扇区号控制) → 读写该扇区中数据

磁盘完成数据读写所需要的时间,是寻道时间、旋转延迟、传送时间(可忽略不计)的总和

Image(14)

Ta:存取时间

Ts:寻道时间

r:磁盘旋转速度(单位:转/秒)

b:要传送的字节数

N:一个磁道中的字节数

磁盘可能同时接收到若干I/O请求,如果随机选择并响应I/O请求,可能得到最坏的性能。系统采用一种调度策略,能够按最佳次序执行要求访问磁盘的多个I/O请求,以减少为若干I/O请求服务所需要消耗的总时间。

调度策略包括:移臂调度、旋转调度

  • 移动臂调度

目的:使移动臂的移动时间最短,从而减少寻道总时间

调度策略:

1、先来先服务:移动臂是随机移动,寻道性能较差,按顺序处理请求,对所有进程公平

2、最短查找时间优先(最小短距离法):先执行查找时间最短的请求,具有较好的寻道性能,但存在饥饿现象
3、扫描算法:移动臂每次向一个方向移动,遇到最近的I/O请求便进行处理,到达最后一个柱面后再向相反方向移动(即使当前移动方向暂时没有 IO 请求,移动臂也需要扫描到头),对最近扫描所跨越区域的请求响应较慢
4、电梯调度算法:无请求时移动臂停止不动,有请求时按电梯规律移动。每次选择沿移动臂的移动方向最近的柱面,如果当前移动方向上没有但相反方向有请求时,改变移动方向
5、分布扫描算法:将I/O请求分为长度为N的子队列,按FIFO算法依次处理每个子队列,而每个子队列采用扫描算法,处理完一个后再服务下一个子队列。可以避免磁臂粘性。N很大时近似扫描算法性能;N为1时接近FIFO算法性能。
6、循环扫描算法:移动臂总向一个方向扫描,归途中不提供服务,适用于不断有大量柱面均匀分布的请求的情形。在一个柱面上,移动臂停留至磁盘旋转一定的圈数再移向下一个柱面(缩短刚离开的柱面又到达大量I/O请求的等待时间)
  • 旋转调度

目的:使得旋转延迟的总时间最少

循环排序:通过优化I/O请求排序,在最少旋转圈数内完成位于同一柱面的访问请求。

旋转位置测定硬件和多磁头同时读写技术有利于提高旋转调度的效率

优化分布:通过信息在存储空间的排列方式来减少旋转延迟(交叉因子的概念)

                  把相邻扇区集中成簇读写               

                  按柱面而非盘面进行数据读写(另一种集簇方式):连续记录数据时,先记录在同一柱面的不同磁道上,然后再更换柱面,可以减少数据读写时的移臂操作。

9AC3BAA4-74BC-4FEB-ADC4-5A265B5828DC

磁记录介质:用来保存信息

磁盘驱动器:包括读写电路、读/写转换开关、磁头与磁头定位伺服系统等

Image(15)

磁盘控制器:包括控制逻辑、时序电路、“并→串”转换和“串→并”转换电路等。(用于连接主机与盘驱动器)

9AC3BAA4-74BC-4FEB-ADC4-5A265B5828DC(1)

 

提高磁盘I/O速度的方法:
(1)提前读:提前把下一个磁盘块的内容读入数据缓冲区。
(2)延迟写:不立刻把缓冲区中的数据写盘,而是把它挂在空闲缓冲区队列末尾。随着空闲缓冲区的使用,存有输出数据的缓冲区不停地向队列头移动。进程申请缓冲区时把缓冲区队列之首作为空闲缓冲区分配给它,并把其中数据写到磁盘。
只要存有输出数据的缓冲区还在队列中,就无需访问磁盘,减少了磁盘I/O次数
(3)虚拟盘/RAM盘:用内存空间去仿真磁盘。虚拟盘的设备驱动程序可接收所有标准磁盘操作,常用于存放临时文件。
posted @ 2018-05-21 14:29  扬羽流风  阅读(859)  评论(0编辑  收藏  举报