文件管理系统(操作系统)——9张思维导图

2023-11-19

文件管理系统

在这里插入图片描述
在这里插入图片描述

1.文件管理

在这里插入图片描述

1.1.一个文件的逻辑结构

比如一个文本txt文件,又或者Excel文件,在我们用户看来,它是长什么样的,这个就是逻辑结构

  1. 几个概念

    1. “逻辑结构”,就是指在用户看来, 单个文件内部的数据应该是如何组织起来的。
    2. “物理结构”指的是在操作系统看来,单个文件的数据是如何存放在外存中的。
    3. 顺序存储
      逻辑上相邻的记录 物理上也相邻(类似于顺序表)
    4. 链式存储
      逻辑上相邻 的记录物理上不一定相邻 (类似于链表)
    5. 串结构
      文件里的记录存放顺序跟关键字无关,通常按时间先后存放
    6. 顺序结构
      文件里的记录存放顺序跟关键字相关
  2. 无结构文件
    文件内部的数据就是一系列二进制流或字符流组成。又称“流式文件”

  3. 有结构文件(重点)在这里插入图片描述

    1. 顺序文件
      • 链式存储
        无论是定长还是可变的记录,都无法实现随机存取,因为物理上不一定相邻,没办法通过地址加减快速定位记录。因此只能从第一个记录开始依次往后查找
      • 顺序存储
        • 可变长记录
          无法实现随机存储,因为物理块大小(面积)不同,也没办法直接通过起始地址+第i个记录*定长得到物理地址。因此只能从第一个记录开始依次往后查找
        • 定长记录
          • 可以实现随机存取,若定长为L,则第i个记录存放的相对位置是i*L
          • 若采用串结构,没办法根据关键字获取对应记录(注意理解,只是不能通过关键字获取)
          • 若采用顺序结构,可以快速找到关键字对应记录(如折半查找)
        • 顺序存储的缺点,不方便增加删除记录
    2. 索引文件
      • 对于可变长记录文件,要找到第 i 个记录,必须先顺序第查找前 i-1 个记录, 但是很多应用场景中又必须使用可变长记录。如何解决这个问题?
      • 建立一张索引表——变成顺序存储中的定长记录模式。每条记录对应一个索引项。这样一来解决了顺序文件链式存储和顺序文件顺序存储中的可变长记录两种随机查找问题;方便增加删除记录
        • 可以把索引表理解成这个文件的隐藏头部内容,然后其他就是用户看到的记录
      1. 索引文件缺点,索引表(比如Excel表)每条记录对应一条索引,占用空间大
    3. 顺序索引文件
      • 将记录分组,每组对应一个索引表项,理解成存放在文件逻辑地址空间头部(为什么在win系统创建一个空Excel文件,也有大小?)
      • 检索记录时先顺序查索引表,找到分组再顺序查找分组
      • 当记录过多可以建立多级索引表

1.2.文件目录

在介绍一个文件的物理结构之前,我们需要知道文件存放在哪,即怎么找到目标文件,所以先介绍下文件目录。在我看来,文件目录其实就是一种特殊的文件,只不过这种特殊的文件,记录的内容是每个文件的文件名,文件大小,创建时间,外存物理地址等等

  1. 文件目录的实现
    • 一个文件对应一个文件控制块FCB,一个FCB就是一个目录项,多个FCB组成文件目录
    • 对目录的操作,搜索、创建文件、删除文件、显示文件、修改文件
    • FCB 中包含了文件的基本信息(文件名、物理地址、逻辑结构、物理结构等)
  2. 目录结构
    • 单级目录结构
      一个系统只有一张目录表,不允许文件重名
    • 两级目录结构
      不同用户的文件可以重名,但是不能对文件分类
    • 多级目录结构
      • 不同目录下的文件可以重名,也可以对文件分类,但是不方便文件共享
      • 操作系统根据文件路径找到目标文件
      • 绝对路径,从根目录出发
      • 相对路径,从当前路径出发
    • 无环图目录结构
      在多级(树形)目录结构的基础上,增加一些指向同一节点的有向边,使整个目录成为一个有向无环图
      为共享结点设置一个共享计数器,计数器为0才会真正删除该结点
  3. 索引结点(重点理解)
    • 除了文件名以外其他信息放在索引结点中,每个文件都对应一个索引结点
    • 目录项只包含文件名、索引结点指针,因此每个目录项的空间大小会大幅减小
    • 由于目录项空间大小(也可以说比特长度)减小,因此每个磁盘块可以放的下更多的目录项,因此检索文件时磁盘I/O的次数变小很多
  4. 补充
    • 磁盘块
      磁盘块,应该跟内存划分的物理块概念差不多,单位最小,文件目录划分成一个个目录项,塞到磁盘块里
    • 磁盘I/O次数
      磁盘I/O次数是访问磁盘块次数,如果一个磁盘块能放下一个文件目录所有的目录项,那么磁盘I/O次数就是1

