五、磁盘的基本知识

    保护模式内容太多,一时半会消化不完,慢慢体会清楚了再继续写吧。还是先把读写软盘搞清楚吧,今天弄清楚磁盘的物理结构。

    涂上磁性材料、用来存储数据的圆形盘片,就叫磁盘片,简称盘片,也叫碟片。为了保护盘片,防止盘片表面被划伤,一般都把盘片装到一个密封盒子里,这个装有盘片的密封盒子就叫磁盘(Disk)。如果盘片是软的(塑料的),就叫软盘(Floppy Disk)。如果盘片是硬的(铝合金的或玻璃的),就叫硬盘(Hard Disk)。一般软盘只有一张盘片,硬盘可以有一张或多张盘片。盘片分正反两面,每一面即为一个盘面。所有盘面都涂有磁性材料,这层磁性材料就叫磁层,磁层就是存储数据的介质。所谓磁层存储数据,说白了,就是那些磁性材料以特殊方式被磁化成不同的状态。

    电脑通过磁盘驱动器(Disk Drive)从磁盘取得数据,即为读磁盘(Read Disk),或把数据存储到磁盘,即为写磁盘(Write Disk)。软盘的驱动器叫软驱(Floppy Disk Drive,简写 FDD),软盘和软驱是分离设计的。硬盘的驱动器叫硬驱(Hard Disk Drive,简写HDD),硬驱和硬盘是一体设计的,被封装在一起,所以硬驱就是硬盘,硬盘就是硬驱,无论是硬盘还是硬驱都是指二者结合在一起所形成的设备。

    磁盘驱动器通过一个针状的磁性部件接触盘片的磁层来读写数据,这个接触盘片的磁层来读写数据的磁性部件就叫磁头(Head)。磁盘存储数据的过程就是磁头把电信号转化为磁信息,再把盘片上的那些磁性材料以特殊方式磁化成一个个磁化单元的过程,一个磁性单元存储一个位(bit,简称 b)的数据位是计算机内部数据储存的最小单位每一个盘面都有一个磁头对应,磁盘上所有磁头共用同一个传动轴。磁头数量和实际存储数据的盘面数量是相等的。

    下面是一个硬盘的拆开图,只标出了程序设计涉及的部件:

165021_ZzYC_580100.jpg

      实际操作的时候,盘片高速转动,磁头保持在一个位置不动,在磁层上进行磁化操作,数据就被记录在磁层上。磁头会在盘片表面上画出一个与盘片同心的圆形轨迹,这个圆形轨迹就叫磁道(Track),磁盘上的信息就是沿着磁道存放的。如果这个磁道存满了,磁头就会移动到下一个位置,继续形成下一个磁道。相邻磁道之间并不是紧挨着的,因为磁化单元距离太近时磁性会相互影响,另外磁头的移动也有精密度的限制。很明显,越接近圆心,圆就越小,即外圈的磁道周长比内圈的磁道要长,包含的磁性单元也多。磁道是从外往里、从 0 开始依次编号的,即盘面边缘最外圈的磁道是第 0 号磁道。

    由于磁盘上所有的磁头共用同一个传动轴,所有磁头是同时移动的,这就导致所有盘面的磁道划分是完全一致的。所有盘片上同一长度半径的位置上的磁道组成的一个圆柱面叫柱面(Cylinder)。磁道是一个平面概念,每个磁道只在一个盘面的某个圆圈上;柱面是一个立体概念,组成柱面的若干个磁道分布在各个盘面上(每个盘面一个,并且在同一个半径位置上)。磁道是物理上真实存在的,柱面是虚拟的、是想象的。柱面的数量和任一个盘面的磁道的数量是相等的,并且和磁道编号方式相同,也是从外往里、从 0 开始编号,即磁盘边缘的最外圈的柱面是第 0 号柱面。柱面是一个难懂的概念,看图比较形象(百度扒来的):

092241_vmFU_580100.jpg

    一圈磁道能记录很多信息,如果按照一整圈磁道为单位读写的话,数据量太大;而如果按照一个磁性单元为单位读写的话,又太小了。因此把每个磁道都分为若干个弧段。这样就可以一个弧段一个弧段的读写数据,这些弧段就叫扇区(Sector)。每个磁道上的扇区编号都从 1 开始(和柱面、磁头从 0 开始不同)。磁盘驱动器读写磁盘的时候,以扇区为单位。软盘的所有磁道,不管外圈的、内圈的,都是等分成同样数量的扇区;而硬盘为了获得了更多的存储空间,会把周长较长的外圈磁道划分出较多的扇区,而周长较短的内圈磁道划分出较少的扇区。

    下面是磁道、扇区示意图:

092949_wZbu_580100.jpg

    磁头和盘片是制造的时候就装好的,即磁头数和每柱面磁道数固定了。磁盘在出厂前,生产商将空白的磁盘划分出柱面和扇区,并将扇区编号,即所谓低级格式化(实际上低级格式化还包括其他内容,用户也可以用特殊工具再次低级格式化)。用户还可以进行高级格式化,即清空磁盘,重新划分柱面和扇区,并将扇区编号。

    显然,可以用柱面号 - 磁头号 - 扇区号(即 CHS 编号)来唯一定位磁盘上每一个区域,或者说 CHS 与磁盘上每一个扇区有一一对应关系,这种 CHS 定位的扇区称为“绝对扇区”,又叫“物理磁盘地址”(扇区是磁盘驱动器的最小读写单位)这种 CHS 寻址的方式称“绝对扇区表示法“。

    随着磁盘技术的进步,出现了更加简便的 LBA 寻址模式(Logical Block Address),即逻辑扇区寻址模式(也叫线性寻址),用来取代 CHS 寻址模式。LBA 寻址方式把磁盘上所有物理扇区的 CHS 编号通过一定的规则转换成一个线性的编号(说白了就是从 0 开始的一个数字)。在访问磁盘时,由磁盘内部的控制器把逻辑地址转换为实际的物理地址来定位。

    设  NH 为磁头数,NS 为每磁道扇区数,C、H、S 表示柱面号、磁头号和扇区号,LBA 表示逻辑扇区号,div 代表整除计算,mod 代表求余计算,则 LBA 与 CHS 之间的转换公式如下:

  LBA = ( NH × C + H ) × NS + S - 1;

  C = ( LBA div NS ) div NH;

  H = ( LBA div NS ) mod NH;

  S = ( LBA mod NS ) + 1


转载于:https://my.oschina.net/u/580100/blog/526406

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值