磁盘的理解&&CHS和LBA地址转换

1.对于磁盘的理解

首先就是我们的操作系统课本上面学习的这个磁盘的基本结构,比如下面的这个磁盘,磁头,磁头臂以及柱面,扇区的相关的概念;

针对于这个部分的内容,我自己也没有什么经验可以分享,因为这个东西就是固定的,唯一需要注意的就是结合图区进行理解,注意分别代表的是我们的图片里面画出来的这个磁盘的那一个具体的部分;

根据上面的内容,我们想要确定扇区只需要 CHS 三个部分即可,C 代表的就是我们的柱面,H 表示的是磁头,S 表示的是扇区,下面的这个是 ima 给出来的具体介绍,不懂就多去问问 AI 工具即可;

2.对于磁盘的另一种理解

这个理解就是从数组的角度进行理解,为什么是数组,因此我们可以把一个磁头对应的具体磁道想象成为是一个无限长的绳子,就是我们小时候把这个英语听力的录音机里面的黑色的线扯出来;

这个时候具体磁道里面的每一个扇区相当于就是数组的下标;

一个柱面多个磁道,因此这个柱面就是二维的数组;

一个磁盘块就是多个柱面组成的,因此这个整盘就是一个三维的数组;

下面的这个是老师上课的文章里面的图,我姐出来给大家看一下,方便大家区进行理解;

3.CHS 地址和 LBA 地址之间的转换

CHS 地址我们上面已经介绍了,就是通过扇区,磁头,柱面,确定的这个地址,这个 CHS 也就是三个英文单词的首字母罢了,这个很容易理解,也就是我们在这个方式下面,确定了柱面,扇区和磁头的编号,就可以确定这个 CHS 地址啦;

那么,什么是 LBA 地址呢,这个 LBA 地址,实际上我们可以直接理解为是逻辑块的地址,英文名字叫做 logical block address,也就是逻辑块的地址,翻译过来就是这个样子的;

操作系统实际上使用的就是 LBA 地址,但是这个 CHS 地址和 LBA 地址之间的相互转换,也是操作系统自己完成的,具体的转换方法如下所示,比较抽象,需要自己去理解:

为了帮助理解,我简单说明一下:

1)建议先去理解 CHS 如何转换成为 LBA 的,然后再去反过来,按照这个顺序更容易一些

2)红色标注出来的那个公式我认为就是核心公式,理解他就问题不大了;

3)柱面编号*每一个柱面扇区数量===柱面上面的扇区的总数,第二个加数说明就不是一个完整的柱面,我们需要知道这个对应的磁头编号,以及这个完整的磁道对应的扇区总数;

第三个加数就是不完整的磁道,加上这个对应的扇区的数量即可

4)然后再去反过来理解这个 LBA 转换成为 CHS 的就容易很多了

我要说的就是这些,这个过程需要每一个初学者慢慢去领悟,一定要结合上面的磁道,柱面,扇区的图,去进行辅助理解,可能效果更好一些,我能帮助大家的只有这些了

相关推荐
yunteng5218 小时前
通用架构(同城双活)(单点接入)
架构·同城双活·单点接入
麦聪聊数据8 小时前
Web 原生架构如何重塑企业级数据库协作流?
数据库·sql·低代码·架构
程序员侠客行9 小时前
Mybatis连接池实现及池化模式
java·后端·架构·mybatis
bobuddy11 小时前
射频收发机架构简介
架构·射频工程
桌面运维家11 小时前
vDisk考试环境IO性能怎么优化?VOI架构实战指南
架构
一个骇客12 小时前
让你的数据成为“操作日志”和“模型饲料”:事件溯源、CQRS与DataFrame漫谈
架构
鹏北海-RemHusband13 小时前
从零到一:基于 micro-app 的企业级微前端模板完整实现指南
前端·微服务·架构
2的n次方_15 小时前
Runtime 内存管理深化:推理批处理下的内存复用与生命周期精细控制
c语言·网络·架构
前端市界16 小时前
用 React 手搓一个 3D 翻页书籍组件,呼吸海浪式翻页,交互体验带感!
前端·架构·github
文艺理科生16 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
前端·后端·架构