一、文件系统
文件系统
文件系统是操作系统中负责管理和存储文件信息的模块。它提供了在存储设备上组织文件的方法和数据结构。
- 系统角度
①对存储设备的空间进行组织和分配
②负责文件检索、读写等操作
③目标:存取速度和存储空间效率 - 用户角度
①提供按名存取的文件访问机制
②提供了文件的组织管理
③目标:方便的文件存取机制
文件系统的层次架构
如下图,逻辑文件系统、文件组织模块、基本文件系统构成了文件系统。
I/O控制
- 设备驱动程序(Device Drivers)
- 中断
设备驱动程序
- 控制I/O设备运行
- 向硬件控制器发送专门控制命令
- 操作系统通过设备驱动程序控制设备
基本文件系统
物理块读写
向设备驱动程序发送控制命令
例如:read drive 1,cylinder 72,track 2,sector 10,into memory location 1060
文件组织模块
- 管理文件、逻辑块和物理块
- 把文件的逻辑地址转换为物理地址
- 管理空闲空间
- 为文件分配物理块
逻辑文件系统
- 管理文件系统中的元数据
除了文件数据外的所有结构数据 - 文件按名存取
- 文件目录组织管理
- 把文件名转换为文件ID,文件句柄
- 管理FCB
- 存储保护
文件系统实现
物理块(簇):一个或多个(2n)扇区组成,基本文件读写单位。
(物理)分区:磁盘分割成若干个独立的空间,每个空间称为分区
两大类分区:主分区和扩展分区;
主分区:能够安装操作系统的启动分区;
扩展分区:不能直接使用,必须分成若干逻辑分区。
卷(逻辑磁盘):磁盘上的逻辑分区,建立在物理分区上。
一般每个卷可以建立一个文件系统。
一个硬盘至少有一个主分区,最多4个,扩展分区可以没有,最多1个。
两种文件系统:
磁盘文件系统、内存文件系统。
磁盘文件系统
-
引导控制块
包含了系统引导操作系统的各种信息,只有安装操作系统的分区才有。
在Unix文件系统,UFS:引导块;
在Windows文件系统,NTFS:分区引导扇区。 -
分区控制块
包含分区信息,例如总的块数、空闲块数、块大小等信息;
UFS:超级块;
NTFS:主控文件表。 -
目录和FCB
-
用户文件
MBR(主引导记录)存储在硬盘的0柱面、0磁头、1扇区,存储主引导程序等信息,在计算机启动时运行。
分区表存储了硬盘的分区信息,在这个例子中,有4个分区,在UFS中,主分区的结构如图所示,在Windows的文件系统FAT中,主分区的文件系统结构如图所示。
内存文件系统
由于从磁盘检索和读取文件很耗时,需要在内存建立一个管理使用中的文件的文件系统,通过缓冲技术来提高文件访问的性能,这就是内存文件系统。
包括:
- 分区表:所有安装分区信息
- 目录缓冲结构:保存最近访问的目录信
息 - 系统打开文件表
- 进程打开文件表
文件操作需要用到内存文件系统;
目的:通过缓冲技术提高文件系统性能。
虚拟文件系统
目的:为了支持多个文件系统,引入虚拟文件系统(VFS),把多个文件系统整合成一个目录结构,为用户屏蔽了各个文件系统的差异。
- 提供了一种面向对象的方法来实现文件系统;
- 为不同类型的文件系统提供了接入VFS的接口;
- 为用户提供了统一的系统调用接口(API)。
文件系统接口(File system interface)
- 统一的应用程序访问文件的接口
- 如&