1.3.一个文件的物理结构

文件数据应该怎么样存放在外存中

在这里插入图片描述
索引分配——索引表实现

在这里插入图片描述

三种分配方式对比

在这里插入图片描述

1.4.文件存储空间管理

在这里插入图片描述

1.5.文件基本操作

在这里插入图片描述

1.6.文件共享

在这里插入图片描述

1.7.文件保护

在这里插入图片描述

2.磁盘组织与管理

2.1.磁盘的结构

在这里插入图片描述

2.2.磁盘的调度算法

在这里插入图片描述

2.3.磁盘的管理

在这里插入图片描述

文件系统实例

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

文件管理系统(操作系统)——9张思维导图 的相关文章

  • nslookup命令详解

    nslookup命令用于查询DNS的记录 查看域名解析是否正常 在网络故障的时候用来诊断网络问题 nslookup的用法相对来说还是蛮简单的 主要是下面的几个用法 1 直接查询 这个可能大家用到最多 查询一个域名的A记录 nslookup
  • 红帽7.9部署telnet服务

    升级ssh 为预防万一提前配置telnet服务 安装软件包 yum install telnet server yum install xinetd xinetd加入开机自启 systemctl enable xinetd service
  • InfoQ视频直播分享报名:前贝尔实验室、Oracle架构师为你在线揭秘分布式平台内核...

    报名方式 关注InfoQ微信公众号 ID infoqchina 回复 InfoQ 即可观看在线直播技术分享 分享地点 u0026amp 时间 InfoQ直播微课堂将在熊猫 TV 网站播出 看腻了卖肉的女主播 来看看QCon 的明星讲师如何
  • LWIP在STM32上的移植

    本文做记录摘抄 加上自己的体会 文章标题 STM32使用LWIP实现DHCP客户端 http www cnblogs com dengxiaojun p 4379545 html 该文章介绍了几点 LWIP源码的内容 关键点 1 inclu
  • 操作系统笔记六(文件管理)

    1 文件逻辑结构 1 1逻辑结构的文件类型 分类 有结构文件 例如 PNG文件 无结构文件 1 2顺序文件 1 3索引文件 2 辅存的存储空间分配 2 1分配方式 连续分配 直接分配连续的存储空间 链接分配 隐式链接 在盘块内指定下一个盘块
  • Linux alien命令

    一 简介 alien是一个用于在各种不同的Linux包格式相互转换的工具 其最常见的用法是将 rpm转换成 deb 或者反过来 二 安装 http toutiao com a6188997768449360129 三 实例 http www
  • C语言单向循环链表的建立

    1 头文件 include
  • 使用inet_ntop转换IPv6地址时在macOS和linux上的行为不一样

    下面这段python代码在macOS和linux时运行的结果是不同的 import socket ip socket inet pton socket AF INET6 1 2 3 0 5 6 7 8 print socket inet n
  • 磁盘调度算法笔记和练习题

    磁盘调度算法 先来先服务FCFS 最短寻道时间优先SSTF 扫描调度SCAN 练习题 先来先服务FCFS 最短寻道时间优先SSTF 扫描调度SCAN 它是一次只响应一个方向上的请求 这个方向上的请求都响应完了 再掉头处理另一个方向上的 有点
  • C#实现FTP文件夹下载功能【转载】

    网上有很多FTP单个文件下载的方法 前段时间需要用到一个FTP文件夹下载的功能 于是找了下网上的相关资料结合MSDN实现了一段FTP文件夹下载的代码 实现的思路主要是通过遍历获得文件夹下的所有文件 当然 文件夹下可能仍然存在文件夹 这样就需
  • MacOS中清除原有ssh公钥方法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 用ssh的跳转登录服务器后 ssh会把你每个你访问过计算机的公钥 public key 都记录在 ssh known hosts 当下次访问相同计算机时 SSH会核对公钥
  • 地址映射与共享

    跟踪地址映射过程 1 通过命令 dbg asm启动调试器 在linux 0 11运行test c文件 使其进入死循环 我们的任务就是找到i的地址并将其修改为0使test c程序退出循环 2 在命令行输入crit c使Boch暂停 一般会显示
  • 链表【2】

    文章目录 24 两两交换链表中的节点 题目 算法原理 代码实现 143 重排链表
  • 算法题-简单系列-06-删除有序链表中重复的元素

    文章目录 1 题目 1 1 循环遍历 1 题目 1 1 循环遍历 既然连续相同的元素只留下一个 我们留下哪一个最好呢 当然是遇到的第一个元素了 因为第一个元素直接就与前面的链表节点连接好了 前面就不用管了 只需要跳过后面重复的元素 连接第一
  • 【操作系统xv6】学习记录4-一级页表与二级页表

    占位
  • 【LeetCode:114. 二叉树展开为链表 | 二叉树 + 递归】

    算法题 算法刷题专栏 面试必备算法 面试高频算法 越难的东西 越要努力坚持 因为它具有很高的价值 算法就是这样 作者简介 硕风和炜 CSDN Java领域新星创作者 保研 国家奖学金 高中学习JAVA 大学完善JAVA开发技术栈 面试刷题
  • 206.翻转链表

    翻转链表 力扣 LeetCode 官网 全球极客挚爱的技术成长平台 备战技术面试 力扣提供海量技术面试资源 帮助你高效提升编程技能 轻松拿下世界 IT 名企 Dream Offer https leetcode cn problems re
  • 带头双向循环链表基础

    带头双向循环链表基础 销毁 销毁 void ListDestory ListNode phead void ListDestory ListNode phead assert phead ListNode cur phead gt next
  • 单向不带头链表的使用

    单向不带头链表的使用 链表的创建 typedef struct LNode SLDataType data struct LNode next LNode LinkList 按位查找 LNode GetElem LinkList L int
  • 顺序表和链表基础

    定义动态的顺序表 typedef int SLDataType typedef struct Seqlist SLDataType array size t size size t capacity Seqlist 在顺序表中插入数据 bo

