软考(软件设计师)存储管理—设备管理,磁盘调度

I/O软件的核心目标是管理硬件差异、提供统一接口、实现高效可靠的数据传输

  1. 核心目标:

    • 设备无关性: 应用程序无需关心具体硬件细节。
    • 错误处理: 处理硬件错误和传输异常。
    • 同步/异步传输: 支持阻塞(等待完成)和非阻塞(立即返回,后续通知)操作。
    • 缓冲: 解决速度不匹配(CPU vs 外设)、协调传输单元大小、支持回写(write-behind)。
    • 共享与独占: 管理设备访问(如磁盘共享,打印机独占)。
  2. 分层结构(核心思想):

    • 用户级I/O软件: 库函数(如printf, fread),提供用户友好接口。
    • 设备无关操作系统软件(设备独立性层)
    • 设备驱动程序
    • 中断处理程序: 底层,响应硬件中断信号,唤醒阻塞的驱动程序。

在这里插入图片描述

好的!这些I/O技术的诞生均源于计算机核心矛盾CPU高速计算能力与低速I/O设备之间的巨大速度差异。以下是各技术诞生的根本目的和作用解析:


设备管理采用技术

一、通道技术(Channel)

诞生目的
解决大型机时代CPU被低速I/O设备频繁中断的问题(如早期IBM 360系统需同时管理数百台终端)。 核心作用
卸载CPU负担:通过专用处理器(通道)独立管理I/O操作
实现并行计算:CPU执行计算任务时,通道可同时控制多个I/O设备

通道的价值
执行计算任务
无需处理I/O
控制设备1
控制设备2
控制设备3
科学计算
CPU
通道
磁盘
磁带机
打印机

二、DMA技术(Direct Memory Access)

诞生目的
消除每传输一个字节都需CPU中断的低效操作(如早期磁盘读取需CPU逐字节拷贝)。
核心作用: ✅ 免CPU干预:设备直接与内存交换数据
减少中断次数:从每字节中断1次整块数据中断1次

CPU DMA控制器 磁盘 内存 初始化传输参数(内存地址/长度) 请求传输 直接写入数据 loop [数据传输] 传输完成中断(仅1次!) CPU DMA控制器 磁盘 内存

三、缓冲技术(Buffering)

诞生目的
缓解CPU处理速度 >> 设备I/O速度导致的CPU空等问题(如CPU需等待键盘输入)。
核心作用
速度匹配:缓冲作为数据中转站
解耦生产/消费

  • 设备可持续写入缓冲
  • CPU可批量读取数据
低速写入
高速读取
设备
缓冲区
CPU

类型

  • 单缓冲:交替使用(设备↔缓冲↔内存)

  • 双缓冲:并行处理(填充缓冲A时,消费缓冲B)

  • 循环缓冲:环形队列持续流

双缓冲
处理中
填充中
切换
切换
进程
缓冲区A
缓冲区B
设备

四、SPOOLing技术(Simultaneous Peripheral Operations On-Line)

诞生目的
突破物理独占设备无法并发使用的限制(如打印机只能被一个进程独占)。
核心作用
虚拟化独占设备:将物理设备转化为多个“逻辑设备”
提高设备利用率:通过磁盘排队实现多任务“同时”使用

提交打印任务
提交打印任务
按序调度
用户1
磁盘输出井
用户2
打印守护进程
物理打印机

技术本质对比表

技术解决的核心矛盾关键创新思想性能提升效果
通道CPU被I/O控制频繁打断专用I/O处理器释放CPU 70%+ I/O负载
DMA字节传输中断开销过大设备直连内存中断次数降低1000倍+
缓冲CPU等待慢速设备数据暂存区解耦CPU利用率提升30%-50%
SPOOLing独占设备导致系统吞吐量下降磁盘虚拟化+排队调度设备利用率从20%→80%+

协同效应示例:打印文件

假设用户执行打印操作时四种技术如何协作:

  1. SPOOLing:将数据暂存至磁盘输出井(解决打印机独占)
  2. 缓冲:在打印机内存中建立环形缓冲(匹配CPU与打印头速度)
  3. DMA:将磁盘数据直传至打印机缓冲(避免CPU拷贝)
  4. 通道:若在大型机上,由通道独立控制打印流程(解放CPU)

💡 本质规律:所有I/O技术都在尝试弥合纳秒级CPU毫秒级I/O之间的六个数量级速度鸿沟,通过硬件协作(通道/DMA)和软件调度(缓冲/SPOOLing)实现系统整体效率质的飞跃。

磁盘调度

