[操作系统] 磁盘

操作系统的磁盘结构、磁盘管理、磁盘调度算法 磁盘结构 磁盘、磁道、扇区 盘面:一个磁盘有多个盘面 磁道:盘面上的圆形带状区域,一个盘面有多个磁道 扇区:磁道上的一个弧段,一个磁道可以有多个扇区,他是最小的物理单位,目前主要有512字节与4k大小; 磁头:与盘面非常接近,能够在盘面上的磁场转换成电信号(读),或者将电信号转换成盘面的磁信号(写); 制动手臂:用于磁道之间移动磁头 主轴:使整个盘面转动 磁盘的分类 磁盘根据磁头是否可以移动分... 阅读详情

磁盘



1. 磁盘调度算法

读写一个磁盘的时间需要三个因素决定:

  1. 寻道时间(将磁盘臂移动到适当柱面所需时间)。
  2. 旋转延迟(等待适当扇区旋转到磁头下所需时间)。
  3. 实际数据传输时间。

对大多数磁盘而言,寻道时间占主导地位,所以减少平均寻道时间可以充分地改善系统性能够。

  1. 先来先服务算法(FCFS)

    即按照接受请求的顺序完成请求。

  2. 最短寻道优先算法(SSF)

    下一次总是处理与当前磁头距离最近的请求以使寻道时间最小化。但当正在处理请求时,可能不断有其他请求到达,如果磁盘负载很重,可能到时磁盘臂大部分时间停留在磁盘中部区域,而两端区域将一直等待,出现饥饿现象。

  3. 电梯调度算法

    需要保存一个二进制位来记录当前移动方向,当一个请求处理完成后,磁盘检查该位,并处理当前移动方向上的另一个请求,如果该方向上没有请求,则方向取反,并移向最近位置。该算法的优良特性是,任意的一组给定请求,磁盘臂移动总次数的上界是固定的,即为柱面数两倍。

2. 错误处理

在磁盘制造时会有瑕疵,而这些瑕疵可能会引入坏扇区,也就是说,扇区不能正确地读回刚刚写到其上的值。

  1. 在控制器中进行处理

    磁盘在从工厂出厂前要进行测试,并将一个坏扇区列表写在磁盘上,对于每一个坏扇区,将用一个备用扇区替换它。用两种方法可用来替换。

    • 将备用扇区之一重映射为坏扇区(该方式在重写前导码时很简便)。
    • 将所有扇区向上移动一个扇区(该方式会提供更好的性能,因为磁道可以再旋转一周中读出)。

    驱动器安装后在正常工作期间可能出现错误。如果控制器发现在某个扇区遇到重复性错误(一次错误可能是因为有灰尘等导致的),可以再该扇区完全坏掉前切换到一个备用扇区,一般采用重映射的方法,因为移动扇区需要复制所有数据。

  2. 在操作系统中进行处理

    如果控制器不具有重映射扇区的能力,就需要操作系统处理重映射,那么必须确保坏扇区不出现在任何文件中,并且不出现在空闲列表或位图中。可以创建一个包含所有坏扇区的秘密文件,并且不被加入文件系统,这样用户就不会意外读到。

3. 稳定存储器

磁盘有时会出现错误,好扇区可能变成坏扇区,整个驱动器也可能死掉。为了对写操作期间崩溃提供保护,一个磁盘应该做到:当一个写命令发给它时,磁盘要么正确写数据,要么什么也不做,让现有数据完整留下。这样的系统就被称为稳定存储器。

稳定存储器使用一对完全相同的磁盘,对应的块一同工作以形成一个无差错的块。当不存在错误时,两个驱动器上对应块是相同的,并定义了以下三种操作:

  1. 稳定写

    稳定写首先将块写到驱动器1上,然后将其读回以校验写正确。如果写的不正确,那么就再次写并重读,一直到n次或正常为止。经过n次失败后,就将该块重映射到一个备用块上,并且重复写和读直到成功为止,无论尝试多少备用块。在对驱动器1写成功后,对驱动器2上的对应块进行写和重读,重复操作直到成功为止。如果不存在CPU崩溃,那么当稳定写之后,块被正确写到两个驱动器,并在两个驱动器上得到校验。

  2. 稳定读

    稳定读首先从驱动器1读取块。如果这一操作产生错误ECC(包含冗余信息,可以恢复读错误),则再次尝试读操作,一直到n次,如果这些操作都给出了错误的ECC,则从驱动器2上读取相应数据块(这里存在假设,在一定合理时间间隔内,相同块在两个驱动器上自发变坏的可能性忽略不计)。

  3. 崩溃恢复

    崩溃之后,回复程序扫描两个磁盘,比较对应块。如果一对块都是好的并且相同,就什么也不做。如果一个ECC错误,那么坏块则用好块覆盖。如果一对块都是好的但是内容不同,那么将驱动器1的块写到驱动器2上。

