苏泽
“弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家
本篇内容续写上一篇的【考研408&操作系统】最容易理解的知识体系-文件管理-面向人类管理
这一篇将站在计算机如何管理好文件的角度去梳理这一章节的知识点
目录
本篇内容续写上一篇的【考研408&操作系统】最容易理解的知识体系-文件管理-面向人类管理
文件系统
文件系统结构
用户接口
文件目录系统
存取控制模块
逻辑文件系统
文件信息缓冲区
物理文件系统
辅助分配模块
设备管理模块
上面提到的应用与用户接口之间的交互 但是不同文件系统之间的差异 规格可能不一样 这样就会容易造成一些错误和带来麻烦 为了解决这个问题 提出了虚拟文件系统(VFS)
虚拟文件系统(VFS)
编辑
文件系统挂载
虚拟文件系统与文件系统挂载的关系
文件管理
空闲文件管理(即文件的空闲空间的管理模式)
1. 空闲表法
2. 空闲链表法
3. 位示图法
4. 成组链接法
编辑
非空闲文件管理
连续分配
链接分配
1.隐式链接
2.显式链接
索引分配
1.单级索引
2.多级索引
3.混合索引
文件系统
文件系统结构
用户接口
用户接口是文件系统的最顶层,为用户提供了与文件系统交互的方式。这包括文件的创建、删除、移动、重命名等操作,以及打开、读写、关闭文件等基本文件操作。用户接口隐藏了文件系统内部的复杂性,使得用户能够以一种直观和方便的方式使用文件系统。
文件目录系统
文件目录系统负责维护文件系统中的目录结构,包括文件和子目录的组织。它允许用户通过路径名访问文件,实现文件和目录的浏览、搜索和管理。目录系统还负责处理文件名到索引节点的映射,是文件系统访问控制和路径解析的基础。
存取控制模块
存取控制模块负责文件的安全性和访问控制。它根据用户的身份和权限,决定用户对文件的访问请求是否被允许。存取控制模块通常与用户账户和组管理紧密结合,确保文件系统的安全性和数据的完整性。
逻辑文件系统
逻辑文件系统处理文件的逻辑结构和访问方法。它定义了文件的属性(如大小、类型、权限等),以及文件数据在内存中的表示。逻辑文件系统还负责文件的缓冲管理,通过缓存文件数据来提高文件访问的效率。
文件信息缓冲区
文件信息缓冲区是逻辑文件系统和物理文件系统之间的中间层,用于暂存文件的元数据和部分数据。缓冲区可以减少对物理存储设备的访问次数,提高文件系统的访问速度和整体性能。
物理文件系统
物理文件系统负责管理文件在存储设备上的实际存储。它涉及到文件分配策略(如连续分配、链接分配、索引分配等),以及磁盘空间的管理。物理文件系统还负责处理文件的物理读写操作,将逻辑文件系统中的请求转换为对存储设备的实际操作。
辅助分配模块
辅助分配模块是物理文件系统中的一个组成部分,它负责管理文件系统中的空闲空间。通过使用空闲表法、空闲链表法、位示图法或成组链接法等技术,辅助分配模块能够高效地分配和回收磁盘空间,保证文件系统的有效运行。
设备管理模块
设备管理模块是操作系统中负责管理所有硬件设备的组件,包括存储设备。它负责设备的初始化、配置和调度,确保设备的正确使用和高效运行。在文件系统中,设备管理模块与物理文件系统紧密协作,共同完成文件的存储和访问。
上面提到的应用与用户接口之间的交互 但是不同文件系统之间的差异 规格可能不一样 这样就会容易造成一些错误和带来麻烦 为了解决这个问题 提出了虚拟文件系统(VFS)
虚拟文件系统(VFS)
虚拟文件系统是操作系统中的一个抽象层,它将不同的文件系统统一为一个统一的接口集,使得应用程序能够通过统一的方式来访问不同类型的文件系统。VFS 的主要特点和功能包括:
- 统一的接口:为所有文件系统提供一个统一的API,简化了应用程序对文件系统的操作。
- 文件系统无关性:应用程序不需要关心底层文件系统的实现细节,只需通过VFS提供的接口进行操作。
- 动态挂载:支持动态挂载和卸载文件系统,提供了更好的灵活性和扩展性。
- 文件系统类型支持:能够支持多种文件系统类型,如ext4、NTFS、FAT32等。
文件系统挂载
文件系统挂载是指将一个文件系统与文件系统的某个目录关联起来的过程。挂载后,该目录下的操作将被转发到挂载的文件系统。挂载的主要知识点包括:
- 挂载点:挂载点是一个现有的目录,它作为访问挂载文件系统的入口。
- 设备文件:挂载通常与一个设备文件关联,设备文件代表了要挂载的存储设备。
- 挂载参数:挂载时可以指定一些参数,如读写权限、文件系统类型等。
- 卸载:卸载是挂载的逆过程,它将断开目录与文件系统的关联,使得存储设备可以被安全地移除或重新分配。
虚拟文件系统与文件系统挂载的关系
虚拟文件系统通过抽象化不同文件系统的操作,使得文件系统挂
文件管理
空闲文件管理(即文件的空闲空间的管理模式)
1. 空闲表法
基本概念:空闲表法为每个文件分配一块连续的内存空间,系统为外存上的所有空闲区建立一张空闲盘块表,每个空闲区对应于一个空闲表项,包括起始序号、该空闲区的第一个盘块号、该区的空闲盘块数等信息。
性质:这种方法便于快速找到大的连续空间,但可能会导致外部碎片。
考点:空闲表的构建和维护,空闲空间的分配和回收。
易错点:在频繁的分配和回收操作中,空闲表可能会变得分散,影响查找效率。
2. 空闲链表法
基本概念:分为两种形式:
- 空闲盘块链:以盘块为单位,将所有空闲空间链接成一条链。
- 空闲盘区链:以盘区为单位,将所有空闲空间链接成一条链。
性质:空闲链表法可以快速分配空间,但可能产生外部碎片。
考点:链表的构建、遍历和维护,空闲空间的分配策略。
易错点:链表的维护需要额外的指针字段,可能会导致空间使用效率降低。
3. 位示图法
基本概念:利用二进制的一位来表示磁盘中一个盘块的使用情况,0表示空闲,1表示已分配。
性质:位示图法可以快速确定盘块的使用情况,适用于随机分配。
考点:位示图的构建和维护,位操作技巧。
易错点:位示图的空间效率取决于磁盘大小,对于大容量磁盘可能占用较多内存。
4. 成组链接法
基本概念:将顺序的n个空闲扇区地址保存在第一个空闲扇区内,其后一个空闲扇区内则保存另一个顺序空闲扇区的地址,形成链式结构。
这里的成组 指的是 将这些块 分组的作为若干个集合 在超级块里面以每一组的首块号做指针 指向自己的那个组 在自己的组里面如果位置不够装完 又可以进行套娃 就无限的使用这个方法进行链接
性质:成组链接法可以减少查找空闲空间的时间,适用于顺序分配。
考点:成组链接的构建和维护,空闲空间的快速分配。
易错点:如果空闲空间分散,成组链接法可能需要多次查找才能找到足够大的空间。
非空闲文件管理
连续分配
基本概念:连续分配方式为每个文件分配一块连续的存储空间。这种方式简单,支持顺序访问,减少了寻道时间和旋转延迟。
性质:
- 实现简单,存取速度快。
- 容易产生外部碎片。
- 文件长度不宜动态增加。
考点:连续分配方式的特点、优点和缺点,以及如何减少外部碎片的产生。
易错点:连续分配方式可能导致文件不易动态扩展,且容易产生外部碎片。
链接分配
链接分配有两种形式:隐式链接和显式链接。
1.隐式链接
基本概念:每个文件由一系列离散的盘块组成,每个盘块包含指向下一个盘块的指针。
性质:
- 消除了外部碎片。
- 便于文件的增删改。
考点:隐式链接的实现方式,以及如何通过指针实现文件的动态扩展。
易错点:隐式链接可能导致文件访问速度较慢,因为需要顺序访问每个盘块。
2.显式链接
基本概念:使用一张文件分配表(FAT)来存储文件各个盘块的指针。
性质:
- 提高了文件访问速度。
- FAT表本身可能成为系统的瓶颈。
考点:显式链接的实现方式,FAT表的作用和优化。
易错点:显式链接的FAT表管理可能变得复杂,特别是在文件数量很多的情况下。
索引分配
索引分配也分为几种形式:单级索引、多级索引和混合索引。
1.单级索引
基本概念:每个文件都有一个索引块,其中包含该文件所有盘块的地址。
性质:
- 支持直接访问。
- 没有外部碎片。
考点:单级索引的实现方式,以及如何通过索引块快速访问文件。
易错点:单级索引的索引块大小可能限制了文件的最大长度。
2.多级索引
基本概念:当单级索引块不足以容纳所有盘块地址时,使用多级索引,即索引的索引。
性质:
- 支持更大的文件。
- 增加了存储开销。
考点:多级索引的实现方式,以及如何通过多级索引快速定位盘块。
易错点:多级索引可能导致访问延迟增加,因为需要多次查找索引。
3.混合索引
基本概念:结合了连续分配、链接分配和索引分配的特点。
性质:
- 灵活性高。
- 可以适应不同大小的文件。
考点:混合索引的设计原则和实现方式。
易错点:混合索引可能导致管理复杂度增加,需要仔细设计以避免性能下降。
另外,利用了工作之余的一点点时间,整理了一套考研408的知识图谱,
我根据这一套知识图谱打造了这样一个408知识图谱问答系统
里面的每一个回答都是根据考研408的考点回复的
目前暂时只接入了微信,如果大家对这个问答系统感兴趣的话可以在我的主页里找到我的微信号
找我拉进测试群免费体验哦