当前位置: 首页 > web >正文

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

一、磁盘

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

磁盘访问速度通常由以下三部分组成:

时间类型说明
寻道时间(Seek Time)移动磁头到目标柱面所需的时间,是最耗时的一项
旋转延迟(Rotational Latency)等待目标扇区转到磁头下方的时间(平均为半圈)
传输时间(Transfer Time)将数据从磁盘传输到内存所需的时间

示例:假设磁盘每分钟转7200圈,1圈=8.3ms,平均旋转延迟≈4.15ms

二、磁盘的结构

1. 物理结构

磁盘通常指的是硬盘(HDD),它由多个刚性盘片Platter)组成,每个盘片都涂有磁性材料,两面都可以用于存储数据。

  • 盘面(Surface):盘片的每一面。
  • 磁道(Track):每个盘面上按同心圆划分出的圆环。
  • 柱面(Cylinder):所有盘面在相同位置的磁道集合。
  • 扇区(Sector):每条磁道被划分为若干扇区,是最小读写单位(如512B、4KB)。
  • 磁头(Head):每个盘面配有磁头,用于读写数据。
  • 磁臂(Arm):用于移动磁头到不同的柱面。

2. 磁盘的逻辑结构

操作系统不直接使用物理结构,而是将磁盘划分为逻辑块进行管理:

  • 块(Block):文件系统中的基本读写单位(通常为4KB)。
  • 操作系统通过逻辑块地址(LBA)访问磁盘,隐藏了磁道/扇区的具体细节。

三、磁盘调度算法

磁盘调度算法是操作系统中负责优化磁盘I/O访问顺序的策略,其目标是减少磁头移动距离提高系统吞吐量,以及改善响应时间
由于磁盘访问中,寻道时间(磁头移动)最耗时,因此调度算法通常围绕如何优化磁头移动顺序设计。

调度算法:

算法名称全称主要思想
FCFSFirst Come First Serve请求到达顺序处理
SSTFShortest Seek Time First优先处理离当前磁头最近的请求
SCAN电梯算法磁头向一个方向移动,直到末端再反向
C-SCANCircular SCAN只向一个方向扫描,回到起点后重扫
LOOK改进的 SCAN只扫描到最远请求处,再折返
C-LOOK改进的 C-SCAN只扫描到最远请求处,循环到最小请求

1. FCFS(先来先服务)

原理:按照请求到达的先后顺序访问磁道,不考虑当前位置和最优路径。

  • 简单,公平;
  • 但可能导致大量磁头移动,效率低。

示例:磁头当前位置在 50,队列为:95, 180, 34, 119, 11, 123, 62, 64;
磁道移动距离:50→95→180→34→119→11→123→62→64(移动总距离较大)

2. SSTF(最短寻道优先)

原理:每次选择距离当前磁头位置最近的请求。

  • 寻道时间最短,效率高;
  • 可能造成饥饿(远处请求长时间等待)。

当前磁头在 50,最近的是 62 → 64 → 34…

3. SCAN(电梯算法)

原理:磁头朝一个方向移动,处理沿途请求,遇到磁道边界后反向继续。

  • 类似电梯上下运行,公平性更好
  • 减少饥饿,适合高负载场景

磁头从50向右移动,顺序访问大于50的请求,之后向左折返处理剩余请求。

