帮助管理外存
增删开关读写
是一个抽象概念
提供一层抽象接口,具体实现由操作系统管理。
虚拟内存也是由操作系统抽象,概念相似。
Field
基本数据单元
相关域的集合
Example: employee record
相似record的集合
文件的集合
The Heap/Serial/Pile files
按照时间方式直接存储无结构access by exhaustive (穷举)特点:
比较任意性,直接放record 久的删掉,会产生很多外部碎片Sequential File
特点:
每条record长度相同放入外部,通过指针索引此存储区域。
存在Overflow File 存储溢出文件,一定时间后进行整理。
用索引Key做一个index
有一个Field做Key Field,按照key进行排序有指针连在一起可以多级索引提速同样存在Overflow File
使用多个索引
速度快但是需要额外的存储储存索引
类似Index File,也存在Overflow File
一个目录本身是一个文件
主流实现
设计模式:合成模式
同步互斥-读写问题
记录分块
固定组块可变长度的非跨越式组块把文件所需要的全部空间一次性分配
典型缺陷:日志文件
每次分配一部分,在空间不足再分配新的。
记录的手段:FAT(File Allocation Table)查找文件都用了哪些块。
预分配的策略
文件创建时分配一组连续的块。
缺陷:为保证空间会存在碎片,需要定时进行整理工作。
每一个块抽象为链表中的节点。
每个文件在FAT中存在一个索引。
index block:包含存储块的指针。真正占据的块数 = 索引块 + 文件content块