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

news2024/11/25 18:27:47

🐳前言

图源:文心一格

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

  • 第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.coloradmin.cn/o/1070959.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

layui laydate实现日期选择并禁用指定的时间

最终实现禁用2023-9-26这天的效果 官网地址 日期和时间组件文档 - layui.laydate 下面是实现的代码 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>layDate快速使用</title><link rel"stylesheet"…

IPSG技术和IP组播

1&#xff0c;IPSG技术概述 实验&#xff1a; DHCP snooping IPSG 拓扑&#xff1a; 需求&#xff1a; 1&#xff0c;实现PC1 和PC2 动态获取IP地址 2, 在SW2 配置DHCP snooping 实现DHCP 服务器的安全 3, 在 连接PC 1 和 PC2 的 接口上 做IPSG &#xff0c;防止终端…

AWD训练赛QWQ

使用D盾啥都没扫到&#xff0c;河马倒是扫了挺多东西&#xff0c;但是代码审计能力太差&#xff0c;不怎么看得懂 一般这里我们如果扫到那种很明显的一句话木马&#xff0c;直接删掉&#xff0c;爆出对手IP后尝试利用 代码审计能力不好&#xff0c;只能从网站页面入手 是一个登…

集合的基本运算

集合的运算等式&#xff1a; 常用的集合运算不等式&#xff1a; 、 试题 A&#xff0c;B&#xff0c;C是集合&#xff0c;证明&#xff1a;(A-B)-CA-(B∪C) 【答案】 设A、B、C是集合&#xff0c;证明 (A∪B)-C(A-C)∪(B-C)。 【答案】 已知A{1,2,3}&#xff0c;A-B{1,2}&…

【观察】天翼云政务大模型“慧泽”:推动政务服务再升级,加速智慧城市再进化...

进入2023年以来&#xff0c;AIGC的爆发式增长推动了全球步入一个全新时代——大模型时代&#xff0c;它不仅引发了AI产业的整体升级换代&#xff0c;同时大模型与行业和应用场景的深度融合&#xff0c;更加速了AI的“走深向实”。 其中&#xff0c;政务业务不仅是连接政府、企业…

FinClip PC 终端支持更新,现已兼容抖音与支付宝小程序

产品方面的相关动向 FinClip 全新升级&#xff01;现已兼容抖音小程序与支付宝小程序 自从 FinClip Studio 上线后&#xff0c;我们收到很多开发者对于“支持兼容抖音小程序与支付宝小程序”的需求反馈&#xff0c;现在 FinClip Studio 对抖音小程序和支付宝小程序的全面支持…

槽道流CFD结果与理论解对比

目录 理论CFD验证code 理论 理论参考文献 对于槽道流&#xff0c;理论上近壁面时均速度为线性分布&#xff0c;远离壁面处为对数分布 在对数区&#xff0c;有两个未知参数&#xff0c;两个人标定了不同的两组数据。 可以看出还是有一定区别的。 CFD验证 CFD有两组数据&…

2023年陕西省安全员B证证模拟考试题库及陕西省安全员B证理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年陕西省安全员B证证模拟考试题库及陕西省安全员B证理论考试试题是由安全生产模拟考试一点通提供&#xff0c;陕西省安全员B证证模拟考试题库是根据陕西省安全员B证最新版教材&#xff0c;陕西省安全员B证大纲整理…

一文掌握项目经理面试难题及其回答要点【干货收藏】

大家好&#xff0c;我是老原。 转眼就来到了10月&#xff0c;金九银十&#xff0c;想着你可能面试用得上&#xff0c;就又准备了一份2023最新版。 在看面试题之前&#xff0c;你要了解&#xff0c;面试题的本质到底是考察你什么&#xff0c;再根据这个大原则&#xff0c;收集面…

ai智能机器人要怎么运营更好

运营机器人核心关注的只有两个点&#xff0c;一个是机器人话术库的关键词是否充足&#xff0c;二是对录音的高要求。每一个话术&#xff0c;都把它当成一个重要的项目来做。比如做需求调研&#xff0c;学习客户的行业知识&#xff0c;了解他们这个行业打电话的语气语调。其它的…

