• 系统03:15min导图复习 文件管理


    🐳前言

    图源:文心一格

     考研笔记整理,纯复习向,思维导图基本就是全部内容了,不会涉及较深的知识点~~🥝🥝

    • 第1版:查资料、画思维导图~🧩🧩

    编辑: 梅头脑🌸

    参考用书:王道考研《2024年 操作系统考研复习指导》

    参考视频:4.1_1_初识文件管理_哔哩哔哩_bilibili


    🦮思维导图 

    • 🌸思维导图为整理王道教材操作系统第4章文件管理,如果看不清的话,可以试试存到本地然后放大~
    • 🌸博文后面会以大纲的形式复述一遍,面向复习,不会写得很详细,且可能有误;如果想仔细了解知识点,或许可以考虑以下两种方式~
      • 王道咸鱼老师的视频:4.1_1_初识文件管理_哔哩哔哩_bilibili
      • 较为重要的内容有从网络找相关配图并给出原文链接,点击配图的链接可以传送到各位大佬博文,也很适合快速复习~

    📇目录

    🐳前言

    🦮思维导图 

    📇目录

    🐳文件管理

    🐋文件系统基础

    🐋文件逻辑结构

    🐋文件物理结构

    🐋文件存储空间管理【空闲块】

    🐋目录

    🐋文件系统

    🐋计算

    🐚混合索引分配

    🐚读页访盘次数

    🐚减少访盘次数

    🔚结语


    🐳文件管理

    • 🐋文件系统基础

      • 基本概念

        • 概念:文件是以硬件为载体的存储在计算机上的信息集合
          • 计算机在实现资源的分配和调度时,以进程为基本单位
          • 计算机在用户进行的输入、输出中,以文件为基本单位
        • 组成
          • 数据项:文件系统中最低级的数据组织形式
          • 记录:一组相关的数据项的集合,用于描述一个对象在某方面的属性
          • 文件:创建者所定义的、具有文件名的一组相关元素的集合
      • 文件控制块【FCB】

        • 信息
          • 基本信息:如文件名、文件的物理位置、文件的逻辑结构、文件的物理结构
          • 存取控制信息:如文件主的存取权限、核准用户的存取权限以及一般用户的存取权限
          • 使用信息:如文件的创建时间、上次修改时间等
        • 目录文件
          • 目录项:创建文件时,系统将分配一个文件控制块【FCB】并存放在文件目录中,成为目录项
          • 目录文件存放的信息:子目录文件、数据文件的目录项

          

        图源:操作系统&文件管理之FCB_文件fcb-CSDN博客

      • 文件索引节点【inode】

        • 描述:有的系统【如UNIX】采用了文件名和文件描述信息分开的方法,使文件描述信息单独形成一个成为索引节点的结构
        • 目录:在文件目录中的每个目录仅由文件名和指向该文件所对应的i节点的指针构成
        • 磁盘索引节点:存放在磁盘上的索引结点,每个文件有一个唯一的磁盘索引结点
        • 内存索引节点:存放在内存中的索引结点,当文件被打开时,将相应的索引节点从磁盘复制到内存中

          

        图源:文件系统 | 文件的物理结构 - 知乎

      • 文件的操作 | 用户接口

        • 文件的基本操作:创建文件、写文件、读文件、重新定位文件、删除文件、截断文件
        • 文件的打开与关闭
          • 打开
            • 单个文件打开:调用open根据文件名搜索目录,将指明文件的属性从外存复制到内存打开文件表的一个表目中,并将该表目的编号返回给用户
            • 多个文件打开:通常采用两级表,整个系统表【包含FCB的副本和其他信息】和每个进程表【打开的所有文件,包含指向系统表中适当条目的指针】
          • 关闭
            • 系统打开表为每个文件关联一个打开计数器【open count】,每次关闭使count递减,计数器为0时,可从系统打开文件表删除相应条目
          • 打开文件关联信息:文件指针、文件打开计数、文件磁盘位置、访问权限
      • 文件的保护

        • 口令保护【防止文件被窃取】:用户在建立一个文件时提供一个口令,系统建立FCB时附上相应口令
        • 加密保护【防止文件被窃取】:用户对文件进行加密,文件被访问时需要使用秘钥
        • 访问控制【对文件的访问方式】:使用精简访问控制列表【拥有者、组、其它】,根据用户类型进行控制,灵活性很高,必须由系统实现
    • 🐋文件逻辑结构

      • 概念:从用户观点出发看到的文件的组织形式,与存储介质特性无关

      • 结构
        • 无结构文件【流式文件】
          • 概念:一系列二进制或字符流组成
          • 访问:穷举搜索
          • 适用:基本信息单位操作不多的文件【例,txt、源程序文件】
        • 有结构文件【记录式文件】
          • 概念:文件由若干个相似的记录组成【例,数据库】
          • 记录组织形式
            • 顺序文件
              • 概念:记录一个接一个地顺序排列,可以顺序存储或以链表形式存储
              • 适用:读或写大批记录的效率较高、对于顺序存储设备【如磁带】只有顺序文件才能被存储
            • 索引文件
              • 定长记录文件:可按 “记录地址=首地址+记录长度x条数”
              • 非定长记录文件:必须顺序查找前i-1条记录
              • 特点:提高了存取速度,但配置索引表增加了存储空间
            • 索引顺序文件
              • 概念:为顺序文件建立一张索引表,查找记录时,通过索引表找到所在的组,然后在组内顺序查找
              • 特点:提高了存取速度,但配置索引表增加了存储空间
              • 查找次数
                • 最理想状态:N条记录的顺序文件,记录分为组,每组 条记录
                • 查找次数:近似,或严格
            • 散列文件
              • 概念:通过散列函数转换的键值直接决定记录的物理地址
              • 特点:有很高的存取速度,但是会引起冲突,即不同关键字的散列函数值相同

              

            图源:文件的逻辑结构_蜗牛_Chenpangzi的博客-CSDN博客

    • 🐋文件物理结构

      • 概念:研究文件的实现,即文件数据在物理存储设备上是如何分布和组织的
      • 文件的分配方式【非空闲块】
        • 连续分配
          • 描述:每个文件在磁盘上占有一组连续的块
          • 插入记录访问磁盘次数 = 移动块次数x2(读写访存2次) + 1(写入块访存1次)
          • 优点:支持顺序访问与随机访问,实现简单、存取速度快
          • 缺点:插入、删除较为复杂,且经常存取会增加外部碎片;文件不宜动态增加
          • 适用:存储长度固定或者是较大的文件,例如视频文件

          图源:2021-10-24 文件的物理结构-CSDN博客

        • 链接分配
          • 描述:离散分配,笑出了磁盘的外部碎片,提高了磁盘的利用率
          • 隐式链接
            • 描述:目录项中含有文件第一块和最后一块的指针,每个文件对应一个磁盘块的链表,每个盘块含有指向下一个盘块的指针
            • 插入记录访问磁盘次数 = 移动块次数x1(读访存2次) + 2(写入块并修改指针访存2次)
            • 文件最大访问长度 = 地址最大长度 x 单位地址大小 = 2^(指针大小 bit) x (文件块大小 - 指针大小)
            • 缺点:只适合顺序访问,不适合直接【随机】存取,稳定性很差
            • 改善:将几个盘块构成簇,减少查询时间
          • 显示链接
            • 描述:把用于链接文件各物理块的指针,从每个物理块的末尾提取出来,显式地存放在内存的文件分配表【FAT】中
            • 特点:系统启动时就会读入内存,显著提高了检索速度,减少了访问磁盘的次数

            

          图源:4.1.4 OS之文件的物理结构。-CSDN博客

        • 索引分配
          • 描述:把每个文件所有的盘块号都集中在一起构成索引块(表)
          • 优点:支持直接访问,且没有外部碎片的问题
          • 缺点:由于索引块的分配,增加了系统存储空间的开销
          • 索引块大小
            • 链接方案:为了支持大文件,可以将多个索引块连接起来
            • 多层索引:通过第一级的索引块指向一组第二级的索引块,第二级索引块再指向文件块
            • 混合索引:系统既采用直接地址,又采用单级索引分配或两级索引分配方式

            

          图源:一口气搞懂「文件系统」,就靠这 25 张图了 - 知乎

      • 🐋文件存储空间管理【空闲块】

        • 空闲表法
          • 描述:属于连续分配方式,为每个文件分配一块连续的存储空间
          • 分配:首次适应算法、最佳适应算法等

            

          图源:4.1.5 OS之文件管理空闲磁盘块的几种算法-CSDN博客

        • 空闲链表法
          • 空闲盘块链
            • 描述:将磁盘上的所有空闲空间以盘块为单位拉成一条链
            • 特点:分配和回收一个盘块的过程非常简单,但是需要重复多次,效率较低
          • 空闲盘区链
            • 描述:将磁盘上的所有空闲盘区【每个盘区可能包含若干盘块】拉成一条链
            • 特点:分配和回收的过程比较复杂,但效率通常较高,且空闲盘区链较短 

          图源:4.1.5 OS之文件管理空闲磁盘块的几种算法-CSDN博客

        • 位示图法
          • 描述:利用二进制的一位来表示磁盘中一个盘块的使用情况【1bit 管理 1个盘块】,是最省空间的管理方法
          • 备注:若题意无特殊说明,位示图法中的行和列都从1开始编号

           

           

          图源:操作系统总结之磁盘管理-CSDN博客

        • 成组链接法
          • 描述:把顺序的n个空闲盘块号保存在第一个成组链块中,其最后一个空闲盘块则用于保存另一组空闲盘块号

            

          图源:操作系统原理之成组链接法_成组链接法基本原理-CSDN博客

        • 备注:文件分配表FAT 可以记录各个块的先后链接关系,也可以标记空闲的磁盘块
    • 🐋目录

      • 基本概念:文件控制块FCB的有序集合称为文件目录,一个文件FCB就是一个文件目录项
      • 基本要求
        • 单用户:在用户所需要的文件名和文件之间提供一种映射,时间“按名存取”
        • 多用户:允许多个用户共享一个文件
      • 目录结构
        • 单级目录结构
          • 描述:整个文件系统中只建立一张目录表,每个文件占一个目录项
          • 特点:实现了案名存取,但存在查找速度慢、文件不允许重名、不便于文件共享等缺点,不适合多用户的操作系统
        • 两级目录结构
          • 描述:将文件目录分成主文件目录和用户文件目录
          • 特点:提高了检索速度,解决了多用户之间的文件重名文集,但是两级目录缺乏灵活性,不能对文件分类
        • 树形目录结构
          • 描述:两级目录加以推广
          • 特点:方便分类、层次清晰,主流操作系统采用的分配方式
        • 无环图目录结构
          • 描述:在树形目录结构的基础上增加了一些指向统一结点的有向边
          • 特点:便于文件共享,但是系统管理变得复杂

          

        图源:Linux树状目录结构简介

      • 目录操作
        • 搜索
        • 创建文件、删除文件
        • 创建目录、删除目录、移动目录、显示目录、修改目录
      • 目录实现
        • 线性列表 | 线性查找:实现简单,从当前目录查找,只要路径的一个分量名未找到,就停止查找;查找的结果是目录项
        • 哈希表 | 散列查找:查找迅速,插入与删除简单,但需要措施避免冲突
      • 文件共享
        • 基于索引结点的共享方式【硬链接】
          • 前置:链接共享同一个内存索引结点,文件描述符分别指向各自的用户打开文件表的一项
          • 链接:链接计数count,用于表示链接到内存索引的节点(即文件)上的用户目录项的个数
          • 删除:当count=0时,表示没有用户使用该文件,才会删除该文件
        • 利用符号链实现文件共享【软链接】
          • 前置:系统创建一个LINK类型的新文件【记录文件路径】
          • 链接:只有文件主才拥有指向其索引链接的指针
          • 删除:当文件主把一个共享文件删除后,Link链接依然可以存在,但访问文件会失败

          

        图源:linux文件系统(四)——软连接与硬连接-CSDN博客

    • 🐋文件系统

      • 文件系统结构
        • 用户/应用程序
        • 用户接口
        • 用户存取控制模块
        • 逻辑文件系统与文件信息缓冲区
        • 物理文件系统
          • 辅助分配模块
          • 设备管理模块
            •  设备

          

        图源:4.3_1_文件系统的层次结构_哔哩哔哩_bilibili

      • 文件系统布局
        • 在磁盘中的结构
          • 主引导记录MBR:位于磁盘的0号扇区,用来引导计算机
          • 分区表:每个分区的起始和结束地址
          • 分区
            • 活动分区
              • 引导块:MBR执行引导块中的程序后,该程序负责启动该分区中的操作系统
              • 超级块:包含文件系统的所有关键信息,其典型信息包括分区的块的数量、块的大小、空闲块的数量和指针,空闲的FCB数量和FCB指针等
              • 空闲空间管理:文件中空闲块的信息,可以使用位示图或指针链接的形式给出
              • i 结点:每个文件对应1个i 结点,说明了文件的方方面面
              • 根目录:存放文件系统树的根部
              • 文件和目录
            • 其它分区
          • 备注:这个仅仅是unix系统的分区,可能会在磁盘管理也提到~
          • 🌸计组+系统02:30min导图复习 存储系统_梅头脑_的博客-CSDN博客

            

          图源:4.3_2_文件系统的全局结构(布局)_哔哩哔哩_bilibili

        • 在内存中的结构
          • 安装表:包含每个已安装文件系统的有关信息
          • 目录结构的缓存:最近访问目录的信息;对安装分区的目录,它可以包括一个指向分区表的指针
          • 整个系统的打开文件表:包含打开文件的FCB副本及其他信息
          • 每个进程的打开文件表:包含一个指向整个系统的打开文件表中的适当条目的指针,以及其它信息
      • 虚拟文件系统

        • 用途:为用户程序提供了文件系统的统一接口,屏蔽了不同文件系统的差异和操作细节

          

        图源:Linux虚拟文件系统(VFS) (baidu.com)

    • 🐋计算

      • 🐚混合索引分配

        • 最大索引表项大小 = log 磁盘地址数 bit= log (系统空间的最大容量 / 磁盘块大小) bit
        • 最大索引表项数目 = 索引表区大小 / 索引表项大小
        • 单个文件最大长度1【地址空间】 = (直接索引地址+一级间接地址索引x单张页表地址项数+二级间接地址索引x单张页表地址项数)x 磁盘块大小
        • 单个文件最大长度2【地址标识】 = 磁盘地址数 x 磁盘块大小 = 2^(磁盘地址大小x8 bit) x 磁盘块大小
      • 🐚读页访盘次数

        • 根目录调入内存,至少0次【假设根目录常驻内存】
        • 路径的每个文件夹调入内存,每个文件至少1次【目标文件位于文件夹的第1个物理块】
        • 文件存储结构
          • 索引
            • 目标文件控制块FCB调入内存,1次
            • 文件FCB查找调入索引表地址,直接地址0次,间接地址根据索引表的存储结构不同次数不同,至少1次
            • 页面调入内存,1次
          • 链式:访盘次数 = 文件记录 / 单个物理块包含的记录,至少1次,即所查询物理块在文件记录首页
          • 顺序:访盘次数 = 1次,按照起始地址与偏移量可直接推算
      • 🐚减少访盘次数

        • FCB分解法描述
          • 描述:分解为文件名+inode指针【UNIX系统】,减少每个目录项的大小
          • 适用:但读入inode也需要一次磁盘I/O,因此每级适合目录较多的情况
        • 设置“当前目录”

    🔚结语

    😶‍🌫️博文到此结束,写得模糊或者有误之处,欢迎小伙伴留言讨论与批评,督促博主优化内容~

    🌟博文若有帮助,欢迎小伙伴动动可爱的小手默默给个赞支持一下,博主肝文的动力++~

    🌸博主可能会佛系更新思维导图,在这里:

    计算机组成原理_梅头脑_的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_42789937/category_12434026.html?spm=1001.2014.3001.5482操作系统_梅头脑_的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_42789937/category_12434025.html🌸博主也有整理数据结构学习笔记,在这里:

    数据结构_梅头脑_的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_42789937/category_12262100.html?spm=1001.2014.3001.5482

  • 相关阅读:
    【2022 小目标检测综述】Towards Large-Scale Small Object Detection: Survey and Benchmarks
    B树和B+树
    Nreal中国AR眼镜发布会:正式推出Nreal X和Nreal Air 售价2299元起
    Mock测试
    Docker:docker部署Nacos
    Powershell 实现禁用密码复杂性,空密码
    Vue中使用js-audio-recorder实现录音时提示:浏览器不支持getUserMedia!
    k8s在线安装harbor镜像仓库
    文件系统类数据读取与保存 MySQL_大数据培训
    Elasticsearch全文搜索技术之二kibana的简介和使用
  • 原文地址:https://blog.csdn.net/weixin_42789937/article/details/133638163