第七章 文件系统

文件系统基本概念

为了解决计算机中数据无法长期保存、共享困难等问题,人们提出了文件的概念,把数据组织成文件的形式,用文件作为数据的存储、访问单位。

  • 文件是一组带标识的、在逻辑上有完整意义的信息项的序列。信息项是构成文件内容的基本单位(字节/多字节)

  • 所有的 I/O 设备、文本等资源都可以看成文件

  • 典型的文件结构

    • 流式文件:构成文件的基本单位是字符。文件是字符的串构成的集合。
    • 记录式文件:文件由若干条记录组成,可以按照记录进行读写等操作
  • 文件系统的定义:操作系统中与文件管理有关的软件、文件与需要的数据结构的总称。

文件系统模型的三个层次

文件系统的接口

  • 命令行接口:用户(Shell)和文件系统交互的接口
  • 程序接口:用户程序与文件系统的接口,通过系统调用的形式获取文件系统的服务

对象操作管理的软件集合

  • 对文件存储空间的管理
  • 对文件目录的管理
  • 文件逻辑地址 → 物理地址
  • 文件读写管理
  • 文件共享与保护功能

对象及其属性

  • 文件:管理的直接对象
  • 目录:包含文件的指针,组织管理文件
  • 磁盘存储空间

文件系统的实现

文件编排的结构

  • 逻辑结构:文件组织,逻辑地址连续,但是实际上不连续
  • 物理结构:文件在存储介质上的位置,同一个文件可能物理地址不连续

连续结构

单个文件所占据的空间是先后连续的,即物理结构相邻

结构简单易实现,支持顺序和随机存取;但不利于文件长度的动态变化

串联结构

文件的信息存于若干块中,并且这些块不一定连续

每个物理块的最后一个字作为链接字,指向后继块的物理地址,直至指向 NULL 代表文件结束。

当访问文件块时需要遍历该文件的所有前驱块,通过链接字进行访问

空间利用率高,动态修改文件大小;随机存取效率低,通过指针链接易出问题

索引结构

  • 一个文件的信息存放在若干个不连续的物理块中。
  • 系统以文件为单位创建了专用数据结构:索引表,索引表就是磁盘块的地址数组,是逻辑块号和物理块号的对照表

文件若采用索引结构存储,则需要分索引区和数据区。索引区存放索引表,数据区存放数据文件本身。访问时:索引区查表 → 数据区获取磁盘块的信息

  • 顺序、随机存取效率高,也能满足地址动态地要求;但本身带来了空间(索引表结构占空间)和时间(访问索引表)的开销