操作系统 - 文件系统


文件

文件是记录在磁盘、磁带和光盘等辅助存储器上的相关信息的命名集合。一般来说,文件是位、字节、行或记录的序列,其含义由文件创建者和用户定义。

文件结构

文件结构应符合操作系统可以理解的所需格式。

  • 文件根据其类型具有一定的定义结构。

  • 文本文件是组织成行的字符序列。

  • 源文件是一系列过程和函数。

  • 目标文件是组织成机器可以理解的块的字节序列。

  • 当操作系统定义不同的文件结构时,它也包含支持这些文件结构的代码。Unix、MS-DOS支持最小数量的文件结构。

文件类型

文件类型是指操作系统区分不同类型文件的能力,例如文本文件、源文件和二进制文件等。许多操作系统支持多种类型的文件。MS-DOS 和 UNIX 等操作系统具有以下类型的文件 -

普通档案

  • 这些是包含用户信息的文件。
  • 这些可能有文本、数据库或可执行程序。
  • 用户可以对此类文件进行各种操作,例如添加、修改、删除甚至删除整个文件。

目录文件

  • 这些文件包含文件名列表以及与这些文件相关的其他信息。

特殊文件

  • 这些文件也称为设备文件。
  • 这些文件代表物理设备,如磁盘、终端、打印机、网络、磁带驱动器等。

这些文件有两种类型 -

  • 字符特殊文件- 数据按字符处理,就像终端或打印机一样。

  • 块特殊文件- 数据以块的形式处理,就像磁盘和磁带的情况一样。

文件访问机制

文件访问机制是指访问文件记录的方式。有多种方法可以访问文件 -

  • 顺序访问
  • 直接/随机访问
  • 索引顺序访问

顺序访问

顺序访问是按某种顺序访问记录,即文件中的信息按顺序处理,一条记录接一条记录。这种访问方式是最原始的一种。示例:编译器通常以这种方式访问​​文件。

直接/随机访问

  • 提供随机访问文件组织,直接访问记录。

  • 每条记录在文件上都有自己的地址,借助该地址可以直接访问该记录以进行读取或写入。

  • 记录在文件内不需要按任何顺序,并且它们不需要位于存储介质上的相邻位置。

索引顺序访问

  • 该机制是建立在顺序访问的基础上的。
  • 为每个文件创建一个索引,其中包含指向各个块的指针。
  • 索引是按顺序查找的,它的指针用来直接访问文件。

空间分配

文件由操作系统分配磁盘空间。操作系统部署以下三种主要方式来为文件分配磁盘空间。

  • 连续分配
  • 挂钩分配
  • 指数化分配

连续分配

  • 每个文件在磁盘上占用一个连续的地址空间。
  • 分配的磁盘地址是按线性顺序排列的。
  • 易于实施。
  • 外部碎片是此类分配技术的一个主要问题。

挂钩分配

  • 每个文件都带有磁盘块的链接列表。
  • 目录包含指向文件第一个块的链接/指针。
  • 无外部碎片
  • 有效地用于顺序访问文件。
  • 直接访问文件的情况下效率低下。

指数化分配

  • 提供连续和链接分配问题的解决方案。
  • 创建一个索引块,其中包含指向文件的所有指针。
  • 每个文件都有自己的索引块,存储该文件占用的磁盘空间的地址。
  • 目录包含文件索引块的地址。