操作系统-磁盘

文章目录

    • 磁盘的结构
      • 一、磁盘的物理结构
      • 二、磁盘的逻辑结构
    • 磁盘的调度算法
      • 磁盘时间
      • 算法
      • 先来先服务(FCFS - First-Come, First-Served)
      • 最短寻道时间优先(SSTF - Shortest Seek Time First)
      • 扫描算法(SCAN,也称电梯算法,有点像雨刷)
      • LOOK算法
      • 循环扫描算法(C-SCAN - Circular SCAN)
      • 循环LOOK算法(C-LOOK)
      • 算法对比
    • 减少磁盘延迟时间
    • 磁盘的管理
      • 磁盘初始化
      • 引导块(Boot Block)
      • 坏块管理
    • SSD
      • 原理
      • 组成
      • 读写性能特征
      • 磨损均衡技术
      • SSD 与机械硬盘 (HDD) 的对比

磁盘的结构

一、磁盘的物理结构

在这里插入图片描述

  1. 磁盘盘片(Platters)

    • 磁盘的核心部分是多个盘片,每个盘片都是用光滑的金属或玻璃材质制成,表面涂有磁性材料。
    • 每个盘片两面都可以用于存储数据。
  2. 磁头(Read/Write Head)

    • 磁头位于磁盘臂(actuator arm)上,每个磁头负责读取和写入一个盘片的单面。
    • 磁头通过悬浮在盘片表面极小的距离上来读取和写入数据,确保不接触盘片以防止损坏。
  3. 磁盘臂(Actuator Arm)

    • 磁盘臂用于移动磁头到达所需的数据位置。
    • 其末端连接磁头并通过驱动器控制器在不同的磁道间快速移动。
  4. 主轴(Spindle)

    • 盘片由主轴固定并旋转,旋转速度以每分钟转数(RPM,Revolutions Per Minute)来表示,如 5400 RPM、7200 RPM 或更高的 10,000+ RPM。
    • 主轴的转速影响磁盘的读取和写入速度。
  5. 驱动器控制器(Drive Controller)

    • 内置在硬盘中的电路板,负责控制磁头、盘片的旋转,以及数据的输入和输出。

二、磁盘的逻辑结构

逻辑结构是磁盘如何组织和存储数据的方式。常见的逻辑结构包括:

  1. 扇区(Sector)

    • 磁盘最小的数据存储单元,传统上每个扇区大小为 512 字节,较新的磁盘扇区大小可能是 4096 字节(即 4KB)。
    • 每个扇区都有唯一的编号。
  2. 磁道(Track)

    • 磁盘表面上同心圆形的轨道,每个磁盘面由多个磁道组成。
    • 每个磁道由若干扇区组成,磁头在磁道上移动来读取和写入数据。
  3. 柱面(Cylinder)

    • 由不同盘片的相同位置的磁道组成,贯穿整个磁盘堆叠。即,多个磁盘面中相同半径的磁道组成一个柱面。
    • 磁头可以在一个柱面内同时访问不同盘片的相应位置。
  4. 扇区地址(LBA)

    • 现代硬盘普遍采用 LBA(Logical Block Addressing)方式,它使用线性地址来标识数据存储的位置,提高了寻址效率。

磁盘的调度算法

磁盘时间

在这里插入图片描述
寻找时间,延迟时间,传输时间。所能影响的只有寻道时间

算法

磁盘调度算法用于决定磁盘读写请求的顺序,以提高磁盘访问效率,减少平均寻道时间和响应时间。下面介绍几种常见的磁盘调度算法及其特点:

先来先服务(FCFS - First-Come, First-Served)

  • 算法描述:按照请求到达的顺序进行调度,不做任何优化。
  • 优点:实现简单,公平地处理所有请求。
  • 缺点:可能导致“饥饿”或长时间延迟,尤其是在请求分布不均时,容易出现长寻道时间。