随机推荐

  • linux服务器使用gustat指令查看gpu显卡的使用情况(比nvidia-smi好用)

    使用gpustat指令需要先安装gpustat 安装需要root权限 apt install gpustat 查看gpu使用情况 gpustat nvidia smi gpustat相比于nvidia smi查看的信息更加详细 可以看到使用
  • flex布局宽高度设置不成功

    flex布局中 会出现是在宽高 但是不起作用 那是因为flex布局当不够的时候自动压缩了 可以选择 让其不压缩 flex shrink 0 然后在设置宽高 或者利用复合属性 flex 0 0 83rpx 这篇博客是对flex布局的讲解 以及
  • 如何给证件照换一个背景颜色

    我们在考试报名的时候 经常是不同的考试需要不同的登记照尺寸和背景颜色 但是我们基本上不可能每种颜色的证件照都去拍一张吧 那样也太麻烦成本也太高 所以通过前端实现了一个改变证件照背景颜色的方法 他可以将证件照的背景颜色修改为任意的颜色 而不局
  • 微信小程序支付中的prepay_id获取方法,以及微信支付统一签名算法闭坑

    class Wechat 公众号的或者小程序支付参数 private appId private appSecret 商家的配置信息 private mch id private mch key 回调地址 public notify url
  • 前台与后台数据交互

    后台取到的数据在前台应该用EL表达式显示 xx xx 如果要给前台单选按钮赋值 需要用js进行判断 满足条件后 id attr checked true false 设置选中状态 设置单选按钮及下拉列表不可用是disabled disabl
  • for循环之斐波拉契数列

    题目大意 菲波那契数列是指这样的数列 数列的第一个和第二个数都为1 接下来每个数都等于前面2个数之和 给出一个正整数k 要求菲波那契数列中第k个数是多少 Input 输入一行 包含一个正整数k 1 lt k lt 46 Output 输出一
  • 在C++中调用OpenSSL库进行编程

    目录 OpenSSL简介 下载OpenSSL库并配置实验环境 OpenSSL库的加密函数的认识 使用 EVP 库实现 DES 和 AES 加密 EVP EncryptUpdate 函数参数详解 OpenSSL加密实践 RSA 密钥生成 RS
  • 第一次面试前端实习生心得

    今天第一次去面试前端岗位的实习生 公司规模不算大吧 不过也有好几个部门 说说我的面试心得吧 首先是hr面 如下是她问的问题 学这个多久了 大四还有没有课 是否只需完成毕业设计就行了不用上课 同学暑假都在干嘛 学校课程学了什么 同学们主要找哪
  • (转载)我们需要什么样的字段类型

    数据库定义到char类型的字段时 不知道大家是否会犹豫一下 到底选char nchar varchar nvarchar text ntext中哪一种呢 结果很可能是两种 一种是节俭人士的选择 最好是用定长的 感觉比变长能省些空间 而且处理
  • Java 两种zero-copy零拷贝技术mmap和sendfile的介绍

    详细介绍了两种zero copy零拷贝技术mmap和sendfile的概念和基本原理 目录 1 标准IO 2 零拷贝 2 1 sendfile调用 2 1 mmap调用 2 2 MQ中的应用 1 标准IO 很多软件是基于server cli
  • MES在流程和离散型制造企业的应用存在哪些差别?

    企业的生产方式 主要可以分为按定单生产 按库存生产或上述两者的组合 从生产类型上考虑 则可以分为批量生产和单件小批生产 从产品类型和生产工艺组织方式上 企业的行业类型可分为流程生产行业和离散制造行业 典型的流程生产行业有医药 石油化工 电力
  • C++ 拷贝构造函数和赋值运算符

    本文主要介绍了拷贝构造函数和赋值运算符的区别 以及在什么时候调用拷贝构造函数 什么情况下调用赋值运算符 最后 简单的分析了下深拷贝和浅拷贝的问题 拷贝构造函数和赋值运算符 在默认情况下 用户没有定义 但是也没有显式的删除 编译器会自动的隐式
  • Direct3D光照

    光照的组成 环境光 这种类型的光经其他表面反射到达物体表面 并照亮整个场景 要想以较低代价粗略模拟这类反射光 环境光是一个很好的选择 漫射光 这种类型光沿着特定的方向传播 当它到达某一表面时 将沿着各个方向均匀反射 无论从哪个方位观察 表面
  • Spring的资源访问接口---Resource

    JDK提供的访问资源的类 File等 不能很好满足各种某些资源的访问需求 比如缺少从类路径和Web容器的上下文中获取资源的资源操作类 Spring的Resource接口提供了更好用的资源访问能力 Spring使用Resource访问各种资源
  • linux 交叉编译找不到库文件

    网上大众的作法这里不做介绍 在编译一些库的时候可能某些工具会用到宿主机的 而这些工具在调用的时候会找和宿主机匹配的库 而交叉编译的库是不能用的 遇见这种情况基本是解决不了的 但是可以通过configure 的选项去掉这些过程 举个例子 我在
  • MySQL多列字段去重的案例实践

    同事提了个需求 如下测试表 有code cdate和ctotal三列 select from tt 现在要得到code的唯一值 但同时带着cdate和ctotal两个字段 提起 唯一值 想到的就是distinct distinct关键字可以
  • Nodejs版本管理工具mvn部署

    部署mvn curl o https raw githubusercontent com creationix nvm v0 34 0 install sh bash 添加环境变量 vim zshrc export NVM DIR HOME
  • Webpack中的tree-shaking

    文章目录 Webpack中的tree shaking 简单实践 副作用sideEffects sideEffects配置项 false 数组 结论 Webpack中的tree shaking tree shaking就是把js文件中无用的模
  • 【编程题】——求链表的中间节点

    题目 求链表的中间结点 如果链表中结点总数为奇数 返回中间结点 如果结点总数是偶数 返回中间两个结点的任意一个 思路 定义两个指针 一个指针一次走一步 另一个指针一次走两步 当走得快的指针到达链表末尾的时候 走得慢的指针刚好达到链表的中间节
  • 文件管理系统(操作系统)——9张思维导图

    文件管理系统 1 文件管理 1 1 一个文件的逻辑结构 比如一个文本txt文件 又或者Excel文件 在我们用户看来 它是长什么样的 这个就是逻辑结构 几个概念 逻辑结构 就是指在用户看来 单个文件内部的数据应该是如何组织起来的 物理结构