武威市网站建设_网站建设公司_自助建站_seo优化
2026/1/19 22:03:21 网站建设 项目流程

理解硬件:磁盘

1.机械磁盘

机械磁盘是计算机中唯一的一个机械设备,本节提到的磁盘均为机械磁盘

2.磁盘物理结构

3.磁盘的存储结构

一个磁盘有数个盘,每个盘有两个盘面,每个盘面上都有磁头可以进行读写,每一个盘面上都有数个磁道,磁道的间隙将磁道切分为一个个扇区,扇区即为磁盘最小读写单位(每个扇区存储的内容大小一致)

4.磁盘的逻辑结构

传动臂上的磁头是共进退的,柱面是⼀个逻辑上的概念,其实就是每一面上,相同半径的磁道逻辑上构成柱⾯。所以,磁盘物理上分了很多面,但是在我们看来,逻辑上,磁盘整体是由“柱面”卷起来的

磁道:

某⼀盘面的某⼀个磁道展开(过程可类比将磁带抽出,就会成一个线性的结构):即一维数组

柱面:

整个磁盘所有盘⾯的同⼀个磁道,即柱⾯展开:即二维数组

整盘:

三维数组

5.磁盘寻址

a.CHS寻址

寻址⼀个扇区:先找到哪⼀个柱⾯(Cylinder) (0,1,2......)(最外圈为0,向中心依次增加),在确定柱⾯内磁头位置(Head)(0,1,2....),在确定扇区(Sector)(1,2,3......),所以就有了 CHS 。

b.LBA寻址

每⼀个扇区都有⼀个下标,我们叫做 LBA(Logical Block Address) 地址,其实就是线性地址
我们之前学过C/C++的数组,在我们看来,其实全部都是⼀维数组:

OS只需要使⽤LBA就可以了!!

LBA地址转成CHS地址,CHS如何转换成为LBA地址由磁盘⾃⼰来做!固件(硬件电路,伺服系统)

c.CHS - LBA地址转换

CHS转成LBA:

• 磁头数*每磁道扇区数 = 单个柱⾯的扇区总数

• LBA = 柱⾯号C*单个柱⾯的扇区总数 + 磁头号H*每磁道扇区数 + 扇区号S - 1

• 即:LBA = 柱⾯号C*(磁头数*每磁道扇区数) + 磁头号H*每磁道扇区数 + 扇区号S - 1

• 扇区号通常是从1开始的,⽽在LBA中,地址是从0开始的

• 柱⾯和磁道都是从0开始编号的

• 总柱⾯,磁道个数,扇区总数等信息,在磁盘内部会⾃动维护,上层开机的时候,会获取到这些参数。

LBA转成CHS:

• 柱⾯号C = LBA // (磁头数*每磁道扇区数)【就是单个柱⾯的扇区总数】

• 磁头号H = (LBA % (磁头数*每磁道扇区数)) // 每磁道扇区数

• 扇区号S = (LBA % 每磁道扇区数) + 1

• "//": 表⽰除取整

从此往后,在磁盘使⽤者看来,根本就不关⼼CHS地址,而是直接使用LBA地址,磁盘内部⾃⼰转换。

所以从现在开始,磁盘就是⼀个元素为扇区的⼀维数组,数组的下标就是每⼀个扇区的LBA地址OS使⽤磁盘,就可以⽤⼀个数字访问磁盘扇区了

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询