操作系统-磁盘

news2024/11/25 22:51:43

文章目录

    • 磁盘的结构
      • 一、磁盘的物理结构
      • 二、磁盘的逻辑结构
    • 磁盘的调度算法
      • 磁盘时间
      • 算法
      • 先来先服务(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.coloradmin.cn/o/2237752.html

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

相关文章

【Linux】【信号操作】汇总整理

信号(Signals)是操作系统中用于通知进程发生特定事件的一种机制。信号可以由软件或硬件触发,并且可以被进程捕获和处理。以下是信号的相关概念、常见信号列表、信号处理以及相关API的汇总整理。 信号概述 信号是操作系统向进程发出的通知&am…

必备的计算机软件专业资料汇总,包括:计算机专业实习报告,计算机毕业设计成品(含源码和论文1900套)

大学期间必备的计算机软件专业资料汇总,包括:计算机专业实习报告(58篇)、计算机毕业设计成品(含源码和论文,1900多套,包括C语言/PHP/VB/java/JSP/Andorid/Python/微信小程序等)、HTM…

业务模块部署

一、部署前端 1.1 window部署 下载业务模块前端包。 (此包为耐威迪公司发布,请联系耐威迪客服或售后获得) 包名为:业务-xxxx-business (注:xxxx为发布版本号) 此文件部署位置为:……

使用kalibr_calibration标定相机(realsense)和imu(h7min)

vslam-evaluation/VINS/Installation documentation/4.IMU和相机联合标定kalibr_calibration.md at master DroidAITech/vslam-evaluation GitHub 目录 1.kalibr安装 1.1安装依赖项 1.2创建工作空间 1.3下载kalibr并编译 1.4设置环境变量 2.准备标定板 3.配置驱动和打…

Java | Leetcode Java题解之第551题学生出勤记录I

题目&#xff1a; 题解&#xff1a; class Solution {public boolean checkRecord(String s) {int absents 0, lates 0;int n s.length();for (int i 0; i < n; i) {char c s.charAt(i);if (c A) {absents;if (absents > 2) {return false;}}if (c L) {lates;if …

MATLAB课程:AI工具辅助编程——MATLAB+LLMs

给出一些可能有用的方法辅助大家写代码。 方法一&#xff1a;MATLAB软件LLM (不太懂配置的同学们为了省事可以主要用这个方法) 方法一特别针对本门MATLAB教学课程&#xff0c;给出一种辅助ai工具的操作指南。MATLAB中可以安装MatGPT插件&#xff0c;该插件通过调用ChatGPT的API…

腾讯混元3D-1.0:文本到三维和图像到三维生成的统一框架

虽然三维生成模型极大地改进了艺术家的工作流程&#xff0c;但现有的三维生成扩散模型存在生成速度慢、泛化能力差的问题。 为了解决这个问题&#xff0c;我们提出了一种名为 "Hunyuan3D-1.0 "的两阶段方法&#xff0c;包括精简版和标准版&#xff0c;均支持文本和图…

现代Web开发:Vue 3 组件化开发实战

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 现代Web开发&#xff1a;Vue 3 组件化开发实战 现代Web开发&#xff1a;Vue 3 组件化开发实战 现代Web开发&#xff1a;Vue 3 组…

VBA08-if语句

一、单行 If 语句 If x > 10 Then MsgBox "x is greater than 10"二、多行 If...Then...End If 语句 If x > 10 ThenMsgBox "x is greater than 10"y x 5 End If 三、If...Then...Else 语句 If condition Then 当条件为真时执行的代码块stateme…

深度学习中的感受野:从基础概念到多层次特征提取

在深度学习&#xff0c;特别是计算机视觉任务中&#xff0c;感受野&#xff08;Receptive Field&#xff09;是一个至关重要的概念。它指的是在神经网络中某一层的神经元在输入图像上“看到”的区域大小。感受野的大小影响了网络能捕捉的特征层级&#xff0c;从而决定了它的特征…

Jekins篇(搭建/安装/配置)

目录 一、环境准备 1. Jenkins安装和持续集成环境配置 2. 服务器列表 3. 安装环境 Jekins 环境 4. JDK 环境 5. Maven环境 6. Git环境 方法一&#xff1a;yum安装 二、JenKins 安装 1. JenKins 访问 2. jenkins 初始化配置 三、Jenkins 配置 1. 镜像配置 四、Mave…

ElasticSearch备考 -- 集群配置常见问题

一、集群开启xpack安全配置后无法启动 在配置文件中增加 xpack.security.enabled: true 后无法启动&#xff0c;日志中提示如下 Transport SSL must be enabled if security is enabled. Please set [xpack.security.transport.ssl.enabled] to [true] or disable security b…

C++ : STL容器(适配器)之stack、queue剖析

STL容器适配器之stack、queue剖析 一、stack、queue的接口&#xff08;一&#xff09;stack 接口说明&#xff08;二&#xff09;queue 接口说明 二、stack、queue的模拟实现&#xff08;一&#xff09;stack、queue是容器适配器stack、queue底层默认容器--deque1、deque概念及…

排序算法.

排序算法是最常用的一种算法.它解决的主要问题是在一定的时间复杂度和空间复杂度的条件下,对n个数按照一定的顺序进行排序.排序算法主要分为四大类,即插入类,交换类,选择类和归并类,不同的排序算法的时间复杂程度和空间复杂程度差别很大. 排序算法主要有以下几种: 1.插入类排…

window下安装rust 及 vscode配置

安装 安装mingw64 &#xff08;c语言环境 选择posix-ucrt&#xff09; ucrt:通用c运行时库配置mingw64/bin的路径到环境变量中在cmd窗口中输入命令 "gcc -v" 4. 下载Rust安装程序 安装 Rust - Rust 程序设计语言 5. 配置rustup和cargo目录 &#xff08;cargo是包管…

contos7.9 部署3节点 hadoop3.4 集群 非高可用

contos7.9 部署3节点 hadoop3.4 集群 非高可用 contos7.9 部署3节点 hadoop3.4 集群 非高可用环境信息服务器角色分配服务器配置服务器配置初始化 init_server.sh配置主机名映射所有节点配置 hosts文件 配置免密登录 hadoop 安装环境配置下载安装包下载 jdk1.8hadoop3.4 分发安…

M1M2 MAC安装windows11 虚拟机的全过程

M1/M2 MAC安装windows11 虚拟机的全过程 这两天折腾了一下windows11 arm架构的虚拟机&#xff0c;将途中遇到的坑总结一下。 1、虚拟机软件&#xff1a;vmware fusion 13.6 或者 parallel 19 &#xff1f; 结论是&#xff1a;用parellel 19。 这两个软件都安装过&#xff0…

【设计模式系列】享元模式(十五)

目录 一、什么是享元模式 二、享元模式的角色 三、享元模式的典型应用场景 四、享元模式在ThreadPoolExecutor中的应用 1. 享元对象&#xff08;Flyweight&#xff09;- 工作线程&#xff08;Worker&#xff09; 2. 享元工厂&#xff08;Flyweight Factory&#xff09;- …

国产化浪潮下,高科技企业如何选择合适的国产ftp软件方案?

高科技企业在数字化转型和创新发展中&#xff0c;数据资产扮演着越来越重要的角色。在研发过程中产生的实验数据、设计文档、测试结果等&#xff0c;专利、商标、版权之类的创新成果等&#xff0c;随着信息量急剧增加和安全威胁的复杂化&#xff0c;传统的FTP软件已经不能满足这…

大模型人工智能课程全栈完整学习路径

嘿&#xff0c;朋友们&#xff0c;今天我们聊点高级的——大模型人工智能课程的全栈学习路径。不过别慌&#xff0c;虽然听起来高大上&#xff0c;但咱们慢慢来。从零开始&#xff0c;一步步带你走进这个神奇的世界。喝杯咖啡&#xff0c;穿上最舒适的拖鞋&#xff0c;准备好踏…