Operating System 简明教程

Operating System - File System

File

文件是有名称的、相关信息的时间,记录在磁盘、磁带和光盘之类的二级存储设备上。一般来说,文件是比特、字节、行或记录的序列,其意义由文件的创建者和使用者定义。

File Structure

文件结构应遵照操作系统能够理解的所需格式。

  1. 文件根据其类型具有某种定义的结构。

  2. 文本文件是由组织成行的字符序列。

  3. 源文件是过程和函数的序列。

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

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

File Type

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

Ordinary files

  1. 这些文件包含用户信息。

  2. 它们可能具有文本、数据库或可执行程序。

  3. 用户可对这些文件执行各种操作,如添加、修改、删除,甚至是移除整个文件。

Directory files

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

Special files

  1. 这些文件也称为设备文件。

  2. 这些文件表示磁盘、终端、打印机、网络、磁带驱动器等物理设备。

这些文件有两种类型——

  1. Character special files − 数据以字符为单位处理,如终端或打印机中的数据。

  2. Block special files − 数据以块为单位处理,如磁盘和磁带中的数据。

File Access Mechanisms

文件访问机制指的是访问文件记录的方式。访问文件有几种方式——

  1. Sequential access

  2. Direct/Random access

  3. Indexed sequential access

Sequential access

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

Direct/Random access

  1. 随机访问文件组织提供直接访问记录的功能。

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

  3. 记录在文件中的顺序可以是不固定的,并且它们在存储介质上的位置也不必相邻。

Indexed sequential access

  1. 这种机制建立在顺序访问的基础之上。

  2. 为每个文件创建一个索引,其中包含指向各个块的指针。

  3. 按顺序搜索索引,并使用其指针直接访问文件。

Space Allocation

文件由操作系统分配磁盘空间。操作系统采用以下三种主要方式将磁盘空间分配给文件。

  1. Contiguous Allocation

  2. Linked Allocation

  3. Indexed Allocation

Contiguous Allocation

  1. 每个文件在磁盘上占据连续的地址空间。

  2. 分配的磁盘地址按线性顺序。

  3. Easy to implement.

  4. 这种分配技术的主要问题是产生外部碎片。

Linked Allocation

  1. 每个文件都包含指向磁盘块的链接列表。

  2. 目录包含指向文件第一个块的链接/指针。

  3. No external fragmentation

  4. 有效的用于顺序访问文件。

  5. 对于直接访问文件该方法效率低下。

Indexed Allocation

  1. 对相邻分配和链接分配问题提供了解决方案。

  2. 创建了一个索引块,其中包含指向文件的所有指针。

  3. 每个文件都有自己的索引块,其中存储文件占用的磁盘空间地址。

  4. 目录包含文件索引块的地址。