區分程式I/O和中斷驅動I/O。


程式化(輸入/輸出)I/O和中斷驅動I/O之間的區別如下:

程式化I/O

這種I/O技術是交換外部裝置和處理器之間資料的最簡單方法。在這種技術中,處理器或中央處理單元(CPU)執行或執行程式,直接控制I/O操作。

處理器向I/O模組發出命令並等待操作完成。此外,處理器會持續檢查I/O模組狀態,直到發現操作完成。

如果處理器比I/O模組快,處理器的時鐘會被浪費。它的模組被認為是一個慢速模組。

它的應用在某些低端微型計算機中。它具有單個輸出和單個輸入指令。

每個指令都透過編號選擇一個I/O裝置,並按位元組傳輸單個字元。四種暫存器參與此技術,它們是輸出狀態和字元以及輸入狀態和字元。

它的缺點是繁忙等待,這意味著處理器在緊密迴圈中消耗大部分時間來等待I/O裝置準備好使用。程式檢查或輪詢I/O硬體元件、裝置或專案。

**例如** - 處於迴圈中的計算機滑鼠。

易於理解。易於程式設計。速度慢且效率低。

系統性能嚴重下降。它不需要初始化堆疊。

由於連線到系統中的I/O裝置數量增加,系統吞吐量降低。最好的例子是使用程式化I/O的PC裝置高階技術附件(ATA)介面。

中斷驅動I/O

它類似於程式驅動I/O技術。處理器不會等到I/O操作完成。在執行I/O操作時,處理器執行其他任務。

當I/O操作完成後,I/O模組會中斷處理器,讓處理器知道操作已完成。它的模組比程式化I/O模組快。

處理器實際上啟動I/O裝置並指示它在操作完成後生成併發送中斷訊號。這是透過在狀態暫存器中設定一箇中斷使能位來實現的。

此技術需要為寫入或讀取的每個字元中斷一次。中斷正在執行的程序是一項昂貴的操作,因為它需要儲存上下文。

它需要額外的硬體,例如直接記憶體訪問(DMA)控制器晶片。速度快且效率高。

如果程式設計師使用低階程式語言,則編碼會變得困難。讓各個部分協同工作可能會變得困難。例如,這是由作業系統開發人員(例如Microsoft)或硬體製造商完成的。

系統性能得到增強。它需要初始化堆疊。

即使連線到系統中的I/O裝置數量增加,系統吞吐量也不會受到影響,因為吞吐量不依賴於數量。

**例如** - 計算機滑鼠觸發並向程式傳送訊號以處理滑鼠事件。

中斷驅動I/O更好,因為它速度快,效率高。系統性能得到改進和增強。

更新於: 2021年11月29日

15K+ 次檢視

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告