操作系统③ —— 文件管理

前言

  • 操作系统对文件管理中需要对磁盘块进行管理。这其中包含对空闲磁盘块非空闲磁盘块的管理
    • 对空闲磁盘块的管理涉及文件存储空间的管理。
    • 对非空闲磁盘块的管理涉及文件的物理结构/文件的分配方式。

1. 文件存储空间管理

1.1 存储空间的划分与初始化

  • 存储空间的划分:将物理磁盘划分为一个个文件卷(逻辑卷、逻辑盘)
  • 存储空间的初始化:将各个文件卷划分为目录区、文件区。
    在这里插入图片描述

1.2 空闲磁盘块的空间管理方法

  • 为了提高为文件分配空闲空间的效率,我们需要通过空闲空间管理来维护好现有的空闲空间,避免每次为文件分配空间时去扫描整个磁盘。

1.2.1 空闲表法

  • 空闲表法就是为所有的空闲空间建立一张表,表中的内容包括空闲区的第一个块号和该空闲区的个数。
  • 请求分配磁盘空间时,需要扫描空闲表里的内容,直到找到一个合适的空闲区域为止。当用户删除一个文件时,系统也需要回收空间,也需要扫描空闲表,寻找一个空闲表条目并将第一个物理块号和它占用的块数填到这个条目中。
  • 该方法不适合管理有着大量小空闲区的磁盘,因为这样整个表会很大,扫描效率会很低。
    在这里插入图片描述

1.2.2 空闲链表法

  • 每一个空闲块里有一个指针指向下一个空闲块,这样只需要在系统中维护一个指针(令他指向第一个空闲块),便可以找到所有的空闲块,结构简单,但是不能随机访问,工作效率低,同时数据块的指针消耗了一定的存储空间。
    在这里插入图片描述

1.2.3 位图法

  • 位图就是利用二进制的每一位来表示磁盘中一个块的使用情况,磁盘上所有的块都有一个二进制位与之对应。
  • 当值为0时,表示块空闲,值为1时,块已分配
  • Linux操作系统中就采用了位图的方式来管理空闲空间

2. 磁盘调度

2.1 影响读写磁盘的时间因素

  • 寻道时间:磁头移动到指定磁道所需时间。
  • 旋转延迟时间:等待指定扇区到达磁头下的旋转时间。
  • 数据传输时间:数据在磁盘与内存之间的传输时间。

2.2 什么是磁盘调度?

  • 当多个磁盘I/O请求到来时,磁盘驱动程序需要安排I/O请求的处理顺序,这称为磁盘调度或移臂调度。

2.3 磁盘调度算法

  • 例:假如系统先后到来对柱面12,80,5,60,95,20,86,35,72,55的访问请求
    在这里插入图片描述

2.3.1 先来先服务算法(FCFS)

  • 先来先服务算法根据磁道访问请求到来的先后顺序完成请求。

在这里插入图片描述

  • 分析:
    • 柱面访问序列:12,80,5,60,95,20,86,35,72,55
    • 磁头总共移动:80-12+80-5+95-5+95-20+86-20+86-35+72-35+72-55=479个磁道距离
    • 响应一个请求平均需要移动:479/10=47.9个磁道(平均寻找长度)
  • 优点:
    • 公平,简单;
    • 如果请求访问的磁道比较集中的话,算法性能很好;
  • 缺点:
    • 很难优化寻道时间;
    • 如果有大量进程竞争使用磁盘,请求访问的磁道很分散,则FCFS在性能上很差,寻道时间很长。

2.3.2 最短寻道时间优先算法(SSTF)

  • 最短寻道时间优先算法总是优先满足距离磁头当前位置最近的访问请求。

在这里插入图片描述

  • 分析:
    • 柱面访问序列:60,55,72,80,86,95,35,20,12,5
    • 磁头总共移动:60-55+95-55+95-5=135个磁道距离
    • 响应一个请求平均需要移动:135/10=13.5个磁道(平均寻找长度)
  • 优点:
    • 性能较好,平均寻道时间短;
  • 缺点:
    • 可能产生“饥饿”现象。

2.3.3 电梯调度算法(扫描算法SCAN)

  • SSTF算法会产生饥饿的原因在于:磁头有可能在一个小区域内来回来去地移动。
  • 为了防止这个问题,可以规定,只有磁头移动到最外侧磁道的时候才能往内移动,移动到最内侧磁道的时候才能往外移动。这就是扫描算法(SCAN)的思想。由于磁头移动的方式很像电梯,因此也叫电梯算法。

