从 01 开始 从 01 开始
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档

晓林

程序猿,自由职业者,博主,英语爱好者,健身达人
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档
  • 计算机简史

  • 数字电路

  • 计算机组成原理

  • 操作系统

    • 我的操作系统学习笔记

    • 我的操作系统实验笔记

    • 操作系统网课-王道考研

      • 0_课程白嫖指南
      • 1_1_操作系统的概念(定义)、功能和目标
      • 1_2_操作系统的特征
      • 1_3_操作系统的发展与分类
      • 1_4_操作系统的运行机制与体系结构
      • 1_5_中断和异常
      • 2_1_6_系统调用
      • 2_1_1_进程的定义、组成、组织方式、特征
      • 2_1_2_进程的状态与转换
      • 2_1_3_进程控制
      • 2_1_4_进程通信
      • 2_1_5_线程概念和多线程模型
      • 2_2_1_处理机调度的概念、层次
      • 2_2_2_进程调度的时机、切换与过程、方式
      • 2_2_3_调度算法的评价指标
      • 2_2_4_FCFS、SJF、HRRN调度算法
      • 2_2_5_调度算法:时间片轮转、优先级、多级反馈队列
      • 2_3_1_进程同步、进程互斥
      • 2_3_2_进程互斥的软件实现方法
      • 2_3_3_进程互斥的硬件实现方法
      • 2_3_4_信号量机制
      • 2_3_5_用信号量实现进程互斥、同步、前驱关系
      • 2_3_6_生产者-消费者问题
      • 2_3_7_多生产者-多消费者问题
      • 2_3_8_吸烟者问题
      • 2_3_9_读者-写者问题
      • 2_3_10_哲学家进餐问题
      • 2_3_11_管程
      • 2_4_1_死锁的概念
      • 2_4_2_死锁的处理策略—预防死锁
      • 2_4_3_死锁的处理策略—避免死锁
      • 2_4_4_死锁的处理策略—检测和解除
      • 3_1_1_内存的基础知识
      • 3_1_2_内存管理的概念
      • 3_1_3_覆盖与交换
      • 3_1_4_连续分配管理方式
      • 3_1_5_动态分区分配算法
      • 3_1_6_基本分页存储管理的基本概念
      • 3_1_7_基本地址变换机构
      • 3_1_8_具有快表的地址变换机构
      • 3_1_9_两级页表
      • 43_3_1_10_基本分段存储管理方式
      • 3_1_11_段页式管理方式
      • 3_2_1_虚拟内存的基本概念
      • 3_2_2_请求分页管理方式
      • 3_2_3_页面置换算法
      • 3_2_4_页面分配策略
      • 4_1_1_初识文件管理
      • 4_1_2_文件的逻辑结构
      • 4_1_3_文件目录
      • 4_1_4_文件的物理结构(上)
      • 4_1_4_文件的物理结构(下)
      • 54_4_1_5_文件存储空间管理
      • 4_1_6_文件的基本操作
      • 4_1_7_文件共享
      • 4_1_8_文件保护
      • 4_1_9_文件系统的层次结构
        • 层次结构
        • 小结
      • 4_2_1_磁盘的结构
      • 4_2_2_磁盘调度算法
      • 4_2_3_减少磁盘延迟时间的方法
      • 4_2_4_磁盘的管理
      • 5_1.2_I-O 控制器
      • 5_1.3_I-O 控制方式
      • 65_5_1_1_I-O 设备的概念和分类
      • 5_1_4_I-O 软件层次结构
      • 5_1_5_I-O 核心子系统
      • 5_1_6_假脱机技术
      • 5_1_7_设备的分配与回收
      • 5_1_8_缓冲区管理
  • Linux

  • 计算机网络

  • 数据库

  • 编程工具

  • 装机

  • 计算机基础
  • 操作系统
  • 操作系统网课-王道考研
2023-05-15
目录

419_文件系统的层次结构

# 4.1_9_文件系统的层次结构

‍各位同学大家好。‍‍在这个小节中我们会学习文件系统的层次结构,那文件系统从上至下可以分为这样的一些层次。‍‍

‍

# 层次结构

我们首先来看最上面一层用户接口,它是最接近用户和应用程序的一个层次,因此用户接口这一层,‍‍它最主要要实现的功能就是要向上层提供‍‍一些简单易用的功能接口,并且要负责处理用户和应用程序提出的这些系统调用请求,就是咱们之前介绍过的 read‍‍ right open close 等等这一系列的系统调用。所以其实用户接口这一层所要做的事情,就是咱们之前‍‍在文件的基本操作小节当中介绍的那些东西。

一般来说用户在访问一个文件的时候,都是先提供一个文件的路径,‍‍所以文件目录系统这个层次就需要通过用户提供的路径‍‍来一层一层的找到这个文件对应的 fcb,也就是完成一些查询目录等等一系列的工作。‍‍所有的和目录还有目录项相关的管理工作都是在文件目录系统‍‍这个层次来完成的,比如说管理活跃的文件目录表,还有管理打开文件表等等。‍‍因为其实打开一个文件,无非就是把那个文件对应的目录项复制到打开文件表当中,‍‍所以管理打开文件表,也应该属于文件的目录系统这个层次应该处理的事情。‍‍