以上方法可行是基于CPU不会崩溃的情况,因为稳定写总能写下两个有效副本。但如果稳定写期间出现CPU崩溃,则根据崩溃发生的精确时间,有5种可能,如图所示。

崩溃对于稳定写影响

在a中,CPU崩溃发生在写块的两个副本前。恢复时,不需要修改而旧的值将继续存在。

在b中,CPU崩溃发生在写驱动器1期间,破坏了该块内容。但恢复程序能检测出这一错误,并将驱动器2写到驱动器1,以消除崩溃影响,并且恢复旧状态。

在c中,CPU崩溃发生在写两个驱动器之间。此时恢复程序将驱动器1复制到驱动器2,写成功。

在d中,CPU崩溃发生在写驱动器2期间,破坏了该块内容。类似于b,恢复程序同样能检测出错误,并消除影响,不同的是,两个块都将有新值。

在e中,恢复程序不需要修改,无影响。

在很多计算机中,使用非易失性RAM记录要写的块。如果无法使用非易失性RAM,可用以下方法模拟。在稳定写开始时,用将要被稳定写的块的编号覆盖驱动器1上的一个固定块,然后读回该块并校验,该块正确后,对驱动器2上对应块进行写与读校验。当稳定写完成后,用一个无效块编号覆盖这两个固定块,并校验。




参考书目:现代操作系统第三版

【操作系统 - 6】磁盘调度算法 【操作系统 - 6】磁盘调度算法 --- 学习至此,发现很多学了但很久没用的知识,久而久之,慢慢遗忘。等哪天还需要的话,却发现已经忘得差不多了,即使整理了文档(word等),还是得从头再学一遍。读研第一学期,发现很多东西都可以从博客上学习到,也有不少博主呕心沥血整理了挺多有用的博文。于是,本人借此契机,也慢慢开始整理一些博文,不断改进完善中。 阅读详情

相关推荐

操作系统~磁盘的结构、磁盘调度算法、磁盘的管理

文章目录磁盘的结构磁盘的物理地址磁盘调度算法一次磁盘读/写操作需要的时间先来先服务算法(FCFS)最短寻找时间优先(SSTF)扫描算法(SCAN)LOOK调度算法循环扫描算法(C-SCAN)C-LOOK调度算法磁盘管理磁盘地址结构的设计磁盘初始化引导块 磁盘的结构 磁盘的表面由一些磁性物质组成,可以用这些磁性物质来记录二进制数据 一个磁道又被划分成一个个扇区,每个扇区就是一个“磁盘块”。各个扇区存放的数据量相同(如1KB) 磁盘的盘面被划分成一个个磁道。这样的一个“圈”就是一个磁道 需要把“磁头”移动到想

Shangxingya的博客 2409

操作系统考试重点

1.什么是进程?什么是线程?进程与线程有何区别? 进程:进程是具有独立功能的程序在数据集合上的一次执行过程 线程:线程是进程内的一个执行实体或执行单元 区别: (1).进程的地址空间是独立的,而同一进程内的线程共享同一地址空间,一个进程内的线程在另一进程内是不可见的 (2).在引入线程的系统内,进程是资源分配和调度的单位,线程是处理机调度和分配的单位,资源是分配给进程的,线程只拥有很少的资源,所以切换代价比进程低。 2.什么是死锁?产生死锁的原因以及必要条件 死锁:在多道程序系统中,当一组进程中的每个进程都

qq_44312008的博客 412

Linux操作系统的磁盘的分区

磁盘分区

m0_59368744的博客 1842

硬盘操作花费时间组成 -牛客网

影响硬盘性能的因素影响磁盘的关键因素是磁盘服务时间,即磁盘完成一个I/O请求所花费的时间,它由寻道时间、旋转延迟和数据传输时间三部分构成。1. 寻道时间Tseek是指将读写磁头移动至正确的磁道上所需要的时间。寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms。2. 旋转延迟Trotation是指盘片旋转将请求数据所在的扇区移动到读写磁盘下方所需要的时间。旋转延迟取决于磁盘转速,...

临地的博客 853

别再只会读文件了,操作系统是这样读磁盘的!

你以为硬盘像文件夹一样打开,其实它靠“瞎写寄存器”读数据? 操作系统的启动,不是你想象的双击图标——而是BIOS手动读磁盘扇区,靠几条汇编和10个神秘端口完成“开天辟地”。本文教你用最原始的方式亲手从硬盘读出操作系统!

分享各种技术 708

芯片设计新手必看:5分钟搞懂工艺角(Process Corner)到底是什么,为啥仿真总要用它?

