【OS】七、文件系统

1、文件系统基本概念

文件的概念

  • 文件是存储和管理数据的容器
  • 文件创建者所定义、具有文件名的一组相关元素的集合
    • 有结构:由若干个相关记录组成。
    • 无结构:字符流。

文件的属性

  • 类型
  • 长度
  • 物理位置
  • 建立时间

文件的类型

  • 用途
    • 系统文件
    • 用户文件
    • 库文件
  • 数据形式
    • 源文件
    • 目标文件
    • 可执行文件
  • 控制属性
    • 只执行文件
    • 只读文件
    • 读写文件
  • 组织形式
    • 普通文件
    • 目录文件
    • 特殊文件

文件系统概念

  • 操作系统中各类文件管理文件的软件,以及管理文件所涉及到的数据结构等信息

不是所有操作系统都有文件系统,少数实时操作系统就没有。

文件系统功能

  • 有效管理文件的存储空间
  • 管理文件目录
  • 完成文件读写
  • 实现文件共享和保护
  • 为用户提供接口

文件系统模型

管理对象及其属性

  • 文件
    • 文件管理的直接对象。
  • 目录
    • 方便文件存取和检索。
  • 磁盘
    • 管理以提高对文件的存取速度。

对象操纵和管理的软件集合

  • 文件系统的核心部分
    • 文件存储空间的管理。
    • 文件目录的管理。
    • 用于将文件的逻辑地址转化为物理地址
    • 文件读写的管理。
    • 对文件的共享和保护

文件系统的接口

  • 命令接口
    • 用户与文件系统交互的接口。
  • 程序接口
    • 用户程序与文件系统的接口。

2、文件的基本操作

文件操作概述

  • 文件的打开和关闭
    • 打开从外存拷贝到内存打开文件表的一个表项中,并将该表项编号返回
    • 关闭把该文件从打开文件表中的表目上删除
      123

3、文件系统目录管理

目录管理要求

  • 实现按名存取
  • 提高对目录的检索速度
  • 文件共享
  • 允许文件重名

文件控制块和索引节点

文件控制块FCB

  • 用于描述和控制文件的数据结构
信息内容
基本信息文件名、文件类型
地址信息卷、起始地址、文件长度
访问控制信息文件所有者、访问信息、合法操作
使用信息创建时间、创建者身份、当前状态、最近修改时间、最近访问时间

文件目录

  • 文件控制块的有序集合

目录内容的组织方式及分析

  • 两种组织方式
    • FCB存储全部目录内容
      • 太大
    • FCB存储部分目录信息
      • 存储文件名索引节点指针等。
      • 其余部分保存在索引节点
      • 打开文件时将索引节点从磁盘读到内存中。
  • 索引节点
    • 文件描述信息单独形成一个数据结构。
  • 每个文件都在磁盘上保存一个磁盘索引节点,当文件被打开时,文件的索引节点从磁盘读入内存,称为内存索引节点

目录结构

单级目录结构

  • 所有用户的全部文件目录保存在一张目录表中,每个文件的目录项占用一个表项
    单级
  • 优点
    • 简单且能实现目录管理的基本功能——按名存取
  • 缺点
    • 查找慢
    • 不重名
    • 不便于文件共享

两级目录结构

  • 主文件目录MFD、用户文件目录UFD
    二级
  • 优点
    • 一定程度解决了重名问题
    • 提高了文件目录检索效率
    • 简单的文件共享
  • 缺点
    • 不便于用户文件逻辑分类

树形(多级)结构目录

  • 主目录为目录,数据文件为树叶,其他的目录为树的节点
    多级
  • 系统中的文件都有唯一的路径名

目录操作

  • 创建
  • 删除
  • 改变
  • 移动
  • 链接
  • 查找

目录查询

线性检索法

  • 单级目录中,根据提供的文件名,用顺序查找法直接从文件目录中找到指明文件的目录项
  • 树形目录中,提供的文件名是由多个文件分量名组成的路径名,此时需对多级目录进行查找。
    线性