最短寻道时间优先(SSTF - Shortest Seek Time First)

  • 算法描述:选择与当前磁头位置距离最近的请求进行调度。谁离磁道近就选择谁。
  • 优点:减少了平均寻道时间,效率比FCFS高。
  • 缺点:可能出现“饥饿”现象,远端请求可能一直得不到处理,因为短距离请求持续加入。

扫描算法(SCAN,也称电梯算法,有点像雨刷)

  • 算法描述:磁头在磁盘上来回移动,处理其路径上所有的请求。每当到达一个边界时,磁头改变方向。
  • 优点:较均衡地处理请求,减少了磁头的频繁移动,避免了SSTF中的“饥饿”现象。
  • 缺点:边缘的请求可能会等待较长时间。

LOOK算法

  • 算法描述:与SCAN类似,但LOOK算法不会将磁头移动到最远端的边界,而是根据请求位置,在有请求的最后一个位置掉头。
  • 优点:减少了不必要的磁头移动,进一步提高了效率。
  • 缺点:在极端情况下可能存在一定的不公平性。

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

  • 算法描述:磁头从一端开始移动到另一端,处理路径上的请求。当磁头到达一端后,立即返回另一端并继续处理,而不在返回路径上处理请求。
  • 优点:提供更均衡的响应时间,对磁盘中心和边缘的请求处理较公平。
  • 缺点:可能增加回程路径上的非工作时间,但整体公平性更好。

循环LOOK算法(C-LOOK)

  • 算法描述:类似C-SCAN,磁头只在有请求的位置掉头,而不是移动到磁盘的最远端。磁头到达一端后直接返回起始端继续处理。
  • 优点:减少了磁头回程路径上的非工作时间,同时保持了C-SCAN的公平性。
  • 缺点:仍然有一定的空闲时间在返回路径上。

算法对比

调度算法优点缺点适用场景
FCFS实现简单,公平可能出现长时间延迟和不均衡小型系统或低负载场景
SSTF平均寻道时间短可能产生“饥饿”问题高效读写,但请求频繁
SCAN相对公平,减少了频繁移动边缘请求等待时间较长负载较重的系统
C-SCAN更加公平,对各个请求响应时间一致增加了磁头的回程非工作时间大型系统或需要公平性
LOOK减少不必要的移动仍有边缘请求可能延迟需要灵活调度的系统
C-LOOK保持公平性,减少回程非工作时间实现复杂性稍高公平性优先的系统
N-Step SCAN高负载下提供稳定响应时间实现复杂,管理较难负载波动较大的系统
FSCAN提供稳定的调度,不受动态请求影响实现复杂,内存需求高高负载、高并发场景

减少磁盘延迟时间

  • 交替编号是指按照某种间隔或规律分布编号,通常用于提高性能和并行性。
  • 错位命名是指打乱编号顺序的分布方式,通常用于优化访问效率或分散存储以减少冲突和损坏。
    两者的应用可以根据存储系统和文件系统的需求来实现不同的优化策略,确保数据的高效和可靠存储。
    读扇区以后需要等待进行处理,因此采用交替编号,0,4,1,5,2,6,3,7
    错位命名,1号扇区下方是4号扇区,提供时间。

磁盘的管理

磁盘初始化

磁盘初始化是指对新磁盘进行初步配置,使其能够被操作系统识别和使用。
包括以下几个步骤:

  • 分区:磁盘被划分为若干逻辑分区,每个分区可以被不同的操作系统或文件系统使用。常见的分区类型有主分区、扩展分区和逻辑分区。
  • 格式化:分区后,每个分区被格式化为特定的文件系统,如 NTFS、FAT32、ext4 等。格式化会在分区上创建文件系统结构(如目录表、空闲空间表等)。
  • 引导扇区:在分区的开始,系统会创建引导扇区,其中包含引导加载程序和一些基本的文件系统信息。

引导块(Boot Block)

