图解磁盘结构,磁盘寻址,LBA,CHS

磁盘存储:

首先是非常光滑的磁盘,一块盘有两个盘面,中间的是马达,控制盘面的旋转,盘面上布满了金属磁粒,多个磁粒组成一个单元格,一个单元格表示一个比特位,单元格磁粒向上表示1,放下朝下表示0,看起来贴着盘面的三角形状的是磁头,实际上磁头距盘面是有距离的,这个距离很近很近,但它永远不会贴着,否则盘面转起来,不就把盘面刮花了,磁头上有读磁头和写磁头,读磁头会通过电磁技术检测下方单元格磁粒的极性,就能分辨是0还是1,写磁头通过改变单元格中金属磁粒的极性,将其设定为1或者0

在光滑的盘面上,还有一圈圈的同心圆,如图:

每两个同心圆中间的区域就是磁道,磁盘将每个磁道划分了几个扇形区域,每个磁道中的那一小块扇形就是扇区,每个扇区都可存储512字节,看到这你应该会疑问,很明显,外侧扇区要比内侧扇区看起来大的多,怎么都是存储512字节呢,这不造成外侧空间的浪费吗. 是的,你的疑问没有错,磁盘早期确实这样造成了浪费,但是现在已经没有了这种问题,现在磁盘为了提升容量的同时节约成本,外侧扇区就比较大一些,内侧扇区小一些,已经没有了这种问题

一块盘存不了太多数据,现在磁盘内部都是几块盘起步,每一块盘都是两个盘面,每个盘面都会有一个磁头,三个盘就会有六个盘面,六个磁头,所有盘面中同一半径的磁道相结合,就抽象出了柱面,如图:

这个柱面是抽象意义上的,其实大多数情况下还是表示磁道

磁盘寻址:

好了,我们刚说,磁盘中划分了很多磁道,磁道中有很多扇区,那么磁头是如何找到这块扇区呢?

首先支撑磁头的叫做磁臂,磁臂前段有一块马达,控制磁臂左右移动,磁头会去选择对应的磁道,接着对应扇区旋转到磁头下方时,磁头就可以读取数据,磁头移动到对应的磁道,这个过程叫做寻道

图中有六个盘面,六个磁头,这个六个磁头是共进退的,也就是说一个磁头向左移动,所有磁头都会向左移动,磁盘驱动程序会计算数据在哪个盘面,哪个磁道,以及所在的扇区编号,再去移动磁头去读写数据. 你以为这就完了吗,确实完了,不过我准备把他说细一点

实际上,操作系统在做磁盘管理时,会将磁盘抽象成一个数组,就比如这个数组大小是500G,0 - 50G是0盘面,101-200是1盘面,在每个盘面中,例如,0-10是0号磁道,11-20是1磁道,以此类推,在每个磁道中,我们根据扇区编号来确定扇区的大小,比如0号磁道是内侧磁道,扇区大小都是512字节,那么0号磁道数组中的每个元素都表示512字节,数组索引值就是扇区编号,假设4号磁道是外侧磁道,扇区大小是1024字节,那么同样,磁道数组中每个元素都表示1024字节,数组索引值同样就是扇区编号,那么如何寻址呢,其实很简单,比如数组索引值是50,拿50 / 100,得到0,就代表这是0号盘面,50 / 10,得到5,表示是5号磁道,0号盘面的5号磁道数组索引值是50 - 60,50 % 50 得到0 ,得到0号扇区,所以就得到最终地址,0号盘面,5号磁道的0号扇区,最后将指令发给磁盘的伺服系统,再控制磁头读写数据,最后将数据发给操作系统,这种寻址方式,叫做LBA寻址(logic block address),而之前说的,先确定盘面再确定磁道和扇区的定位方式,叫做CHS定位(cylinder head sector) 

那么操作系统为什么要抽象出来做LBA呢,答案是 更加方便操作系统管理,且不想让操作系统代码与磁盘强耦合

磁盘块:

磁盘是按照扇区读取和存储的,那么一次IO只有512字节,对操作系统来说根本不够,现在的文件动则几十几百兆,多则几十几百G,一次IO只有512字节未免也太慢了,所以在此基础上,操作系统每次向磁盘读取数据时,都不会只读取一个扇区,而是将这个扇区附近的扇区也进行读取,这些扇区就组成了一个块,这就是磁盘块,通常每个磁盘块是4KB,而有的需要经常进行大文件IO的,会上升到8KB,16KB等等,而只选择这个扇区附近的扇区,也是因为,数据都是大多都是连续存放的,有研究表明,如果这块扇区被读取,那么他附近的扇区大概率也会被读取,所以选择附近扇区组成一个块,之前我在一篇博客中写,内存以每4KB的大小进行划分,也是因为一个块4KB,那么内存划分成4KB方便加载,而内存被划分成的4KB空间,叫做页框, 又称页帧   

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值