1. 程式人生 > 實用技巧 >作業系統之I/O管理:1、I/O控制器、I/O控制方式(程式直接控制方式、中斷驅動方式、DMA方式、通道控制方式)

作業系統之I/O管理:1、I/O控制器、I/O控制方式(程式直接控制方式、中斷驅動方式、DMA方式、通道控制方式)

1、I/O裝置的概念、分類

基礎知識

思維導圖

在這裡插入圖片描述

什麼是I/O裝置?

在這裡插入圖片描述

分類

在這裡插入圖片描述
在這裡插入圖片描述![在這裡插入圖片描述
在這裡插入圖片描述

I/O控制器

思維導圖

在這裡插入圖片描述

I/O控制器功能

在這裡插入圖片描述

I/O控制器的組成

在這裡插入圖片描述
在這裡插入圖片描述

記憶體映像I/O vs 暫存器獨立編址

在這裡插入圖片描述

I/O控制方式

1、程式直接控制方式

在這裡插入圖片描述
在這裡插入圖片描述

為解決上述方式中的缺點,產生了中斷驅動方式

2、中斷驅動方式

在這裡插入圖片描述

與程式直接控制相比,區別是:
1、在CPU發出讀/寫命令後,可將等待I/O的程序阻塞,先切換到別的程序執行

2、I/O完成後,控制器會向CPU發出一箇中斷訊號,CPU檢測到中斷訊號後,會儲存當前程序的執行環境資訊,轉去執行中斷處理程式處理該中斷。
3、CPU從I/O控制器讀一個字的資料傳送到CPU暫存器,再寫入主存
問題:中斷處理過程中需要儲存、恢復程序的執行環境,這個過程是需要一定時間開銷的。可見,如果中斷髮生的頻率太高,也會降低系統性能;每個字在I/O裝置與記憶體之間的傳輸,都需要經過CPU。為此提出來DMA方式。

3、DMA方式(直接儲存器存取)

在這裡插入圖片描述

1、CPU到I/O的操作都交由DMA控制器完成,資料的傳輸不在經由CPU處理,CPU僅在傳送一個或多個數據塊的開始和結束時,才需要干預。
2、區別於中斷驅動方式,多加入一個DMA控制器用於資料傳輸。

3、DMA控制器:
在這裡插入圖片描述
1、從DMA控制圖中可知,記憶體到I/O裝置的資料傳輸通過DMA就可以完成,該不需要CPU的干預,大大提高了CPU與I/O裝置間的並行效率
2、CPU只是負責發出對I/O裝置的請求以及接收當資料傳輸完成後的中斷

在這裡插入圖片描述

4、通道控制方式

在這裡插入圖片描述

通道控制方式區別於DMA方式:當CPU請求I/O裝置時,會先在記憶體的任務清單中新增任務,然後通道檢查記憶體中的任務清單,若有任務則由通道負責與I/O裝置的資料傳輸。所以每次可以進行一組資料塊的讀寫。

在這裡插入圖片描述

對比

在這裡插入圖片描述