9.1 文件系统概念
文件时计算机信息存取的一种重要组织形式. 文件由若干信息项有序构成. 信息项可以是字节,也可以是结构化数据.
用户通过读写指针来存取文件的信息项.文件具有文件名.用户通过文件名存取文件.
文件分类
标准:文件的用途
- 系统文件: 包括OS的可执行程序和数据文件,不对用户开放,仅供系统使用
- 库文件: 为用户提供的各种标准函数库和实用程序等.用户只能使用这些文件,而无权对其修改
- 用户文件: 用户创建的文件,如用户可执行程序,源程序,数据文件等.文件的使用和修改权属于用户
标准: 文件的操作权限
- 只读文件
- 读写文件
- 不保护文件
标准:文件的性质
- 普通文件: 指一般的用户文件或系统文件
- 目录文件: 记录目录里面文件列表信息
- 设备文件: 把设备作为文件管理和使用
文件属性
指定文件的类型,操作特性和存取保护等一组信息,文件属性存放在文件所在目录的目录文件中. MS-DOS系统中,文件属性占目录项的一个字节
文件系统
- 定义:负责管理文件的机构称为文件系统
- 功能:负责文件的创立,撤销,读写,修改,复制和存取控制等,并管理存放文件的存储设备
- 文件系统的目标是让用户以文件名来存取文件
文件结构
逻辑结构
- 为用户提供逻辑结构清晰,使用方便的文件
- 强调文件信息项的构成方式和用户的存取方式
物理结构
- 文件在存储设备上的存储结构
- 强调合理利用存储空间,缩短I/O存取时间
文件的存取方式
- 顺序存取
- 随机存取
9.2 文件物理结构
概念
- 文件物理结构是指文件在存储设备上的存储方式
- 强调强调合理利用存储空间,缩短I/O存取时间
类型
- 连续文件
- 索引结构
- 串联文件
连续文件
- 文件按照逻辑块的顺序存放在硬盘连续的物理存储块中
- 文件目录记录文件长度(块数)和第一个存储块的块号
特点
文件建立时给出文件最大长度并登记文件起始位置
优点
- 简单
- 支持顺序存取和随机存取
- 顺序存取速度快:所需磁盘寻道次数和寻道时间最少
缺点
- 文件不易动态增长(预留空间:浪费;重新分配和移动)
- 不利于文件插入和删除
- 外部碎片问题
索引文件
概念
- 文件存放在不连续的存储块中
- 建立索引表记录文件逻辑块和物理存储块的对应关系
- 索引表单独放在存储块中
特点
- 文件=索引区+数据区
- 先访问索引,再访问数据
- 支持顺序存取和随机存取
- 支持文件动态增长,插入,删除
串联文件
概念
文件存放在不连续的存储块中.每个存储块有一个指针(next),指向文件下一个存储块. 文件目录:指明文件名和第一个存储块的块号
特点
- 适用于顺序存取,随机存取较为困难
- 提高了磁盘空间利用率,不存在外部碎片问题
- 有利于文件动态扩充,插入和删除
缺点
- 存取速度慢,不适于随机存取
- 可靠性问题: 若next指针出错,则文件访问失败
- next指针占用一定的空间
串联文件的应用:FAT文件系统
9.3 FAT文件系统
FAT: File Allocation Table, 有FAT12, FAT16, FAT32
文件分配表
文件访问过程
- 访问文件目录: 找0块的块号i
- 访问FAT找下一块号,FAT(i)
- FAT(i)=FFFF文件结束
文件分配表的缺点
- 读文件时,先读FAT,影响使用效率
- FAT要占用存储空间(存储容量越大,存储块越多,FAT元素越多,且元素位宽越长,占用更多额外存储空间)
扇区
- 磁盘上最小可寻址存储单元(512字节)
簇(cluster)=存储块
- 设备的最小存取单元,固定数量的扇区
簇的例子
- 360KB磁盘: 簇=2个扇区(1024字节)
- 10MB硬盘: 簇=8个扇区(4096字节)
- 2GB硬盘: 簇=64个扇区簇(32KB)
FAT元素数目和簇的数目一样多
磁盘容量=FAT长度✖簇容量=FAT长度✖簇扇区数✖512字节
9.4 文件存储和目录
存储空间管理
功能: 记录磁盘使用情况,管理和分配,回收存储空间
记录磁盘空闲块的方法: 空闲文件目录,空闲块链,位示图
空闲文件目录
空闲文件: 把连续空间区看成一个特殊文件,由多个连续空闲块组成
空闲文件目录
- 所有空闲文件代表存储设备全部空闲空间
- 为空闲文件建立的专门目录:空闲文件目录
- 每个表项对应一个空闲文件,包括第一个空闲块号,空闲块个数等信息
空闲块链
- 把所有空闲块链接在一起
- 当申请者需要空闲块时,链头开始搜索所需空闲块
- 当回收空闲块时,把释放的空闲块逐个加载链尾
位示图
文件目录管理
文件名址录,记录文件名和存放地址的目录表
具有将文件名转换为外存物理地址的功能
文件属性也记录在目录中
目录文件
文件目录以文件形式存于外存,这个文件叫目录文件
Linux的文件目录是一个典型树形目录结构