Hash方法

  • 课件没内容额

4、文件系统外存管理

有关问题

  • 如何划分磁盘空间?
  • 如何为一个已存在的文件增加存储空间?
  • 如何新建一个文件分配空间?
  • 什么数据结构记载分配到的数据块和空闲数据块?

组织方式

  • 主要目标
    • 有效利用外存空间。
    • 提高对文件的访问速度
    • 提高磁盘系统的可靠性
  • 组织方式
    • 连续组织
    • 链接组织
    • 索引组织

连续组织

  • 要求为每一个文件分配一组相邻的盘块,将逻辑文件中的数据顺序的存储到物理上邻接的各个磁盘块中
  • 优点
    • 顺序访问容易
    • 顺序访问快
  • 缺点
    • 需要连续的存储空间。
    • 事先得知道文件的长度。
      连续

链接组织

  • 通过在每个盘块上的链接指针,将同属于一个文件的离散盘块链接成一个链表,这样形成的物理文件称为链接文件
  • 优点
    • 消除了磁盘外部碎片。
    • 增删改容易
    • 适应文件动态增长。

隐式链接

  • 在文件目录的每个目录项中,都必须含有指向链接文件第一个盘块和最后一个盘块的指针
  • 每个盘块都有指向下一个盘块的指针
    yin
  • 缺点
    • 只适合顺序访问,对于随机访问是低效的。

显示链接

  • 用于链接文件各物理块的指针显示的存放在一张链接表
    显示

索引组织

单级索引组织

  • 每个文件分配一个索引块,把分配给文件的所有盘块号都记录在该索引块中,建立一个文件,只需要在目录项中加入指向该索引块的指针
    单级
  • 优点
    • 索引组织方式支持直接访问。
    • 基于数据块的分区能消除外部碎片。
  • 缺点
    • 大文件索引项多。
    • 花费较多的外存空间。

两级索引组织

两级

增量式索引

增量式

5、磁盘空闲空间管理

基本概念

  • 如何为新文件分配存储空间?
  • 存储空间的基本分配单位是磁盘块
  • 分配方法类似内存分配

管理方法概述

  • 空闲分区表
  • 空闲链表法
  • 位示图

空闲分区法

  • 属于连续分配方法,为每个文件分配一块连续的存储空间
    分区

空闲链表法

  • 所有空闲盘区拉成一条空闲链
    • 空闲盘块链
    • 空闲盘区链

空闲盘块链

  • 盘块为单位组成链。
  • 分配和回收盘块的过程简单。

空间盘区链

  • 所有盘区拉成一条链,每个盘区可包含若干个盘块。
  • 盘区有用于指示下一个空闲盘区的指针
    盘区

位示图(常考)

  • 磁盘上所有盘块都有一个二进制位与之对应
    位示图

盘块的分配

分配

盘块的回收

回收

优缺点

  • 容易找到连续的空闲分区
  • 很难一次性将位示图全部装入内存

成组链接法(常考)

  • 将磁盘空闲块分成若干组,每组用索引表表示
    成组链接

分配

  • 未到栈底:出栈,将栈顶盘块分配给用户。
  • 已到栈底盘块:先将栈底盘块出栈,然后将该盘块数据读到内存空闲盘块号栈中,再将栈底盘块分配出去。

回收

  • 栈未满:进栈,依次将回收盘块号压入栈中
  • 栈已满:先将栈内数据写入将回收的磁盘块中,将栈清空,再将将回收盘块号进栈。

优缺点

  • 优点
    • 无需占用额外的磁盘空间
    • 分配回收速度快
    • 大小磁盘均可采用
  • 缺点
    • 不适用于连续分配

习题

题目一


题目二

1

题目三


题目四



题目等

为什么引入缓冲区?

缓冲如何提高I/O速度

什么是虚拟设备?实现虚拟设备的相关技术?

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值