操作系统: 文件系统

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