操作系统 - 文件系统


文件

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


文件结构

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

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

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

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

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

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


文件类型

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

普通文件

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

目录文件

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

特殊文件

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

这些文件有两种类型 −

  • 特殊字符文件 − 在终端或打印机的情况下,数据是逐字符处理的。

  • 屏蔽特殊文件 − 与磁盘和磁带一样,数据是按块处理的。


文件访问机制

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

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

顺序访问

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

直接/随机访问

  • 随机存取文件组织提供,直接存取记录。

  • 每条记录在文件中都有自己的地址,通过该地址可以直接读取或写入。

  • 记录在文件中不必按任何顺序排列,也不必位于存储介质上的相邻位置。

索引顺序访问

  • 这种机制建立在顺序访问的基础上。
  • 为每个文件创建一个索引,其中包含指向各个块的指针。
  • 按顺序搜索索引,并使用其指针直接访问文件。

空间分配

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

  • 连续分配
  • 链接分配
  • 索引分配

连续分配

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

链接分配

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

索引分配

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