在这里插入图片描述

  • 分析:
    • 柱面访问序列:60,72,80,86,95,55,35,20,12,5
    • 磁头总共移动:95-60+95-5=125个磁道距离
    • 响应一个请求平均需要移动:125/10=12.5个磁道(平均寻找长度)
  • 优点:
    • 性能较好,平均寻道时间较短,不会产生饥饿现象。
  • 缺点:
    • 只有到达最边上的磁道时才能改变磁头移动方向;
    • SCAN算法对于各个位置磁道的响应频率不平均
      • 如:假设此时磁头正在往右移动,且刚处理过55号磁道,那么下次处理55号磁道的请求就需要等磁头移动很长一段距离;而响应了95号磁道的请求之后,很快又可以再次响应95号磁道的请求了

2.3.4 循环扫描算法(C-SCAN)

  • 磁头仅在一个移动方向上提供访问服务
  • 磁臂从磁盘开始端柱面至结束端柱面移动的过程中依次处理途经请求,然后,直接返回开始端柱面重复进行,归途中并不响应请求。开始端与结束端柱面构成了一个循环。

在这里插入图片描述

  • 分析:
    • 柱面访问序列:60,72,80,86,95,100,0,5,12,20,35,55
    • 磁头总共移动:100-60+55-0=95个磁道距离
    • 响应一个请求平均需要移动:95/10=9.5个磁道(平均寻找长度)
  • 优点:
    • 比起SCAN来,对于各个位置磁道的响应频率很平均。
  • 缺点:
    • 只有到达最边上的磁道时才能改变磁头移动方向;并且,磁头返回时其实只需要返回到5号磁道即可,不需要返回到最边缘的磁道。

3. 硬链接和软链接

  • 硬链接:
    • 以⽂件副本的形式存在,指向同⼀个索引节点
    • 索引节点中有链接计数 count,count=0时真正删除⽂件和索引节点
    • 不能跨文件系统
  • 软链接(快捷方式):
    • 数据块中存放的内容是另⼀⽂件的路径名的指向
    • 根据路径查找共享⽂件,即使源⽂件已经被删除,还是会去查找但结果会显示查找失败
    • 查询多级⽬录,多次I/O操作,软链接更慢
    • 可以跨文件系统
  • 共同点:都不会将原本的档案复制⼀份,只会占⽤⾮常少量的磁盘空间

4. 一次I/O在什么量级

  • 毫秒量级

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

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

相关文章

【Linux学习】初识Linux指令(一)

文章目录 1.指令操作与图形化界面操作1.什么是指令操作,什么是图形化界面操作? 2.Linux下基本指令1.Linux下的复制粘贴2.Linux两个who命令3.补充知识4.pwd指令5. ls 指令6.cd 指令1.目录树2.相对路径与绝对路劲3.常用cd指令 7.tree指令8. touch指令9.sta…

需求调研和程序员有关系吗?

很多程序员可能都觉得,需求调研是产品经理或者需求分析师的事情,我只需要负责拿到写到的需求规格说明书来开发就好了,为什么要参与需求调研。但结合笔者从业经历来说,程序员其实应该在一定程度上参与到需求调研中,无论…

CST软件中变更求解器和宏的使用技巧【操作教程】

变更求解器 变更CST MWS中的Solver! Home > Simulation > Setup Solver CST Microwave Studio (CST MWS)总共有六个Solver。用户根据仿真目的和应用方向选择合适的Solver,才可以快速获得准确的结果。变更或选择Solver时,在Setup Sol…

SpringBoot项目整合ACTable实现实体类快速生产数据库表

1.安装 ACTable依赖 <dependency> <groupId>com.gitee.sunchenbin.mybatis.actable</groupId> <artifactId>mybatis-enhance-actable</artifactId> <version>1.5.0.RELEASE</version> </dependency> 使用mybatis…

【LAMMPS学习】八、基础知识(1.4)多副本模拟

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语&#xff0c;以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

Redis 高可用

redis高可用介绍 在web服务器中&#xff0c;高可用是指服务器可以正常访问的时间&#xff0c;衡量的标准是在多长时间内可以提供正常服务&#xff08;99.9%、99.99%、99.999%等等&#xff09;。但是在Redis语境中&#xff0c;高可用的含义似乎要宽泛一些&#xff0c;除了保证提…

android平台下opencv的编译--包含扩展模块

由于项目需要使用安卓平台下opencv的扩展库&#xff0c;对于通用的opencv库&#xff0c; opencv官网提供了android的SDK 但未能提供扩展库&#xff0c;因此需要自己进行源码编译。本文记录android平台下opencv及其扩展库的交叉编译。 前提&#xff1a;主机已安装android-ndk交…

玩美移动珠宝虚拟试戴解决方案引入glTF 2.0格式支持

领先的AIAR美妆和时尚科技解决方案提供商&#xff0c;以及"美丽AI"解决方案开发商 — 玩美移动于今日宣布&#xff0c;其AI珠宝虚拟试戴解决方案升级版本&#xff0c;性能得以显著提升。通过此次更新&#xff0c;玩美移动系统现可支持glTF 2.0&#xff08;图形库传输…