通过自举装入程序可以找到引导块。是用于启动操作系统的特殊磁盘区域。它是磁盘上被指定为启动操作系统的扇区,通常位于磁盘的第一个扇区(称为主引导记录,MBR)或 GUID 分区表(GPT)的头部。引导块的具体作用包括:

  • 引导加载程序:引导块存储了引导加载程序的第一部分代码,负责引导整个操作系统的加载过程。对于 MBR,这段代码约有 512 字节。
  • 操作系统选择:引导块可以用于多重引导设置,允许用户在多个操作系统之间进行选择。
  • 引导过程
    1. 计算机启动时,BIOS/UEFI 会将控制权交给磁盘上的引导块。
    2. 引导块会加载操作系统内核或其他引导加载程序的下一部分。

MBRGPT是常见的引导块结构,其中:

  • MBR:兼容性高,但支持的最大磁盘容量为 2 TB,只能有 4 个主分区。
  • GPT:现代标准,支持更大的磁盘和多达 128 个分区(在大多数系统中)。

坏块管理

磁盘在使用过程中,某些扇区可能会变得不可读或写,这些称为坏块

  • 坏块检测

    • 磁盘扫描:通过工具(如 chkdskfsck)扫描磁盘来检测坏块,标记无法使用的扇区。
    • SMART 技术:硬盘内置的自监控、分析和报告技术(SMART)可监测磁盘的健康状况,预警潜在故障。
  • 坏块重映射

    • 备用扇区:现代磁盘通常预留了备用扇区,一旦发现物理坏块,磁盘控制器会将数据重定向到备用扇区,使用户感觉不到坏块的存在。
    • 动态分配:在写入数据时,如果发现坏块,磁盘控制器会自动将数据写入备用扇区。

SSD

固态硬盘(SSD)是一种基于闪存存储技术(FLASH)的存储设备,相比传统机械硬盘(HDD),在性能、可靠性和功耗等方面都有显著优势。

原理

SSD 的核心技术是 NAND 闪存和控制器芯片。

  • NAND 闪存:SSD 使用 NAND 型闪存芯片来存储数据,数据以电子形式保存在称为“单元”的结构中。单元可以存储一位(SLC,单层单元)或多位数据(MLC,多层单元;TLC,三层单元;QLC,四层单元)。
  • 控制器:SSD 的控制器负责管理数据的读写操作、纠错、垃圾回收和磨损均衡等功能。它是SSD性能的核心,影响数据传输速度和可靠性。
  • 缓存:一些高性能的 SSD 会配备 DRAM 缓存,用于加速数据写入和读取。

组成

典型 SSD 的组成包括以下部分:

  • 闪存芯片:存储数据的主要组件,通常由 NAND 型闪存构成。
  • 控制器:负责处理数据的输入输出操作,包括数据管理和优化算法(如垃圾回收和磨损均衡)。
  • DRAM 缓存:用于临时存储写入数据或元数据,以提高读写性能。
  • 接口:连接 SSD 与计算机的桥梁,常见的接口类型包括 SATA、NVMe(基于 PCIe)和 mSATA。

读写性能特征

  • 随机读取/写入速度:随机读取和写入 IOPS(每秒输入输出操作次数)远高于 HDD。以页写。以块为单位,进行擦除。因此需要复制到别的地方,写完以后,再清楚,删除。会导致逻辑地址映射的物理地址会变换。读快,写慢。
  • 顺序读取/写入速度:SSD 在顺序读取和写入时也比 HDD 快得多。SATA 接口的 SSD 顺序读取速度通常在 500 MB/s 左右,而 NVMe 接口的 SSD 可以达到数 GB/s。
  • 访问时间:SSD 的访问时间在毫秒级以下,通常只有几微秒,远小于 HDD 的数毫秒。
  • 数据一致性:由于没有磁盘转速的限制,SSD 在系统处理并发时能够提供更一致的数据读写性能。

磨损均衡技术

