29.操作系统对磁盘的4层抽象小结
Posted PacosonSWJTU
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了29.操作系统对磁盘的4层抽象小结相关的知识,希望对你有一定的参考价值。
【README】
本文总结了操作系统 对磁盘的4层抽象,并给出了详细介绍的post 链接;
【1】对磁盘的4层抽象
【1.1】对磁盘的第1层抽象
通过盘块号读写磁盘(读写多个扇区);
- 因为磁盘底层操作的单位是扇区(512字节),若以扇区为读写单位,读写速度太慢;
- 参见: 24.原生磁盘的使用_PacosonSWJTU的博客-CSDN博客
【1.2】对磁盘的第2层抽象
用队列缓存多个进程读写的盘块号;
- 因为操作系统是多进程图像,管理多个进程,走走停停,同步向前推进;
- 参见:24.原生磁盘的使用_PacosonSWJTU的博客-CSDN博客
【1.3】对磁盘的第3层抽象
通过 文件 操作磁盘;
- 因为用户程序操作通过盘块号读写磁盘太底层,不太方便;所以引入文件来操作磁盘;
- 参见:25.从生磁盘到文件_PacosonSWJTU的博客-CSDN博客
【1.4】对磁盘的第4层抽象
整个磁盘抽象为文件系统;
- 整个磁盘就包括了 目录,子目录列表,文件列表,或目录树;
- 参见: 27.目录与文件系统_PacosonSWJTU的博客-CSDN博客
【2】磁盘格式化
0)磁盘格式化
1.4节 我们讲到操作系统 把整个磁盘抽象为 文件系统;
磁盘格式化后的结构如下:
1)整个磁盘格式化以后,就会形成目录树结构,包括
- 引导块;
- 超级块;
- i节点位图(inode位图);
- 盘块位图;
- i节点(inode数组);第1项就是根目录inode;
- 数据区;
2)整个磁盘格式化后各个部分的内容构成:
- 引导块:操作系统引导扇区 ;
- 超级块:记录了 i节点位图,盘块位图的盘块大小;超级块起始盘块号加上i节点位图盘块大小,再加上盘块位图盘块大小就可以得到i节点的起始盘块,而i节点的第1块存储的就是根目录信息,根目录存储了 FCB数组指针,子目录项列表;
- i节点位图(Inode位图):新建一个文件,即新建一个inode,把该文件对应的inode设置为1;相反,删除一个文件(或inode),则该inode设置为0;
- 盘块位图: 各个盘块使用情况(0-空闲,1-占用);
补充: superblock 超级块非常重要;
- 要想使用一个磁盘或u盘,需要先把u盘 挂载 mount到系统;mount的作用就是读取磁盘或u盘的超级块到内存,解析出 i节点位图,盘块位图;
- 根据 i节点位图和盘块位图可以计算出i节点的起始盘块号;
- 读取i节点的第1个盘块的内容,即根目录FCB的信息;根目录FCB存储了子目录项列表;
【小结】
- 以上内容介绍了一个目录树(逻辑)如何实现在磁盘(物理)上的;
- 参见: 27.目录与文件系统_PacosonSWJTU的博客-CSDN博客
以上是关于29.操作系统对磁盘的4层抽象小结的主要内容,如果未能解决你的问题,请参考以下文章