1. 文件和文件系统

image.png

1.1 文件系统架构⭐

image.png

  • 设备驱动—Device IO layer(外设指磁盘,磁带等辅存设备)
  • 基本文件系统—Physical layer
  • 基本IO管理程序—Directory management layer
  • 逻辑IO—Logical layer

2. 文件组织和访问

image.png

文件组织 数据结构
堆 Pile image.png 优点 最简单,按照达到顺序被收集,记录的组成域可以不同,没有规范
缺点 堆文件没有结构,访问记录是需要穷举查找
顺序文件
image.png 优点 最常见,每条记录长度相同,且组成记录的域也是数量相同,长度固定
缺点 记录有规范,域的位置大小都已知,只需要保存域的值,访问记录还是需要使用顺序查找
索引顺序文件
image.png 优点 保持了顺序文件的特点,增加了索引和溢出文件
缺点 基于文件的域进行处理,无法使用其他属性查找记录
索引文件 image.png
- 完全索引类似索引顺序方式
- 部分索引运行使用定义的属性进行查找
直接/散列文件 允许直接访问磁盘中任何一个地址已知块

3. 记录组块

image.png

image.png.

记录组块 如上图所示,记录是访问结构化文件的逻辑单元,而内存中的块是与辅存IO交互的基本单位,因此记录必须组织成块
定长 记录定长,且若干完整记录在一块,因此块内会产生内部碎片
image.png
变长跨越式 使用变长记录,使得块中无剩余空间,但有些记录会跨块,使用指针连接
image.png
变长非跨越式 使用变长记录,但不允许跨块,因此还会有内部碎片
image.png

4. 辅存管理

image.png

4.1 文件空间分配:

文件空间分配时有三个问题:

  • 是否一次分配空间
  • 空间分配多少
  • 如何追踪分配给文件的分区

对应解决:

分配策略
- 预分配:开始就声明文件大小,一次就分配完成
- 动态分配:有需要时分配
分区大小
- 动态的大规模分区:性能好又避免浪费
- 以块为单位:灵活性强,但需要的FAT更大
如何追踪 使用文件分配表FAT来管理

4.2 文件分配方式

连续 文件创建时分配一组连续的块,采用基于长度可变分区的预分配策略
image.png
链式 基于单个块的动态分配,适合顺序文件,局部性原理不再适用,可周期性合并
image.png
索引 每个文件在FAT中有一级索引,文件每个分区在索引中有一个表项,文件的索引单独保存在一块中
  1. 既可以基于分区,也可以基于块,需要定期整理<br />![image.png](https://cdn.nlark.com/yuque/0/2020/png/670787/1579338338305-744a43e3-eace-4413-9cef-c01aa9e2745f.png#align=left&display=inline&height=199&name=image.png&originHeight=347&originWidth=852&size=324700&status=done&style=none&width=487) |

4.3 卷

(Volumns)

image.png