軟考(軟件設計師)存儲管理—設備管理,磁盤調度

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
英文地址,請注明出處:http://en.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雖會飛,卻沒有鰓。魚…