朋友们、伙计们,我们又见面了,本期来给大家带来文件系统相关知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成!
C 语 言 专 栏:C语言:从入门到精通
数据结构专栏:数据结构
个 人 主 页 :stackY、
C + + 专 栏 :C++
Linux 专 栏 :Linux
目录
1. 文件管理
我们计算机里面的文件有很多,前面的文件fd章节主要理解被打开文件如何进行管理,那么众多的文件不一定全都要被打开,当前不需要访问的文件处于未被打开的状态,这些文件都在磁盘中保存,对于这些没有被打开的文件也需要进行管理,管理未被打开的文件的核心工作就是当我们需要访问的时候可以快速的定位到该文件。
文件的管理工作:
1. 对打开的文件在内存中管理;
2. 没有被打开的文件在磁盘中管理。
文件系统主要是管理文件的存储问题,文件 = 内容 + 属性,本质上是管理文件的内容和属性的存储问题,将文件管理起来的最主要的目的就是为了方便OS/用户对于文件的各种访问操作(增删查改)。
2. 磁盘物理存储结构
磁头的运动轨迹是左右,磁盘的运动轨迹是旋转;
磁盘访问任意位置的时候都是机械运动,这就表明了磁盘的访问速度是较慢的。
2.1 基本概念
通过图片可以看到磁盘的盘面上分成的若干个扇区,这些扇区用来存储数据,需要注意的是,这些小扇区存储数据的大小都是一样的,通常是512字节(4KB)。
- 一个盘面可以有很多个同心磁道;
- 一圈磁道可以有很多扇形的扇区;
- 扇区是磁盘最小的存储单元,大小为512字节(4KB)。
磁头摆动定位柱面、盘片旋转定位扇区。
2.2 向磁盘写入数据
根据磁盘的物理存储结构,向磁盘写入数据时的寻址定位方法:
- 1. 选择哪一面(盘面),本质上就是选择磁头;
- 2. 选择该盘面上的哪一个磁道;
- 3. 选择该磁道上的哪一个扇区。
这种寻址定位方法叫做CHS定位法。
我们可以向一个扇区写入,就可以向多个/任意一个扇区写入,当然也可以随机写入;
3. 磁盘逻辑抽象结构
观察磁盘的物理结构不难发现其实和我们C语言中学到的二维数组很相似,二维数组也是连续存储结构,所以我们可以将磁盘的结构抽象成一个数组,将磁盘的盘片想象成线性空间,所以我们对于磁盘的管理,就可以变成对于数组的管理!同样的可以使用数组的下标来快速定位到内容的具体位置。


最低0.47元/天 解锁文章
2781

被折叠的 条评论
为什么被折叠?