爱普生L125X_L325X系列打印机Wi-Fi配置方法(Smart Panel)

准备工作&#xff1a; 手机需要下载“Epson Smart Panel”APP&#xff1b; 配置无线&#xff08;Wi-Fi&#xff09;方法 说明&#xff1a;SSID名称&#xff08;Wi-Fi名&#xff09;不能包含中文字符,路由器需要选择2.4GHz频段; 1. 打开“Epson Smart Panel”软件&#xff0…

vue3飞书扫码登录网页

二维码 SDK 接入文档 飞书官方文档链接 https://open.feishu.cn/document/common-capabilities/sso/web-application-sso/qr-sdk-documentation 最后更新于 2023-08-08 概述 为了实现网页接入飞书授权登录工作&#xff0c;将飞书登录的二维码嵌入到网页中。当用户扫码成功后…

斐波那契前 n 项和 - 矩阵乘法快速幂

1303. 斐波那契前 n 项和 - AcWing题库 构造矩阵A使 0 1 0 A [ 1 1 1 ] 0 0 1 然后对这个式子进行快速幂&#xff0c;挺神奇的 #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);ci…

gcc 9版本 使用std::thread时候 的链接错误 undefined reference to `pthread_create‘

偶然发现 同样的代码 在 不同版本的ubuntu上编译的时候 一个能编译通过 一个不能 编译通过的版本 编译失败的版本 编译失败的提示 找不到pthread_create函数 成功的系统是ubuntu22.04 失败的是 ubuntu18.04 失败的加上lpthread 库之后可以编译过 ldd看下 可以发现…

保卫你的应用:探索过滤器和拦截器的奥秘

保卫你的应用&#xff1a;探索过滤器和拦截器的奥秘 前言概述实现原理不同使用范围不同触发时机不同注入Bean情况不同springboot中的实现 前言 在现代Web开发中&#xff0c;安全性和性能是至关重要的因素。过滤器和拦截器是Web应用中的两个关键概念&#xff0c;它们可以帮助你…

【软件测试】JUnit详解

文章目录 一. Junit是什么?二.Junit中常见的注解1. Test2. BeforeAll & AfterAll3. BeforeEach & AfterEach4. ParameterizedTest参数化5. Disabled6. Order 三. 测试套件1. 通过class运行测试用例2. 通过包运行测试用例 四. 断言 一. Junit是什么? JUnit是一个用于…

3D打印机升级killpper

本来是想整台新机的&#xff0c;但是想想老机器4max也不能就此放弃&#xff0c;看了看视频&#xff0c;改装升级似乎也没有那么难。然后就是换了喷头、皮带、轴承、挤出机、打印平台、加热板等等。做了干燥箱&#xff0c;改装挤出机结构来适配&#xff0c;风扇口也一并搞掉&…

Astory 访谈|了解「非常律师禹英禑」背后的故事

请先简单做个自我介绍吧&#xff1f; 大家好&#xff0c;我是 Astory 的首席制作人 Younghwa Lee&#xff0c;负责监督《非常律师禹英禑》的制作。很高兴认识你。 是什么启发了你创造了《非常律师禹英禑》系列&#xff1f; 作为制片人&#xff0c;我非常感谢全球粉丝对《非常…

NVIDIA ORIN GPIO

NVIDIA ORIN GPIO 说明 1.Identifying the GPIO Number If you designed your own carrier board, to translate from SOM connector pins to actual GPIO numbers, you must understand the following GPIO mapping formula. The translated GPIO numbers can be controlled …

2023软件测试面试题大全

1.B/S架构和C/S架构区别 B/S 只需要有操作系统和浏览器就行&#xff0c;可以实现跨平台&#xff0c;客户端零维护&#xff0c;维护成本低&#xff0c;但是个性化能力低&#xff0c;响应速度较慢 C/S响应速度快&#xff0c;安全性强&#xff0c;一般应用于局域网中&#xff0c;…