由于 NAND 闪存单元有有限的擦写次数(即写入寿命),为防止某些存储单元比其他单元磨损更快,SSD 采用磨损均衡(Wear Leveling)技术。其主要原理如下:

  • 静态磨损均衡:定期将存储在寿命较长区域的冷数据(长时间不变的数据)移动到较新的闪存块,防止某些区域因频繁擦写而过早损坏。
  • 动态磨损均衡:在写入新数据时,控制器会分配新数据到写入次数较少的闪存块,以确保均匀使用。
  • 垃圾回收:SSD 通过定期回收和整理闪存空间,确保可以用的新块可用,减少写入放大的影响。

SSD 与机械硬盘 (HDD) 的对比

特性SSD(固态硬盘)HDD(机械硬盘)
结构无机械部件,使用 NAND 闪存存储数据有旋转的磁盘和机械臂来读写数据
读写性能读取和写入速度非常快,顺序读取速度可达 500 MB/s(SATA)到数 GB/s(NVMe)顺序读取速度约 100–150 MB/s
随机访问微秒级访问时间,通常为几微秒毫秒级访问时间,通常为数毫秒
耐用性没有机械部件,更耐震动和跌落机械部件易受物理损坏,震动和跌落有风险
功耗功耗较低功耗较高,尤其在旋转和寻道时
噪音完全静音有噪音,尤其是在高速旋转和寻道时
存储容量逐渐提升,目前主流容量为 256 GB 到数 TB高容量更普遍,容量通常在 1 TB 到 18 TB 及以上
价格每 GB 价格较高,但正在下降每 GB 价格较低,适合大容量存储
使用寿命有擦写次数限制,但通过磨损均衡技术可延长寿命使用时间久后机械部件会磨损
抗震能力出色的抗震能力抗震能力较弱,易受物理冲击损坏

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

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

相关文章

C++类和对象 (下)

文章目录 前言一. 再探构造函数初始化列表特性总结练习 二. 类型转换2.1 隐式类型转换2.2 临时对象具有常性2.3 explicit关键字2.4 多参数类型转化 三. static成员概念特性练习 四. 友元概念特性 五. 内部类概念特性 六. 匿名对象概念特性 七. 对象拷贝时的编译器优化END 前言 …

玩的花,云产品也能拼团了!!!

说起拼单大家都不陌生,电商一贯的营销手段,不过确实可以给消费者省下一笔钱。双11到了,腾讯云产品也玩起了拼团,这明显是对开发人员和各企业的福利。 对于有云产品需求的个人或企业,这次绝对是难得的一次薅羊毛机会。…

深度学习-张量相关

