Skip to content

(十)操作系统-文件系统

Published: at 11:31:37

什么是文件系统

文件的类型

文件的类型涉及对文件的操作功能、访问方法和访问权利。

按用途分

  1. 系统文件——与操作系统本身有关的信息(程序或数据)组成的文件;
  2. 库文件——由系统提供给用户调用的各种标准过程、函数和应用程序等;
  3. 用户文件——由用户的信息(程序或数据)所组成的文件。

按文件中数据分

  1. 源文件——指源程序和数据,以及作为处理结果的输出数据的文件;
  2. 相对地址形式文件——由各种语言编译程序所输出的相对地址形式的程序文件;
  3. 可执行的目标文件——由连接装配程序连接后所生成的可执行的目标程序文件。

按操作保护分

  1. 只读文件——仅允许对其进行读操作的文件;
  2. 读写文件——有控制地允许不同用户对其进行读或写操作的文件;
  3. 不保护文件——没有任何访问限制。

文件目录

文件目录中存放着每个文件的有关信息,即每个文件在文件目录中都应该有一个表目;

目录结构

使用整体目录结构还是分体式目录结构?

采用分体式目录结构的好处

  1. 每个物理块中能存放更多目录表目,查询目录时命中率高,查询效率高;

  2. 便于文件的共享连接。

    1

是否使用层次的树形目录结构?

一级目录结构

把系统中的所有文件都建立在一张目录表中,整个目录组织是一个线性表,结构简单,建立或删除文件时,只需在目录表中增加或删除一个表目;

缺点:

  1. 文件多,文件目录表很大,查找扫描时间长,不方便用户查询;
  2. 不方便用户对文件的管理,要求系统中不能有同名文件,无法解决多用户环境下命 名冲突的问题。

主要用在单用户的操作系统中。

2

二级目录结构

多级目录结构

文件系统的实现

文件空间的分配和管理

静态分配、动态分配

分区大小

文件空间管理

文件分配方法

  1. 连续分配
  2. 链接分配
  3. 索引分配
  4. i节点

连续分配

文件被存放在辅存的连续存储区中;

优点

  1. 查找速度比其他方法快;
  2. 目录中关于文件物理存储区的信息简单,只需要起始块号和文件大小。

缺点

  1. 有碎片问题,需要定期进行存储空间的紧缩;
  2. 不适合文件随时间动态增长和收缩的情况,也不适合用户事先不知道文件大小的 应用情况。

链接分配

以扇区为单位的链接分配

以区段(或簇)为单位的链接分配

索引分配

链接文件的缺点

  1. 当要求随机访问文件上一个记录时,需要按链指针进行查找,十分缓慢;
  2. 链指针要占用盘块空间的几个字节,使得盘块的可用空间大小已不再是2的幂。

索引分配方法克服了链接文件分配方法的缺点;

系统在文件分配表FAT中为每一个文件分配一个表目,指出该文件的索引表所在物理块;

还可以支持索引分配和变长连续分配的结合方法,可以节省索引表空间,提高效率。

7

i节点

i节点中包含文件属性和该文件的盘块分配信息。

8

UNIX系统的目录实现

如果要访问文件/A/Tools,文件系统实现步骤如下:

  1. 按文件的路径名首先查找UNIX的根目录,根目录放在磁盘的固定盘块中,找出文件/A的i节点号是8;
  2. 从i节点表中找出/A的i节点,知道该目录文件放在88块中;
  3. 读入88块找到文件/A/Tools的i节点号是21;
  4. 从i节点表中找出/A/Tools的i节点,它指出文件在168块中;
  5. 读入168块。

9

磁盘空间管理

位示图(位图)

链接索引表方法(成组链接法)

使用若干个空闲物理块作为索引表块,来指出磁盘分区中所有的空闲物理块;

每个索引表块的第0个表目作为空闲物理块链的Next指针和链尾标志,Next指针指出下一个索引表块;

链表的头指针在超级块中;

文件释放空闲块时添加到链头指针指出的索引表块的尾,为文件分配空闲块时从链表头的索引块的尾开始分配。

10

例题

设某文件为链接文件,由5个逻辑记录组成,每个逻辑记录的大小与磁盘块大小相等,均为512字节,并依次存放在50、121、75、80、63号磁盘块上。若要存取文件的第1569逻辑字节处的信息,问要访问哪一个磁盘块?

解答:因为1569=512X3+33,所以要访问字节的逻辑记录号为3,对应的物理磁盘块号为80。故应访问第80号磁盘块。