系统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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/126844.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity操作_Camera c#

观察场景中Main Camera 的清除背景Clear Flags 第一种:Skybox天空盒渲染 制作3D游戏使用 第二种:Solid Color 制作2D游戏 第三种:Depth only 多个摄像机叠加渲染 相对重点学会多个摄像机设置Depth only使…

10.07hw

int main() {string str;cout << "输入字符串:";getline(cin,str);int size str.size();int big 0;int small 0;int num 0;int space 0;int other 0;for(int i0;i<size;i){if(str[i]<Z&&str[i]>A){big;}else if(str[i]<z&&st…

YOLOv5入门实践(1)— 基础环境介绍及搭建

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。YOLOv5基础知识入门系列和YOLOv5源码中的参数超详细解析系列学习完成之后&#xff0c;接着就进入YOLOv5入门实践系列了。为了让大家能够清楚地了解如何用YOLOv5去进行实践&#xff0c;本篇文章就简单给大家介绍一下YOLOv5基…

Leetcode901-股票价格跨度

一、前言 本题基于leetcode901股票价格趋势这道题&#xff0c;说一下通过java解决的一些方法。并且解释一下笔者写这道题之前的想法和一些自己遇到的错误。需要注意的是&#xff0c;该题最多调用 next 方法 10^4 次,一般出现该提示说明需要注意时间复杂度。 二、解决思路 ①…

记录本地部署Stable-diffusion所依赖的repositories和一些插件

今天按照其他文章的步骤拉取好了https://github.com/AUTOMATIC1111/stable-diffusion-webui后&#xff0c;点击webui-user.bat后发现&#xff0c;repositories和models还得慢慢拉取&#xff0c;好吧&#xff0c;GitHub Desktop&#xff0c;启动&#xff01; BLIP: https://git…

【论文极速读】EMT——评估多模态LLM中的灾难性遗忘问题

【论文极速读】EMT——评估多模态LLM中的灾难性遗忘问题 FesianXu 20231001 at Baidu Search Team 前言 论文[1]报告了多模态LLM中遇到的灾难性遗忘问题&#xff0c;并且提出了一种评估其程度的方法EMT&#xff0c;本文简要介绍&#xff0c;希望对读者有所帮助。如有谬误请见谅…

从哈希表到红黑树:探讨 epoll 是如何管理事件的?

一、引言 在计算机领域&#xff0c;事件通知是一种重要的机制&#xff0c;用于监视和响应各种事件&#xff0c;例如网络连接、文件IO、定时器等。随着计算机应用变得越来越复杂&#xff0c;对于高性能事件通知机制的需求也越来越迫切。传统的事件通知机制可能存在效率低下的问…

[架构之路-232]:目标系统 - 纵向分层 - 操作系统 - 数据存储:文件系统存储方法汇总

目录 前言&#xff1a; 一、文件系统存储方法基本原理和常见应用案例&#xff1a; 二、Windows FAT文件系统 2.1 概述 三、Linux EXT文件系统 3.1 基本原理 3.2 索引节点表&#xff08;Inode Table&#xff09; 3.2.1 索引节点表层次结构 3.2.2 间接索引表的大小和表项…

Java卷上天,可以转行干什么?

小刚是某名企里的一位有5年经验的高级Java开发工程师&#xff0c;每天沉重的的工作让他疲惫不堪&#xff0c;让他萌生出想换工作的心理&#xff0c;但是转行其他工作他又不清楚该找什么样的工作 因为JAVA 这几年的更新实在是太太太……快了&#xff0c;JAVA 8 都还没用多久&am…

鄙视测试,理解测试,成为测试

首先&#xff0c;其实题主的问题还是很实诚的&#xff0c;我刚开始做测试的时候其实也是这个心态&#xff0c;想转开发&#xff0c;也学习了很多的语言&#xff0c;个人觉得这是职业危机感的表现&#xff0c;挺好的&#xff0c;也相信题主不管去做开发和测试都会去不断的学习和…

SAP从入门到放弃系列之QM目录类别、代码组、选择集维护

目录 一、概念相关内容1.1 目录类别1.2 代码组和代码1.3 选择集和选择集代码 二、系统操作相关内容 一、概念相关内容 1.1 目录类别 目录类别是对定性数据的一种归纳&#xff0c;描述了业务的主题。根据PA的教材中表述&#xff0c;目录类型 0 - 9 和 A - O 由 SAP 定义&#…

深入浅出的介绍一下虚拟机VMware Workstation——part1

目录 VMware Workstation说明VMware Workstation的主要特点VMware Workstation安装VMware Workstation卸载 VMware Workstation说明 1、 虚拟机的软件在市面上有很多&#xff0c;目前功能强大且比较主流的虚拟机软件首选VMware 2、VMware是一个虚拟PC的软件&#xff0c;可以在…