Alex_McAvoy

想要成为渔夫的猎手

文件与文件系统

【概述】

在现代计算机中,需配置外存,将系统和用户所需的大量程序和数据以文件的形式存放在外存中,需要时再将他们调入内存

如果用户直接管理存放在外存上的文件,不仅要求用户熟悉外存特性,了解各种文件的属性,还要知道他们在外存上的位置,这显然是用户不能胜任的

为此,OS 中增加了文件管理功能,专门用于管理外存上的文件,主要有以下功能:

  • 存储空间管理:通过分配外存空间,来提高外存的利用率,需要在文件系统中设置相应数据结构来记录文件存储空间的使用情况,此外要有对存储空间分配和回收的功能
  • 目录管理:为文件建立目录项并进行有效组织,来提高文件检索速度
  • 文件读写管理与保护:用于实现文件的读写管理(设置读写指针)与文件的保护功能(提供有效的存取控制功能)

同时,在文件之间,操作系统采取目录结构进行组织,在文件内部,操作系统采取文件逻辑结构进行组织

【数据项、记录与文件】

文件系统管理是将其管理的程序和数据通过组织为一系列文件的方式实现的,文件是指具有文件名的若干相关元素的集合,元素通常是记录,而记录是一组有数据项的集合,因此可以将数据组成分为数据项、记录、文件三级

  • 数据项:描述对象某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位
  • 记录:一组相关数据项集合,描述对象某方面的属性
  • 关键字:一个记录中的一个或几个数据项的集合,用于唯一的标识一个记录
  • 文件:由创建者定义的、具有文件名的一组相关元素的集合
    • 有结构文件:若干相关记录组成
    • 无结构文件:字符流的形式

【文件名和类型】

在不同的系统中,对文件名的规定不同,其用于标识一个文件。

在文件名后,通常有一个扩展名(后缀名),用于指示文件的类型。

在大多数系统中,用圆点 . 将文件名和扩展名分离,例如:myfile.txt

为便于管理控制文件,将文件分为若干类型,不同的系统对文件的管理方式不同,常用的文件分类方法有:

  • 按用途:系统文件、用户文件、库文件
  • 按数据形式:源文件、目标文件、可执行文件
  • 按存取控制属性:只执行文件、只读文件、读写文件
  • 按组织和处理方式:普通文件、目录文件、特殊设备文件

【文件系统的层次结构】

文件系统的模型可分为三个层次:

  • 最高层:一般为命令接口系统调用,用于处理用户发出的系统调用请求,是文件系统提供给用户的接口
  • 中间层:从上到下分为文件目录系统存取验证模块逻辑文件系统与文件信息缓冲区三层,是文件管理的内核程序
  • 最底层:物理文件系统,将中间层最后一层提供的逻辑地址转换为实际物理地址

对于中间层来说,其是文件管理的内核程序,一般将其分为三个层次:

  • 文件目录系统:根据用户给出路径找到相应 FCB 或索引结点,所有与目录、目录项相关的工作场所都在本层完成
  • 存取验证模块: 用于完成文件保护相关功能
  • 逻辑文件系统与文件信息缓冲区:逻辑文件系统负责根据文件逻辑结构将逻辑记录转换为对应的逻辑地址,文件信息缓冲区负责将索引文件的索引表调入其中以进行查询

此外,在文件物理系统之下,设备之上,还存在两个模块:

  • 辅助分配模块:管理辅存空间,负责分配空闲空间与回收空间
  • 设备程序管理模块:直接与 I/O 设备交互,负责和硬件直接相关的设备管理工作,如分配设备、启动设备、磁盘调度等

感谢您对我的支持,让我继续努力分享有用的技术与知识点!