关于我

文件管理

第四章_文件管理

4.1 文件系统基础

4.1.1 初始文件系统

文件系统基础涉及到的内容如下:

  1. 文件的定义:一组有意义的信息的集合。
  2. 文件的属性:文件名、标识符、类型、位置、大小、保护信息…
  3. 文件内部应该如何被组织起来(文件的逻辑结构)。
  4. 文件之间应该如何被组织起来(目录结构)。
  5. 操作系统应向上提供哪些功能(create、delete、open、close、read、write 系统调用)。
  6. 文件应如何存放在外存中(文件的物理结构)。
  7. 操作系统如何管理外存中的空闲块(存储空间的管理)。
  8. 操作系统需要提供的其他文件管理功能:文件共享,文件保护。

4.1.2 文件的逻辑结构

本小节思维导图如图所示: 思维导图

4.1.2.1 有结构文件 - 顺序文件

顺序文件 拓展:采用这种文件管理方式,操作系统通常会利用日志功能,将多次修改先记录下来并延迟写盘,以提高效率和保证可靠性。对于按关键字有序组织的顺序文件,若经过多次插入和删除操作后需要重新整理文件,则可能利用数据结构中的外部归并(外部排序技术)来恢复或维护文件的有序性。

4.1.2.2 有结构文件 - 索引文件

索引文件 这种方式的缺点在下面。

4.1.2.3 有结构文件 - 索引顺序文件

索引顺序文件 但是这种结构舍弃了索引文件中索引表的地址字段,所以索引顺序文件默认更适合定长记录。

为了进一步提高检索效率,还能够进一步优化为多级索引文件: 多级索引文件

4.1.3 文件目录

本小节思维导图如图所示: 思维导图

4.1.3.1 文件控制块和索引节点

文件控制块(FCB) 是用于存取控制文件所需的各种信息的数据结构,以实现按名存取每个文件对应一个 FCB。 主要包括以下几类信息:

  1. 基本信息:文件名、物理位置、逻辑结构、物理结构等。
  2. 存取控制信息:包括文件主、核准用户和一般用户的访问权限。
  3. 使用信息:如文件的创建时间、最后修改时间等。

文件控制块(FCB

索引节点 是对文件控制块的一个优化: 索引节点

4.1.3.2 目录结构

单级目录结构和两级目录结构 已成为过去式,了解就好: 单级目录结构和两级目录结构 多级目录结构(树形目录结构) 才是现在操作系统常使用的结构: 多级目录结构 由于 树形目录结构不利于实现文件的共享(这里主要是说用户间文件的共享),因此出现了 无环图目录结构(了解即可)无环图目录结构

4.1.4 文件的物理结构(文件分配方式)

本小节总结如下图所示: 总结

4.1.4.1 连续分配

连续分配

4.1.4.2 链式分配

链式分配(隐式链接): 如果没指明显示还是隐式链接,默认是隐式链接。 隐式链接 链接分配(显式链接)显式链接

4.1.4.3 索引分配

一个文件一张(或一套)索引表,索引分配有三种方案: 索引分配(单级索引分配)单级索引分配 索引分配(多级索引分配)多级索引分配 若一个文件很小,本来只占一个磁盘块,但是也需要 K + 1 次磁盘 I / O(顶级索引表未调入内存的情况)

索引分配(混合索引分配): 为了兼顾小、中、大乃至特大文件的访问效率,需要 根据文件大小动态的分配选用最合适的分配策略,通常采用混合索引分配方式: 混合索引分配 本小节总结如下: 总结

ChatGpt: 磁盘I/O次数主要由文件的物理结构和访问模式(逻辑结构的)决定,而不是由文件的逻辑结构本身决定。逻辑结构更多影响的是查找和处理方式,物理结构直接影响外存访问效率。

4.1.5 文件存储空间的管理

本小节思维导图如下图所示: 思维导图 存储空间的划分与初始化 如图所示: 存储空间的划分与初始化

4.1.5.1 空闲表法

空闲表法

4.1.5.2 空闲链表法

空闲链表法

4.1.5.3 位示图法

4.1.5.4 成组链接法

空闲表法和空闲链表法均不适用于大型文件系统,为此,Unix 融合了以上两种方法的思想,采用了成组链接法。 成组链接法的基本概念 示意如图所示: 用每组的第一个盘块做索引块: 基本概念 如何进行分配 如图所示: 分配一个磁盘块: 分配一个磁盘块 分配一百个磁盘块: 分配一百个磁盘块 如何进行回收: 如何进行回收

4.1.6 文件的几种基本操作

本小节思维导图如图所示: 思维导图

4.1.6.1 创建文件

创建文件

4.1.6.2 删除文件

删除文件

4.1.6.3 打开文件

从目录表中复制到内存的 FCB 应该只是复制的关键信息,不是整个复制。 打开文件

4.1.6.4 关闭文件

关闭文件

4.1.6.5 读文件

读文件

4.1.6.6 写文件

写文件

4.1.7 文件共享

本小节思维导图如图所示: 思维导图

4.1.7.1 硬链接

硬链接

4.1.7.2 软连接

软连接

4.1.8 文件保护

口令保护口令保护 加密保护加密保护 访问控制访问控制

4.2 文件系统

4.2.1 文件系统结构

文件系统结构构如下图所示: 文件系统机构 用一个例子来辅助记忆: 例子

4.2.2 文件系统布局

新磁盘首先要进行 格式化,如图所示: 格式化 而前面提过的打开文件表在整个文件布局中的这个位置: 文件系统布局

4.2.3 虚拟文件系统

虚拟文件系统概念如下图所示: 虚拟文件系统概念 虚拟文件系统概念 关于一个新文件系统,如要进行要 挂载 ,具体要先做下面这些事: 文件系统挂载

总是在探索未知