1、文件系统基本概念
文件的概念
- 文件是存储和管理数据的容器。
- 文件是创建者所定义、具有文件名的一组相关元素的集合。
- 有结构:由若干个相关记录组成。
- 无结构:字符流。
文件的属性
- 类型
- 长度
- 物理位置
- 建立时间
文件的类型
- 按用途分
- 系统文件
- 用户文件
- 库文件
- 按数据形式分
- 源文件
- 目标文件
- 可执行文件
- 按控制属性分
- 只执行文件
- 只读文件
- 读写文件
- 按组织形式分
- 普通文件
- 目录文件
- 特殊文件
文件系统概念
- 操作系统中各类文件、管理文件的软件,以及管理文件所涉及到的数据结构等信息。
不是所有操作系统都有文件系统,少数实时操作系统就没有。
文件系统功能
- 有效管理文件的存储空间。
- 管理文件目录。
- 完成文件读写。
- 实现文件共享和保护。
- 为用户提供接口。
文件系统模型
管理对象及其属性
- 文件
- 文件管理的直接对象。
- 目录
- 方便文件存取和检索。
- 磁盘
- 管理以提高对文件的存取速度。
对象操纵和管理的软件集合
- 文件系统的核心部分
- 对文件存储空间的管理。
- 对文件目录的管理。
- 用于将文件的逻辑地址转化为物理地址。
- 对文件读写的管理。
- 对文件的共享和保护。
文件系统的接口
- 命令接口
- 用户与文件系统交互的接口。
- 程序接口
- 用户程序与文件系统的接口。
2、文件的基本操作
文件操作概述
- 文件的打开和关闭
- 打开:从外存拷贝到内存打开文件表的一个表项中,并将该表项编号返回。
- 关闭:把该文件从打开文件表中的表目上删除。
3、文件系统目录管理
目录管理要求
- 实现按名存取。
- 提高对目录的检索速度。
- 文件共享。
- 允许文件重名。
文件控制块和索引节点
文件控制块FCB
- 用于描述和控制文件的数据结构。
信息 | 内容 |
---|---|
基本信息 | 文件名、文件类型 |
地址信息 | 卷、起始地址、文件长度 |
访问控制信息 | 文件所有者、访问信息、合法操作 |
使用信息 | 创建时间、创建者身份、当前状态、最近修改时间、最近访问时间 |
文件目录
- 文件控制块的有序集合。
目录内容的组织方式及分析
- 两种组织方式
FCB
存储全部目录内容- 太大
FCB
存储部分目录信息- 存储文件名、索引节点指针等。
- 其余部分保存在索引节点。
- 打开文件时将索引节点从磁盘读到内存中。
- 索引节点
- 文件描述信息单独形成一个数据结构。
- 每个文件都在磁盘上保存一个磁盘索引节点,当文件被打开时,文件的索引节点从磁盘读入内存,称为内存索引节点。
目录结构
单级目录结构
- 所有用户的全部文件目录保存在一张目录表中,每个文件的目录项占用一个表项。
- 优点
- 简单且能实现目录管理的基本功能——按名存取。
- 缺点
- 查找慢
- 不重名
- 不便于文件共享
两级目录结构
- 主文件目录
MFD
、用户文件目录UFD
。
- 优点
- 一定程度解决了重名问题。
- 提高了文件目录检索效率。
- 简单的文件共享。
- 缺点
- 不便于用户文件逻辑分类。
树形(多级)结构目录
- 主目录为根目录,数据文件为树叶,其他的目录为树的节点。
- 系统中的文件都有唯一的路径名。
目录操作
- 创建
- 删除
- 改变
- 移动
- 链接
- 查找
目录查询
线性检索法
- 单级目录中,根据提供的文件名,用顺序查找法直接从文件目录中找到指明文件的目录项。
- 树形目录中,提供的文件名是由多个文件分量名组成的路径名,此时需对多级目录进行查找。
Hash方法
- 课件没内容额。
4、文件系统外存管理
有关问题
- 如何划分磁盘空间?
- 如何为一个已存在的文件增加存储空间?
- 如何新建一个文件分配空间?
- 什么数据结构记载分配到的数据块和空闲数据块?
组织方式
- 主要目标
- 有效利用外存空间。
- 提高对文件的访问速度。
- 提高磁盘系统的可靠性。
- 组织方式
- 连续组织
- 链接组织
- 索引组织
连续组织
- 要求为每一个文件分配一组相邻的盘块,将逻辑文件中的数据顺序的存储到物理上邻接的各个磁盘块中。
- 优点
- 顺序访问容易
- 顺序访问快
- 缺点
- 需要连续的存储空间。
- 事先得知道文件的长度。
链接组织
- 通过在每个盘块上的链接指针,将同属于一个文件的离散盘块链接成一个链表,这样形成的物理文件称为链接文件。
- 优点
- 消除了磁盘外部碎片。
- 增删改容易
- 适应文件动态增长。
隐式链接
- 在文件目录的每个目录项中,都必须含有指向链接文件第一个盘块和最后一个盘块的指针。
- 每个盘块都有指向下一个盘块的指针。
- 缺点
- 只适合顺序访问,对于随机访问是低效的。
显示链接
- 把用于链接文件各物理块的指针显示的存放在一张链接表中。
索引组织
单级索引组织
- 为每个文件分配一个索引块,把分配给文件的所有盘块号都记录在该索引块中,建立一个文件,只需要在目录项中加入指向该索引块的指针。
- 优点
- 索引组织方式支持直接访问。
- 基于数据块的分区能消除外部碎片。
- 缺点
- 大文件索引项多。
- 花费较多的外存空间。
两级索引组织
增量式索引
5、磁盘空闲空间管理
基本概念
- 如何为新文件分配存储空间?
- 存储空间的基本分配单位是磁盘块。
- 分配方法类似内存分配。
管理方法概述
- 空闲分区表
- 空闲链表法
- 位示图
空闲分区法
- 属于连续分配方法,为每个文件分配一块连续的存储空间。
空闲链表法
- 将所有空闲盘区拉成一条空闲链。
- 空闲盘块链
- 空闲盘区链
空闲盘块链
- 以盘块为单位组成链。
- 分配和回收盘块的过程简单。
空间盘区链
- 所有盘区拉成一条链,每个盘区可包含若干个盘块。
- 盘区有用于指示下一个空闲盘区的指针。
位示图(常考)
- 磁盘上所有盘块都有一个二进制位与之对应。
盘块的分配
盘块的回收
优缺点
- 容易找到连续的空闲分区。
- 很难一次性将位示图全部装入内存。
成组链接法(常考)
- 将磁盘空闲块分成若干组,每组用索引表表示。
分配
- 未到栈底:出栈,将栈顶盘块分配给用户。
- 已到栈底盘块:先将栈底盘块出栈,然后将该盘块数据读到内存空闲盘块号栈中,再将栈底盘块分配出去。
回收
- 栈未满:进栈,依次将回收盘块号压入栈中
- 栈已满:先将栈内数据写入将回收的磁盘块中,将栈清空,再将将回收盘块号进栈。
优缺点
- 优点
- 无需占用额外的磁盘空间
- 分配回收速度快
- 大小磁盘均可采用
- 缺点
- 不适用于连续分配
习题
题目一
题目二
题目三
题目四
题目等
为什么引入缓冲区?
缓冲如何提高I/O速度
什么是虚拟设备?实现虚拟设备的相关技术?