4. C-SCAN(循环 SCAN

原理:磁头只向一个方向移动,处理完最右侧请求后直接回到最左侧重新开始。

  • 响应时间更均匀,避免边缘请求等待太久;
  • 不处理反向请求,回程是空移动。

5. LOOK

原理:与 SCAN 类似,但只扫描实际存在的请求区间,不盲目到磁道边界。

  • 更高效率;
  • 磁头“看到”最远请求就回头。

6. C-LOOK

原理只向一个方向移动,处理到最远请求后立即跳转回起点。

  • 避免空磁道扫描;
  • 提升系统响应一致性。

磁盘调度算法对比:

例:磁头当前在 50,请求队列:[95, 180, 34, 119, 11, 123, 62, 64]FCFS   :50→95→180→34→119→11→123→62→64
SSTF   :50→62→64→34→11→95→119→123→180
SCAN   :50→62→64→95→119→123→180→回头→34→11
C-SCAN :50→62→64→95→119→123→180→跳转→11→34
LOOK   :50→62→64→95→119→123→180→回头→34→11(不达磁道尽头)
C-LOOK :50→62→64→95→119→123→180→跳转→11→34(不达磁道尽头)

五、磁盘的分区与格式化

1. 分区(Partitioning)

  • 磁盘可以被划分为多个逻辑分区(C盘、D盘等),每个分区可以使用不同的文件系统。
  • 分区信息存储在 主引导记录(MBR)GUID 分区表(GPT)

2. 格式化(Formatting)

  • 格式化是将分区初始化为某种文件系统的过程,包括:

    • 写入文件系统结构(如FAT表、inode表等);
    • 建立根目录;
    • 初始化空闲空间管理。

六、磁盘的管理技术

1. 缓存(Cache)

  • 磁盘访问速度慢,操作系统使用页缓存或缓冲区提升性能。

2. I/O 调度(I/O Scheduling)

  • 结合磁盘调度和进程管理,减少I/O等待时间。

3. 预读(Read Ahead)

  • 操作系统预判将要访问的数据并提前加载,提高命中率。

4. 延迟写(Write Back)

  • 写操作先缓存,延迟真正写入磁盘,提升性能。

七、磁盘类型对比

类型HDD(机械硬盘SSD(固态硬盘
构造旋转盘片闪存芯片
速度慢(机械移动)快(无移动部件)
寿命较长有擦写次数限制
成本便宜昂贵
适合场景大容量存储高速访问场景

八、RAID技术(冗余磁盘阵列)

RAID(Redundant Array of Independent Disks)将多个磁盘组合成一个逻辑磁盘,提升性能和容错能力。

RAID级别特点
RAID 0条带化,提高性能,但无冗余
RAID 1镜像,数据冗余,提高可靠性
RAID 5带奇偶校验,性能与冗余兼顾
RAID 10RAID 1 + RAID 0,兼顾性能和可靠性

九、现代磁盘相关技术

  • NVMe协议:针对SSD优化的高速存储协议,比传统SATA快得多。
  • TRIM指令:SSD特有,通知删除的数据块可重用,提高寿命。
  • SMART监控:磁盘自检技术,用于健康状态预警。
  • 热插拔与热备份:提高可维护性。
http://www.xdnf.cn/news/10722.html

相关文章:

  • 【agent开发】部署LLM(一)
  • 内容中台的实施基石是什么?
  • 简道云--第一个表单
  • 普中STM32F103ZET6开发攻略(二)
  • 人工智能工程技术专业 和 其他信息技术专业 有哪些关联性?
  • window/linux ollama部署模型
  • docker使用sh脚本创建容器,保持容器正常运行,异常关闭后马上重启
  • 【Unity】云渲染
  • 第1章:走进Golang
  • 《类和对象--继承》
  • JavaScript中的常量值与引用值:从基础到实践
  • Vue-Leaflet地图组件开发(二)地图核心功能实现
  • ck-editor5的研究 (6):进一步优化页面刷新时,保存提示的逻辑
  • 5.29 自学测试 Linux基础 Day4
  • webfuture:提示“Strict-Transport-Security头未设置”漏洞的解决方法
  • 深度学习pycharm debug
  • Cesium 自带的标注碰撞检测实现标注避让
  • esp32关于PWM最清晰的解释
  • 渊龙靶场-sql注入(数字型注入)
  • 快乐大冒险:解锁身体里的 “快乐密码”
  • 力扣刷题Day 68:搜索插入位置(35)
  • 如何在 Windows 11 24H2 的任务栏时钟中显示秒数
  • js的时间循环的讲解
  • 100V离线语音通断器
  • java笔记08
  • 15-2021剑侠情缘2-各种修复完善+虚拟机单机端+外网服务端整理+文本教程+视频教程
  • Linux服务器安装GUI界面工具
  • 【数据集】NCAR CESM Global Bias-Corrected CMIP5 Output to Support WRF/MPAS Research
  • Redis部署架构详解:原理、场景与最佳实践
  • Java函数式编程(中)