找到了文件对应的 fcb 之后接下来是不是就可以直接访问文件了?其实不然为了保证文件数据的安全,还需要再验证一下这个用户是否拥有‍‍他所提出的那种访问权限。‍‍所以存取控制模块这个层次主要要完成的就是文件保护相关的功能。‍‍

在确定了用户对文件的访问权限之后,接下来的层次他会负责把用户提供的‍‍记录号转换成记录存放的一个逻辑地址,这个文件信息缓冲区是用来干嘛的呢?‍‍还记不记得咱们在之前讲文件的逻辑结构的时候,讲过一种逻辑结构叫做索引文件,‍‍如果采用的是索引文件这种逻辑结构的话,那么会为文件当中的各个记录建立一个索引表,‍‍那么为了查询到这些记录对应的逻辑地址就需要查询索引表,‍‍而在查询文件的索引表之前,就需要先把索引表调入到内存的‍‍文件信息缓冲区当中,所以这是文件信息缓冲区的一个功能。‍‍

当找到了记录对应的逻辑地址之后,‍‍接下来一步就是需要把这个逻辑地址转换成实际的物理地址。‍‍

如果说此时是往这个文件里‍‍再添加或者删除一些记录的话,那显然就有可能需要为这个文件新分配一些物理块,‍‍或者如果是删除一些记录的话,有可能需要回收一些文件本来占用的物理块,‍‍这是辅助分配模块所需要做的事情,也就是需要负责文件存储空间的管理,‍‍负责分配和回收存储空间。‍‍

咱们之前提到的所有的这一些准备,‍‍最后都是为了来操作外存,或者说磁盘上的一些数据,所以最后是需要由设备管理模块‍‍来负责和设备直接进行交互,因此设备管理模块也是最接近硬件的一个层次。‍‍那么所有的和硬件相关的一些管理工作,像分配设备、缓冲区、磁盘调度、启动磁盘、释放设备等等这些操作,‍‍都是要由设备管理模块来负责的,所以整个文件系统从上至下就分为了这样的一些层次。‍‍

​

# 小结

  • 第一层用户接口这个层次需要做的事情,其实就是咱们在文件的基本操作小节当中介绍的那些内容,
  • 而文件目录系统‍‍需要做的事情,其实就是咱们在文件目录小节介绍的那一系列内容,‍‍
  • 而存取控制模块需要做的事情是咱们在文件保护小节所介绍的内容,‍‍
  • 逻辑文件系统和文件信息缓冲区这个层次需要做的事情,是咱们在文件的逻辑结构小节介绍的内容
  • 物理文件系统所需要做的事情是咱们在文件的物理结构小节所介绍的那些事情。
  • 而辅助分配模块所需要完成的这些工作,是咱们在文件的存储空间管理‍‍小节所介绍的那些内容。‍‍
  • 而设备管理模块所需要做的事情是咱们在之后磁盘管理相关的那些小节当中会介绍的内容。‍‍

同学们需要记住这些层次结构,不过其实并不需要死记硬背,我们只需要用一个例子来辅助记忆就可以了。‍‍

  • 假设此时某个用户要请求删除学生信息 Excel 表里的最后的 100 个记录,‍‍这件事情怎么完成?
  • 首先用户肯定是需要通过操作系统提供的接口来发出这个请求,‍‍所以这儿就用到了第一层,也就是用户接口。‍‍
  • 第二,‍‍由于用户在操作文件的时候提供的是文件的存放路径信息,‍‍所以接下来需要一层一层的查找目录,找到对应的目录项,这就用到了第二层的功能文件目录系统。‍‍
  • 接下来再找到了这个文件对应的 fcb 或者是索引节点之后,‍‍操作系统还需要验证用户对这个文件是否有删除记录这种操作的权限,‍‍这个事情就需要由第三个层次存取控制模块或者叫存取控制验证层来负责完成。‍‍
  • 第四,‍‍在确定了用户有这种操作的权限之后,需要把用户提供的记录号‍‍把它转变为对应的逻辑地址,‍‍这就需要第四个层次的帮助,就是逻辑文件系统与文件信息缓冲区
  • 在这个层次得到了这些记录对应的逻辑地址之后,接下来就需要把这些逻辑地址,转换成实际的物理地址,‍‍这就需要下面一层物理文件系统的帮助。‍‍
  • 只要我们知道了这些记录的物理地址,我们就可以做到删除这些记录这件事情,在删除这些记录的时候,‍‍最后必定肯定还是要和磁盘设备打交道,所以这就需要设备管理程序模块的帮助。‍‍
  • 最后如果这些记录删除了之后,出现了一些空闲的磁盘块,‍‍那么这些磁盘块就需要进行一个回收的处理,这就需要辅助分配模块的帮助。‍‍

​

所以我们可以用这样的一个例子来辅助记忆整个文件系统的层次结构。咱们的王道书上也给出了另外一种分析方式,‍‍那种分析方式其实也是很好的,大家也可以再回归课本再看一下 ‍

上次更新: 2025/5/5 17:15:09
4_1_8_文件保护
4_2_1_磁盘的结构

← 4_1_8_文件保护 4_2_1_磁盘的结构→

最近更新
01
语雀文档一键下载至本地教程
07-04
02
要成功,就不要低估环境对你的影响
07-03
03
血泪教训:电子设备要定期开机
07-02
更多文章>
Theme by Vdoing | Copyright © 2022-2025 | 粤 ICP 备 2022067627 号 -1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式