【OS笔记44】:磁盘存储管理

文章目录

    • [7.8.1 磁盘物理特性](#7.8.1 磁盘物理特性)
      • [1. 物理结构](#1. 物理结构)
      • [2. I/O 操作步骤](#2. I/O 操作步骤)
    • [7.8.2 磁盘系统与磁盘分类](#7.8.2 磁盘系统与磁盘分类)
      • [1. 固定头磁盘](#1. 固定头磁盘)
      • [2. 移动头磁盘](#2. 移动头磁盘)
    • [7.8.3 磁盘调度算法](#7.8.3 磁盘调度算法)
      • [1. 先来先服务](#1. 先来先服务)
      • [2. 最短寻道时间优先](#2. 最短寻道时间优先)
      • [3. 电梯调度算法 / 扫描法 (SCAN)](#3. 电梯调度算法 / 扫描法 (SCAN))
      • [4. 单向扫描法](#4. 单向扫描法)
  • [第7章 本章小结](#第7章 本章小结)

核心目标:磁盘是计算机主要的辅助存储器。

7.8.1 磁盘物理特性

1. 物理结构

  • 盘面:磁盘由多个盘片叠在一起,每个盘片有两个面。
  • 磁道:盘面被划分成一个个同心圆,称为磁道。
  • 柱面 :所有盘面上半径相同的磁道构成了柱面。(注意:读写数据时,磁头是先定位到柱面,然后电子切换磁头,所以同一柱面的数据读写最快,不需要机械移动)。
  • 扇区:磁道被进一步划分为扇区,这是物理读写的基本单位。

2. I/O 操作步骤

要想读写数据,必须经历三个步骤:

  1. 寻找 :移动磁头臂,将磁头定位到指定的柱面 。(机械运动,最慢
  2. 旋转 :等待指定的扇区旋转到磁头下方。
  3. 传输:数据在磁头和内存之间传输。

7.8.2 磁盘系统与磁盘分类

1. 固定头磁盘

  • 特点:每个磁道都有一个专用的读写头。
  • 优缺点:读写时不需要移动磁头(无寻道时间),速度极快,但成本极高。

2. 移动头磁盘

  • 特点:每个盘面只有一个磁头,需要通过机械臂移动来跨越不同的磁道。
  • 优缺点:成本低,但速度慢(因为有物理移动)。
  • 重点 :因为移动慢,所以我们需要 "磁盘调度算法" 来规划路线,少走弯路。

7.8.3 磁盘调度算法

场景假设

当前磁头位置:53号 柱面。

请求队列(等待访问的柱面序列):98, 183, 37, 122, 14, 124, 65, 67

1. 先来先服务

FCFS - First Come First Serve

  • 原理:按请求产生的先后顺序进行访问,不进行任何优化。
  • 路线:53 -> 98 -> 183 -> 37 -> 122 -> 14 -> 124 -> 65 -> 67。
  • 结果 :总移动距离 640 个柱面。
  • 评价:公平,但效率极低,磁头来回大幅度摆动,寻找时间长。

2. 最短寻道时间优先

SSTF - Shortest Seek Time First

  • 原理 :贪心算法。每次都选择距离当前磁头最近的那个请求进行服务。

  • 路线

    1. 当前 53,最近的是 65。
    2. 当前 65,最近的是 67。
    3. ... 依次类推 ...
    • 序列:53 -> 65 -> 67 -> 37 -> 14 -> 98 -> 122 -> 124 -> 183。
  • 评价
    • 优点:平均寻道时间较短,性能好于 FCFS。
    • 缺点 :可能产生 "饥饿" 现象。如果一直有附近的请求源源不断地来,远处的请求(如 183)可能永远排不上队。

3. 电梯调度算法 / 扫描法 (SCAN)

  • 原理 :像电梯一样,磁头固定在一个方向 上移动(如向外),途中处理所有请求,直到到达边缘(或该方向无请求),然后改变方向(向里),继续处理。
  • 路线
    • 假设向磁道号增加的方向移动:53 -> 65 -> 67 -> 98 -> 122 -> 124 -> 183 -> (掉头) -> 37 -> 14。
  • 结果:总移动距离大幅减少。
  • 评价
    • 优点:消除了"饥饿"现象,效率高。
    • 缺点:对两端的请求不太公平(刚扫过去又要等一轮)。

4. 单向扫描法

C-SCAN / Circular SCAN

  • 原理 :规定磁头只在单方向移动 时读写。当磁头到达最远端时,立即快速返回到起始端(0号柱面),返回途中不进行读写。
  • 目的:为了减少最内侧和最外侧磁道的等待时间不均问题,提供更均匀的响应时间。

第7章 本章小结

  1. I/O 系统架构
    • 外设 -> 控制器 -> 通道 -> CPU。
  2. 数据传送方式 (CPU 逐渐解放的过程):
    • 程序轮询(忙等)。
    • 中断(并行,字传输)。
    • DMA(直接存储访问,块传输)。
    • 通道(I/O 处理机,负责复杂的 I/O 程序)。
  3. 核心技术
    • 中断技术:系统调用的基础,处理流程(保护现场/恢复现场)。
    • 缓冲技术:解决速度不匹配(单缓冲/双缓冲/循环缓冲)。
    • SPOOLing 技术:将独占设备虚拟化为共享设备(如虚拟打印机)。
  4. 设备分配
    • 数据结构:SDT -> DCT -> COCT -> CHCT。
    • 策略:先拿设备,再拿控制器,最后拿通道。
  5. 磁盘调度 (必考计算):
    • FCFS, SSTF, SCAN, C-SCAN 的算法逻辑及优缺点。
相关推荐
四谎真好看4 小时前
JavaWeb学习笔记(Day13)
笔记·学习·学习笔记·javaweb
承渊政道4 小时前
Linux系统学习【Linux基础开发工具】
linux·运维·笔记·学习·centos·编辑器
_OP_CHEN5 小时前
【Linux系统编程】(二十七)手撕动静态库原理与实战:从底层逻辑到代码落地
linux·操作系统·动态库·静态库·c/c++·库的原理与制作
承渊政道5 小时前
C++学习之旅【C++中模板进阶内容介绍】
c语言·c++·笔记·学习·visual studio
浅念-5 小时前
C语言——动态内存管理
c语言·开发语言·c++·笔记·学习
ASKED_201914 小时前
Langchain学习笔记一 -基础模块以及架构概览
笔记·学习·langchain
Lois_Luo14 小时前
Obsidian + Picgo + Aliyun OSS 实现笔记图片自动上传图床
笔记·oss·图床
(❁´◡`❁)Jimmy(❁´◡`❁)14 小时前
Exgcd 学习笔记
笔记·学习·算法
傻小胖15 小时前
21.ETH-权益证明-北大肖臻老师客堂笔记
笔记·区块链
一只小小的芙厨18 小时前
寒假集训笔记·树上背包
c++·笔记·算法·动态规划