一. 张量的创建 张量简介 张量是pytorch的基本数据结构 张量,英文为Tensor,是机器学习的基本构建模块,是以数字方式表示数据的形式。 例如,图像可以表示为形状为 [3, 224, 224] 的张量,这意味着 [colour_channels, h…

境内部署DIfy(上篇)

背景: 由于近2年大模型的火热催生出很多业务场景,这也迫使我们这些老一辈的程序搬运工去接触新事物,“工欲善其事必先利其器”,先从大模型应用开始摸索,网上大把工具,再三思考后决定先从Dify开始&#xff…

[CKS] 利用Trivy对image进行扫描

最近准备花一周的时间准备CKS考试,在准备考试中发现有一个题目关于Trivy镜像安全扫描的题目。 What’s Trivy Trivy的官方仓库https://github.com/aquasecurity/trivy,Trivy是一个开源的容器镜像漏洞扫描工具。它通过分析容器镜像中的操作系统包和应用…

vue3入门知识(一)

vue3简介 性能的提升 打包大小减少41%初次渲染快55%,更新渲染快133%内存减少54% 源码的升级 使用Proxy代替defineProperty实现响应式重写虚拟DOM的实现和Tree-Shaking 新的特性 1. Composition API(组合API) setupref与reactivecomput…

数据结构和算法入门

复杂度 大O记法 计算机怎么判断程序性能? 我们都知道编程基本上是在和数据打交道,大多数程序基本都在处理获取数据、查询数据、操作数据、返回数据相关的逻辑。 因此出现了数据结构和算法,这两者出现本质为了解决如何能够更快、更省进行数…

【Linux第八课-进程间通信】管道、共享内存、消息队列、信号量、信号、可重入函数、volatile

目录 进程间通信为什么?是什么?怎么办?一般规律具体做法 匿名管道原理代码 命名管道原理代码 system V共享内存消息队列信号量信号量的接口 信号概念为什么?怎么办?准备信号的产生信号的保存概念三张表匹配的操作和系统…

串的模式匹配

子串的定位操作通常称为串的模式匹配,它求的是子串(常称模式串)在主串中的位置。 子串——主串的一部分,一定存在 模式串——不一定能在主串中找到 朴素模式匹配 将主串中所有长度为m的子串(共有n-m1个)依次与模式串对比&…

继承的学习

1.继承 继承权限在类外,访问权限在类内部 1.1继承的概念 继承是面向对象程序设计使代码可以复用的重要手段(解决类层次的复用问题) 派生类:类特性的基础上进行扩展,增加方法(成员函数)和属性…

YOLOPv2论文翻译

YOLOPv2: Better, Faster, Stronger for Panoptic Driving Perception 摘要 在过去的十年中,多任务学习方法在解决全景驾驶感知问题方面取得了令人鼓舞的成果,既提供了高精度又具备高效能的性能。在设计用于实时实际自动驾驶系统的网络时,这…

跳表原理-课堂笔记

课程地址 跳表是一种基于随机化的有序数据结构,它提出是为了赋予有序单链表以 O(logn) 的快速查找和插入的能力 创建 首先在头部创建一个 sentinel 节点,然后在 L1 层采用“抛硬币”的方式来决定 L0 层的指针是否增长到 L1 层 例如上图中,L…

贪心day04(买卖股票的最佳时机)

1.买卖股票的最佳时机 题目链接:. - 力扣(LeetCode) 思路:我们其实只需遍历一篇就可以解决这个问题。首先我们定义一个min为无穷大值,再遍历只要有数字比min跟小我们就更改min的值就好,此时我们只需要找出…

【Python爬虫实战】深入解锁 DrissionPage:ChromiumPage 自动化网页操作指南

🌈个人主页:易辰君-CSDN博客 🔥 系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html ​ 目录 前言 一、ChromiumPage基础操作 (一)初始化Drission 和 ChromiumPage 对象 &#xff0…

VS Code 插件 MySQL Shell for VS Code

https://marketplace.visualstudio.com/items?itemNameOracle.mysql-shell-for-vs-code

稳压二极管详解

目录 1. 工作原理 2. 稳压二极管的伏安特性曲线 3. 正向特性: 4. 反向特性 5. 稳定电压(Vz) 6. 动态电阻(rz) 7.最大耗散功率(PzM) 8. 最大稳定工作电流(IzMAX)和…

Springboot 一个西餐主题网站-计算机设计毕业源码73020

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 2.2.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 系统总体设…

JS渗透(安全)

JS逆向 基本了解 作用域: 相关数据值 调用堆栈: 由下到上就是代码的执行顺序 常见分析调试流程: 1、代码全局搜索 2、文件流程断点 3、代码标签断点 4、XHR提交断点 某通js逆向结合burp插件jsEncrypter 申通快递会员中心-登录 查看登录包…

世界技能竞赛大数据应用开发环境1:1还原

关注我,私信我获得集群环境 集群情况 模块A搭建环境,在容器中搭建大数据平台 Hadoop HA环境 Pc机,安装安装比赛需要软件 模块B中使用idea快速开发完成数据处理 模块E包含了接口数据,使用vs code快速搭建vue数据可视化

【c++丨STL】vector模拟实现

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:C、STL 目录 前言 一、vector底层刨析 二、模拟实现 1. 属性、迭代器以及函数声明 2. 功能实现 交换两个容器的内容 构造函数 拷贝构造 赋值重载 析构…