启明智显技术分享|ESP32-C3助力Model 3C芯片86盒彩屏开发板实现3MB波特率OTA程序升级和单独图片升级

在物联网快速发展的今天&#xff0c;彩屏显示作为人机交互的重要一环&#xff0c;其显示效果和升级便利性成为了衡量产品竞争力的关键指标。而Model 3C(以下简称M3C芯片&#xff09;与ESP32-C3的结合&#xff0c;无疑为物联网彩屏领域应用奠定了坚实的基石。 M3C芯片 是启明智…

碳视野 | 今后五年国家重点支持三类双碳项目!

一、政策背景 4月8日&#xff0c;国家发展改革委印发《节能降碳中央预算内投资专项管理办法》&#xff08;以下简称《办法》&#xff09;,明确了专项资金重点支持范围和标准&#xff0c;重点支持重点行业和重点领域节能降碳、循环经济助力降碳等方向&#xff0c;重点支持内容包…

Seata框架实现分布式事务(一)CAP理论

1、什么是事务 事务是指一系列数据库操作&#xff0c;它们被看作是一个逻辑单元&#xff0c;并且要么全部成功地执行&#xff0c;要么全部失败地回滚到初始状态&#xff0c;以确保数据的一致性和完整性。事务具有以下四个特性&#xff0c;通常被称为 ACID 特性&#xff1a; 所…

VMware安装kylin系统

安装成功画面 1.点击如下链接&#xff0c;下载iso镜像 openKylin开源操作系统 选择图片中的镜像进行下载 此处一定要选择稍后安装系统

常用特征分箱算法

特征分箱是构建信用评分过程中最重要的一个环节。特征分箱是对连续变量离散化的一种简称&#xff0c;对于连续型变量&#xff0c;需要对其连续值进行拆分&#xff0c;并进行后续的分箱调整工作&#xff1b; 对于离散型变量&#xff0c;通常要根据每个离散值计算其坏样本占比或…

创新实训2024.04.11日志:self-instruct生成指令

1. 参考文献 代码&#xff1a;https://github.com/yizhongw/self-instruct论文&#xff1a;https://arxiv.org/abs/2212.10560 2. 前沿论文阅读 2.1. self-instruct技术的优势 作者在文章中提到&#xff1a; The recent NLP literature has witnessed a tremendous amount …

时光清浅,百事从欢

裙身主图案采用寓意丰富的石榴印花石榴花开红火&#xff0c;枝叶茂盛恰好契合“时来运转”的主题希望宝贝们都能如石榴般坚韧生长&#xff0c;好运连连裙型设计深蕴国风美学&#xff0c;融合现代剪裁工艺将古典韵味与时尚元素完美交融领口处巧妙运用中式立领设计既保留了传统服…

SketchBook2014 下载地址及安装教程

SketchBook是一款专业级别的绘图与绘画软件。它提供了丰富的绘画工具和创意功能&#xff0c;适用于艺术家、插画师、设计师和数字艺术爱好者。SketchBook具有直观的用户界面&#xff0c;简单而强大的绘制工具&#xff0c;能够帮助用户在数字平台上创造出精美的艺术作品。 Sket…

【软件测试之因果图法】

【软件测试之判断表法】(蓝桥课学习笔记) 1、因果图法的概念 因果图法是一种利用图解法分析输入的各种组合情况&#xff0c;从而设计测试用例的方法&#xff0c;它适合于检查程序输入条件的各种情况的组合。因果图&#xff08;Cause-Effect-Graphing&#xff09;提供了把规则转…

水电智能远程抄表系统

水电智能远程抄表系统是一种应用先进技术实现水电抄表的智能化管理系统&#xff0c;通过远程抄表、数据传输和智能分析&#xff0c;实现了对水电使用情况的实时监测和管理。本文将从系统特点、构成以及带来的效益三个方面展开介绍。 系统特点 1.远程抄表&#xff1a;系统能够…

Day37:LeedCode 738.单调递增的数字 968.监控二叉树 蓝桥杯 翻转

738. 单调递增的数字 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xff0c;且数字呈 单调递增 。 示例 1: 输入: n 10 输出: 9 思路: 假设这个数是98,…

HCIP-Datacom H12-831 题库补充(4/12)

2024年 HCIP-Datacom&#xff08;H12-831&#xff09;最新题库&#xff0c;完整题库请扫描上方二维码&#xff0c;持续更新。 以下关于OSPF Sham Link的描述&#xff0c;错误的是哪一项&#xff1f; A&#xff1a;为了使VPN流量通过MPLS VPN骨干网转发&#xff0c;Sham Link的路…