操作系统: 文件系统
- 文件是操作系统在外部持久性存储设备上存储信息的基本单位
- 文件的逻辑结构:
- 流式文件(无结构):在
OS中看作字节流或字符流,通常用于OS支持的文件系统中 - 记录式文件(有结构):由固定格式的记录组成,通常用于
DBMS中 记录的存储方式有:- 顺序逻辑结构:文件中的连续记录即为文件的内容
- 索引逻辑结构:用一个顺序文件作为索引文件,对记录进行索引
- 索引顺序逻辑结构:用一个顺序文件作为索引文件,对记录组进行索引;每个记录组内顺序查找
- 流式文件(无结构):在
- 文件的访问模式:
- 顺序访问:如编译器访问代码文件,磁带、磁盘均支持
- 直接访问(随机访问):可按地址直接访问文件内数据,磁盘支持
- 索引访问:
- 磁盘分区结构:
MBR(Master Boost Record,主引导记录)GPT(GUID Partition Table,全局唯一标识分区表)
- 文件系统:
FATNTFS(New Technology FS)EXT
- 文件的目录结构:文件/目录是按名访问的
- 一级目录结构:仅用一个线性表存储文件的属性,多个文件容易重名
- 二级目录结构:第一级为主文件目录(每个目录项为第二级目录的索引),第二级为用户的文件目录,用户仅能查看自己的文件目录 解决多个用户协作时文件的私有性问题和文件名混乱问题 但单个用户的文件仍容易重名、过多
- 树形目录结构:每个目录可包含多个子目录
- 非循环图目录结构:不同目录的目录项允许指向同一文件/目录,但整体目录结构无环
- 文件系统设计:
- 分区/目录/文件的存储(核心问题):
- 磁盘数据结构:保证文件系统数据在断点后仍完整保存
BCB(Boot Control Block,启动控制块):包含加载FS的代码- 分区控制块(例如
Superblock超级块):包含分区信息、文件系统的元信息 FCB(文件控制块):存储文件/目录的元信息- 文件的具体数据
- 内存数据结构:为了提速
- 文件系统加载表(
fstab):将超级块信息读入内存 - 目录缓存:将常用目录项读入内存,加快路径解析速度
- 全系统打开文件表
- 进程打开文件表
- 文件系统加载表(
- 磁盘数据结构:保证文件系统数据在断点后仍完整保存
- 目录实现:
- 分区/目录/文件的存储(核心问题):