磁盘调度算法的核心目标是减少磁头寻道时间,从而提升磁盘I/O性能。


一、算法诞生的根本问题

  • 机械磁盘的物理限制
    • 磁头移动(寻道)耗时 >> 数据传输耗时(寻道时间占95%+
    • 例:10ms寻道 vs 0.1ms传输1个扇区
  • 核心矛盾
    无序I/O请求导致磁头反复横跳,大幅降低吞吐量

二、经典调度算法

1. 先来先服务 (FCFS)
  • 原理:按请求到达顺序服务

  • 问题:磁头可能疯狂摆动(例:从磁道1→100→2→99)

2
99
100
磁头轨迹:1
  • 适用场景:仅用于理论对比,实际系统极少使用
2. 最短寻道时间优先 (SSTF)
  • 原理:优先服务离当前磁道最近的请求

  • 优势:平均寻道时间显著降低

  • 致命缺陷饥饿现象(边缘磁道请求长期不被响应)

磁道请求队列
边缘请求被忽略
60
当前磁道55
优先58
3. 电梯算法 (SCAN)
  • 原理

    1. 磁头单向移动(如从0→最大磁道)
    2. 途中响应所有路径上的请求
    3. 到达边界后反向移动
  • 优势:公平性高,无饥饿

磁道0
50
100
反向
80
30
4. 单项扫描调度算法 (C-SCAN)
  • 改进SCAN:到达边界后直接跳回起点(不响应返程请求)

  • 特点

    • 请求响应时间更均匀

    • 适合连续大文件读写(如视频流)

0
100
立刻跳回0
再次扫描

三、算法性能对比

算法平均寻道时间响应公平性饥饿风险适用场景
FCFS最高公平仅教学示例
SSTF轻负载环境
SCAN中低中负载通用系统
C-SCAN最好流媒体服务器

💡 数据参考:在1000个随机请求测试中(磁道范围0-199):

  • FCFS 平均寻道 100+ 磁道
  • SSTF 降至 40-50 磁道

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

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

相关文章

[C语言] C语言数学函数库概览

C语言数学函数库概览 文章目录 C语言数学函数库概览一、概述二、基本数学函数详解1. 平方根函数 sqrt(x)2. 幂函数 pow(x, y)3. 绝对值函数 fabs(x)4. 向上取整函数 ceil(x)5. 向下取整函数 floor(x) 三、三角函数与双曲函数详解1. 正弦函数 double sin(double x)2. 余弦函数 d…

【简单三步】Stable diffusion Webai本地部署无法加载模型并报openai/clip-vit-large-patch14错误的解决方法

问题描述 Stable diffusion Webai本地部署成功后,手动加载本地模型checkpoint时,始终无法加载进去,确定模型存放位置无误(位于models\Stable-diffusion)查看cmd窗口时,发现一个报错提示:Can’t …

Java 命令行参数详解:系统属性、JVM 选项与应用配置

Java 命令行参数详解:系统属性、JVM 选项与应用配置 在 Java 应用启动命令中,如: java -jar -Dserver.port8088 xdr-demo-1.0-SNAPSHOT-assembly.jar &-Dserver.port8088是一个 系统属性(System Property) 设置。…

【论文笔记】World Models for Autonomous Driving: An Initial Survey

原文链接:https://ieeexplore.ieee.org/abstract/document/10522953 1. 世界模型的发展 A. 世界模型的结构基础 世界模型包含4个关键组件,以模拟人类连贯的思考和决策过程。 a)感知模块使用如变分自编码器(VAE)、掩…

Spring Cloud Config(微服务配置中心详解)

关键词:Spring Cloud Config、配置中心、远程仓库、动态刷新、加密解密 ✅ 摘要 在微服务架构中,随着服务数量的增加,统一管理各服务的配置信息变得尤为重要。传统的本地配置文件方式难以满足多环境、多实例、集中化的需求。 Spring Cloud …

【Note】《深入理解Linux内核》 第二十章:深入理解 Linux 程序执行机制

《深入理解Linux内核》 第二十章:深入理解 Linux 程序执行机制(Program Execution)关键词:exec 系列系统调用、可执行文件格式(ELF)、用户地址空间、内存映射、动态链接、栈初始化、入口点、共享库、内核态…

服务器如何配置防火墙规则以阻止恶意流量和DDoS攻击?

防火墙是保护服务器免受恶意流量和 DDoS 攻击的第一道防线。通过合理配置防火墙规则,可以有效阻止恶意访问、限制不必要的流量,并减少攻击对服务器的影响。以下是配置防火墙规则的全面指南,包括基础规则设置、防御 DDoS 攻击的高级策略和最佳…

持续性投入是成就自我价值的关键一环

概述 时间,的唯一公平之处就是给你我的长度是相同的,这也是它唯一公平,也是不公平的地方。 所谓的公平,就是不患寡而患不均中所说的平均。 所谓的不公平就是,相同时间内我们彼此对应的标价不同,延伸到后…

使用allegro在BoardGeometry的Silkscreen_Top层画出图案

目录 1. 图形及图形放置显示2. 绘制 1. 图形及图形放置显示 绘制完成图案: 导出后图案: 2. 绘制 图层选中; 画圆型; 半径3.5mm,原点生成; 在图案中挖空; 用指令走线: …

Kotlin 协程:Channel 与 Flow 深度对比及 Channel 使用指南

前言 在 Kotlin 协程的异步编程世界里,Channel 和 Flow 是处理数据流的重要工具,它们有着不同的设计理念与适用场景。本文将对比二者功能与应用场景,详细讲解 Channel 的使用步骤及注意事项 。 一、Channel 与 Flow 的特性对比 Channel 是协程…

MYsql主从复制部署

MySQL 主从复制是将主数据库的变更自动同步到从数据库的过程,常用语读写分离、高可用性和数据备份。 1.环境准备 确保主从服务器已安装相同版本的 MySQL,并能通过网络互相访问。 # 检查 MySQL 版本 mysql -V 2.配置主服务器 (1&#xff0…

安灯呼叫看板如何实现汽车生产异常秒级响应

在汽车零部件工厂的静置车间,传统生产管理依赖人工巡检与纸质记录,存在效率低、信息滞后、异常响应慢等问题。某汽车厂曾因物料静置时间未及时监控,导致批次混料,损失超10万元。而安灯呼叫看板系统的引入,通过实时状态…

构造函数注入在spring boot 中怎么使用详解

我们来详细讲解一下在 Spring Boot 中如何使用构造函数注入,并通过一个完整的、可运行的例子来演示。 构造函数注入是 Spring 官方最推荐的依赖注入方式,因为它能保证对象的不可变性和依赖的完整性。 核心理念 在 Spring Boot 中使用构造函数注入非常简单…

2025.6.30-2025.7.06第26周:第一次参加头马演讲俱乐部

现在是周一早上6:23,我开始写上周的周总结。 3件超出预期的事 参加头马俱乐部绝对是最超出预期的,使得这个周末格外的快乐简历的第一版终于改完了,花了好长的时间,其中有一天心情还很荡,因为,我想&#x…

2025使用VM虚拟机安装配置Macos苹果系统下Flutter开发环境保姆级教程--下篇

其实如何安装VM,如何安装MACOS网上的教程很多,我只是结合我的体验重新整理了一次,接下来才进入本教程最核心的部分,Flutter开发环境的配置部分。、一.配置前准备 主要是准备相应的工具包,以及其他虚拟机设置1.工具包 工具包的版本也可以自行配置,我这主要是我使用的是F…

QSPI、OSPI与FSMC的区别与内存映射分析

QSPI、OSPI与FSMC的区别与内存映射分析 基本概念与区别 1. FSMC (灵活静态存储控制器) 接口类型:并行接口,通常8/16位数据总线总线标准:传统并行总线协议速度:相对较低,通常最高约100MHz应用场景:SRAM、NOR…

系统思考与心智模式探索

成长的真正障碍,不是能力的不足,而是看待问题的局限。 在复杂多变的商业环境中,我们往往习惯于解决“眼前”的问题,却忽视了深藏背后的系统性障碍。我们看到的只是表面的“症状”,而真正的根源,却往往隐藏…

物联网技术的关键技术与区块链发展趋势的深度融合分析

一、物联网技术的核心架构与关键技术 物联网技术体系由感知层、网络层、平台层、应用层和安全层构成,各层技术协同工作,实现物理世界与数字世界的深度融合。 感知层:物联网的“感官” 传感器技术:包括环境传感器(温度…

针对Exhcnage Server的攻击防范措施

一、背景介绍最近,安全研究人员揭露了一个名为 NightEagle(又名 APT-Q-95) 的高级持续性威胁(APT)组织。这个组织被观察到利用 Microsoft Exchange 服务器中的零日漏洞链 进行攻击,其主要目标是中国政府、国…

编程基础:继承

能帮到你的话,就给个赞吧 😘 文章目录继承:使用基类成员:前提——派生类必须同样支持基类成员(组件和功能)示例:动物Animal 有 鳃 和 会飞。则 鸟Bird 不是 Animal,因为Bird虽会飞,却没有鳃。鱼…