本文详细解析了芯片设计中的工艺角(Process Corner)概念及其在仿真中的重要性。通过类比马拉松运动员的性能差异,解释了晶体管制造过程中的天然波动,并介绍了TT/FF/SS等工艺角代码的含义。文章还探讨了为何需要跑全工艺角仿真,以及现代芯片验证的完整流程,包括PVT矩阵和多模式分析(MMMC),帮助芯片设计新手快速掌握这一关键概念。

weixin_28713947的博客 244

操作系统-磁盘调度算法

一、一次磁盘读写所需要的的时间 以机械硬盘为例,一次磁盘读写所需要的的时间由三部分组成:寻道时间、延迟时间、传输时间。 寻道时间:磁头移动到数据所在磁道所需的时间。每个磁道耗时m,总共需要跨越的磁道数n,耗时为Ts = s + m*n.(s为机械臂启动时间) 延迟时间:旋转磁头定位到数据所在扇区的时间。设r为磁盘转速,则延迟平均时间为 (1/r)*(1/2) 传输时间:从磁盘读出或者写入磁盘所需的时间。设每个磁道上的字节数为N.则所花时间为(1/r)*(b/N) 二、磁盘调度算法 传输时间和延迟时间都

qq_20846769的博客 1848

MATLAB闪退别慌!5分钟搞定Windows系统预设文件修复(附详细截图)

本文针对MATLAB在Windows系统下频繁闪退的问题,提供了快速有效的解决方案。核心在于修复或重置损坏的MATLAB预设文件,通过图文并茂的五步法,指导用户定位AppData目录、重命名预设文件夹,从而让MATLAB自动生成全新配置以解决闪退。文章还涵盖了问题诊断、设置备份及进阶排查方法,帮助用户彻底根除启动故障。

weixin_29234423的博客 925

磁盘读写过程

磁盘上数据必须用一个三维地址唯一标示:柱面号、盘面号、扇区号(磁道上的盘块)。 读过程: 当需要从磁盘读取数据时,系统会将数据逻辑地址传给磁盘,磁盘的控制电路按照寻址逻辑将逻辑地址翻译成物理地址,即确定要读的数据在哪个磁道,哪个扇区。 为了读取这个扇区的数据,需要将磁头放到这个扇区上方,为了实现这一点: 1)首先必须找到柱面,即磁头需要移动对准相应磁道,这个过程叫做寻道或定位; 2)...

zhudinglym的博客 1万+

向量乘法器设计

同样基于Wallace树乘法器,我们来构造向量乘法器。 在一些矩阵运算中经常用到向量的相乘运算,本例以4维向量为例子介绍向量乘法器的verilog HDL设计。 设向量a = (a1, a2, a3, a4), b = (b1, b2, b3, b4)。 则a 与 b的点乘为:a * b = a1 b1 + a2 b2 + a3 b3 + a4 b4, 即向量对应位置的值相乘,再相加...

Reborn Lee 2967

2017阿里内推笔试题--算法工程师(运筹优化)

2017阿里内推笔试题–算法工程师(运筹优化)题目沐哲是一个菜鸟仓库的一个拣货员,但他有非常个怪异的习惯。每次拣货的重量都要比之前拣的一个轻,每次拣到货后都可以得到1块钱,沐哲想知道这样最多能赚多少钱 32 34 7 33 21 2 13 12 3 11 26 36 16 30 22 1 24 14 20 23 25 5 19 29 27 15 9 17 31 4 6 18 8 10 3

shawpan的专栏 1万+

软考--软件设计师(磁盘管理的例题)

同一时间内只能允许一个进程及逆行写入,读出,所以对于双缓冲区来说,同一时间内可以一个进程写入,另一个进程读出。则当第一个盘块读出并在用户进程中处理的同时,第二个盘块进行写入,那么花费15微秒就可以完成。之后便形成了流水线模式。流水线周期为15微秒。:同一时间内只能允许一个进程进行写入读出,所以每个盘块经过缓冲区的时间是(15+5微秒),之后再用1微秒的时间进行处理。在处理的同时,下一个盘块写入缓冲区,形成流水线模式,流水线周期为20微秒。所以一共花费【(15+5+1)*(10-1)*(15+5)】微秒。

weixin_63566653的博客 873

PCB布局布线要求及多层电路板叠加原则

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考本文主要针对PCB布局布线中的要点进行了总结,并对多层电路板的叠加原则进行了解释。

Ka_wyb的博客 2933

操作系统——磁盘管理

本文简述操作系统中有关磁盘的相关知识点,作为软件设计师考试资料复习。

清酒伴风的博客 2066

ANSYS命令流黑箱揭秘:流体渗透压力载荷的七种收敛优化策略

