惠东网站开发,宝塔面板,项目策划书模板,wordpress友情链接显示个数目录
1.为什么要抽象
2.逻辑抽象_版本1
2.1sector数组
2.2index转化CHS
3.逻辑抽象_版本2
3.1LBA数组
3.2LAB下标转化sector下标 文件其实就是在磁盘中占有几个扇区的问题❗文件是很多个sector的数组下标❗文件是有很多块构成的❗❗文件由很多扇区构成------文件…目录
1.为什么要抽象
2.逻辑抽象_版本1
2.1sector数组
2.2index转化CHS
3.逻辑抽象_版本2
3.1LBA数组
3.2LAB下标转化sector下标 文件其实就是在磁盘中占有几个扇区的问题❗文件是很多个sector的数组下标❗文件是有很多块构成的❗❗文件由很多扇区构成------文件由很多的index构成-----文件由很多的块构成
1.为什么要抽象 硬件的存储结构发生改变OS软件随之发生变化。直接使用CHS的耦合度太高不想软件直接拿着硬件的参数去访问。为了后面编码设计为了方便内核进行磁盘管理 OS需要也需要对大量的磁盘文件管理❗管理啊先描述再组织❗下面我们走一遍OS对磁盘这样的设备进行管理和抽象。OS对磁盘的管理转化成了对数组的管理先描述再组织。描述描述成数字组织组织成数组 2.逻辑抽象_版本1
2.1sector数组 圆形结构变成了线性结构。磁盘抽象成线性结构。线性结构的每一段都是一个扇区。这个线性结构可以看成一个数组数组元素是一个一个的扇区。天然就存在一个东西数组下标表示sector相当于对扇区进行了编址 2.2index转化CHS OS是拿到下标index就可以访问扇区硬件是使用CHS来进行扇区寻址磁盘的每个盘面的容量大小一样磁道数/扇区数是一样大小的二者的转化算法是很简单的并且这个工作是磁盘内部完成的。index------硬件电路-------磁盘内部转化--------CHS地址---------磁盘的硬件定位扇区 前提已知 磁盘总容量和每个扇区的大小扇区数磁道数。 磁盘的每个盘面有1000个扇区10个磁道每一个磁道都有100个扇区 index / 扇区数 定位的盘面H index % 扇区数 tmp tmp / 100 定位磁道C tmp % 100 定位扇区S 3.逻辑抽象_版本2
3.1LBA数组 内存和外设之间进行IO交互。512字节会不会太小了。OS觉得有点小。C语言访问内存是1字节经常性是4/8字节访问站在硬件的角度每次往内存拷贝加载数据512字节。站在OS的角度效率低能不能拷贝更多数据。可以4KB。基本单位是4KB可以修改需要重新编译OS大部分场景够用一次性读8个扇区❗4KB的大小是规定出来的。有块号规定❗OS4KB 8个连续的扇区 数据块块大小 文件块大页式内核4MB1KB 1024字节 3.2LAB下标转化sector下标 逻辑区块地址(Logical Block Address, LBA)是描述计算机存储设备上数据所在区块的通用机制一般用在像硬盘这样的辅助记忆设备。8个扇区为1个块块号✖8一个块的扇区数 一个块的第一个扇区sector的下标整个块的下标第一个sector知道了往后连续数7个就是这个块。01234567。每一个块的扇区的下标都知道了。再通过版本1的计算方法就可以知道CHS地址了。对于OS而言未来我们读取数据可以以块为单位了❗磁盘可以看成很多的块。只要知道第一个块号就可以知道全部的块号了。前提知道磁盘的总大小——总大小/4即可只要知道一个起始和磁盘的总大小有多少块每个块的块号如何准换到对应的多个CHS地址全部都知道了❗总大小/4KB总块数块的编号LBA----------每个块的第一个起始地址sector的下标-----------每个块中全部的sector的下标---------每个下标index通过计算得到CHS地址----------定位到硬件里面的扇区。