本文深入解析ANSYS Workbench中流体渗透压力载荷的七种收敛优化策略,重点探讨接触探测点迭代逻辑、PPCN阈值动态调整及FPAT参数优化等关键技术。通过命令流示例和实战技巧,帮助工程师有效解决流体与结构相互作用仿真中的收敛难题,提升计算效率和精度。

weixin_29274337的博客 520

后仿真中《SDF反标必懂连载篇》之 <INTERCONNECT/IOPATH> 到底反标电路路径是哪里

对于SDF INTERCONNECT ENTRY 描述,我们在之前的文章有详解。读万卷书,行万里路。实践很重要。今天,搞一下SDF INTERCONNECT / IOPATH 延迟数据信息,究竟反标的是哪一路径延时?究竟在电路上一段段如何表现出延迟现象的呢?

那么菜的博客 2131

操作系统学习(十一)——磁盘

在操作系统中,磁盘(Disk) 是最主要的辅助存储设备,主要用于持久化存储文件和数据。 磁盘的管理对文件系统的效率、系统性能与数据安全有直接影响。

weixin_45857378的博客 1530

基于 YOLOv26 的光伏板热斑检测系统:红外+可见光

本文提出了一种基于YOLOv26的光伏板热斑检测系统,采用红外+可见光双模态融合方案。系统架构包含数据预处理、热斑检测、故障诊断和维修决策等模块,结合无人机巡检与地面监控。关键技术包括YOLOv26目标检测模型、双模态数据融合、边缘计算部署等。研究构建了包含多种故障类型的光伏板专业数据集,并采用数据增强技术提升模型性能。系统实现了热斑检测、分类(轻微/中等/严重/危急)以及功率损失评估等功能,为光伏电站智能运维提供解决方案。

一键难忘的博客 496

操作系统—磁盘

王道操作系统:磁盘 知识点汇总

qq_51173747的博客 1954

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

操作系统基础:磁盘组织与管理【上】

推荐关注博主!随时获取更多关于操作系统的最新技术分享!

m0_51574586的博客 1053

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【操作系统基础】磁盘结构的基本理解

文章目录磁盘结构磁盘格式化进程请求磁盘IO并发进程请求磁盘IO 磁盘结构 主轴:磁盘片是绕着主轴旋转的 磁头:用于读写磁盘片上面的数据 磁盘片:存放数据的 我们还发现,磁头不止一个,每个磁头都对应这一个盘面。 磁盘格式化 磁盘格式化:就是给磁盘重新分配一个文件系统,文件系统是os的概念; 一般不同的os使用的文件系统是不一样的; 这就像每个人的房子不一样,装修不一样的风格; 进程请求磁盘IO 当我们进程无论什么时候从磁盘中读写数据时候,它都需要向操作系统发出一个系统调用。 进程请求磁

呋喃吖的博客 1412

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Linux操作系统磁盘管理

小白带你了解Linux系统磁盘,命令和案例图文详解

Tianzs_的博客 1381

操作系统的磁盘调度

同学们,磁盘调度是不是很有意思?它是优化磁盘性能的大功臣,通过合理选算法,能减少磁头移动和旋转延时,让磁盘跑得更快。不同算法适合不同场景,FIFO简单但慢,SSTF快但不公平,SCAN和C-SCAN又快又稳。学会这些,你就知道怎么让磁盘听话了!有什么不明白的,随时问我,咱们下节课见!这篇博客逻辑清晰,内容丰富,配上流程图和例子,复习起来肯定得心应手!有什么想调整的吗?

qq_57484399的博客 817

操作系统:磁盘组织与管理

推荐关注博主!随时获取更多关于操作系统的最新技术分享!

m0_51574586的博客 1991

【操作系统·考研】磁盘和固态磁盘

磁盘是一种用于存储和读取数据的设备,它由涂有磁性物质的盘片和磁头组成。磁头通过固定的方式读取和写入数据,而磁盘则以高速旋转。数据存储在磁道和扇区中,磁道是同心圆上的一部分,而扇区是磁道的一部分,存储容量相同。磁盘驱动器包括磁头臂、主轴和电子设备,它们协同工作以实现数据的输入和输出。磁盘可以分为固定头和活动头磁盘,以及固定盘和活动盘磁盘。为了使用磁盘,需要进行低级格式化,将扇区结构格式化为特定的数据结构。此外,磁盘还可以进行分区和逻辑格式化,以便将文件系统的数据结构存储到磁盘上。总体而言,磁盘是一种重要的存储

qq_34920731的博客 1851
上一篇: [操作系统] I/O软件原理
下一篇: [操作系统] 时钟
LLLZHLIU
博客等级 码龄10年 19粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值