I/O操作是計算機處理中非常重要的操作如何實現對I/O設備的有效控制以更好地滿足用戶的輸入/輸出要求是設備管理中非常重要的問題之一在計算機技術的發展過程中I/O控制方式也在不斷地發展對I/O控制的要求主要是基於盡量減少主機對I/O控制的干預把主機從繁雜的I/O控制事務中解脫出來以更多地完成其數據處理任務
按照I/O控制功能的強弱以及和CPU之間聯系方式的不同可把I/O設備的控制方式分為種這種控制方式代表了I/O控制發展的個階段從程序直接控制方式發展到中斷驅動方式再到DMA控制方式通道I/O控制方式每種控制方式都對前一種方式存在的問題進行了解決提高了CPU 和外圍設備並行工作的程度大幅度地提高了計算機執行效率和系統資源的利用率
I/O程序直接控制方式如下
程序直接控制方式也稱詢問方式它是早期計算機系統中的一種I/O操作控制方式在這種方式下利用輸入/輸出指令或詢問指令測試一台設備的忙 /閒標志位根據設備當前的忙或閒的狀態決定是繼續詢問設備狀態還是由主存儲器和外圍設備交換一個宇符或一個字下圖所示是一個數據的輸入過程當在 CPU上運行的現行程序需要從I/O設備讀入一批數據時CPU程序首先設置交換的字節數和數據讀入主存的起始地址然後向I/O設備發送讀指令或查詢標志指令I/O設備將當前的狀態返回給CPU如果I/O設備返回的當前狀態為忙或未就緒則測試過程不斷重復直到I/O設備就緒開始進行數據傳送CPU從I/O接口讀一個字或一個字符再寫入主存如果傳送還未結朿再次向設備發出讀指令重復上述測試過程直到全部數據傳輸完成再返回現行程序執行
為了正確完成這種傳送通常要使用條指令:查詢指令用來查詢設備的狀態;傳送指令當設備就緒時執行數據交換;轉移指令當設備未就緒時執行轉移指令轉向查詢指令繼續查詢
在程序直接控制方式中一旦CPU啟動I/O設備便不斷查詢I/O設備的准備情況終止原程序的執行;另外當I/O准備就緒後CPU還要參與數據的傳送工作此時CPU也不能執行原程序由於CPU的髙速性和I/O設備的低速性致使CRJ的絕大部分時間都處在等待I/O設備完成數據的輸入/輸出循環測試和低速的傳送中造成對CPU資源的極大浪費由此可見在這種設備控制方式下CPU和I/O設備完全處在串行工作狀態使主機不能充分發揮效率整個系統的效率很低
From:http://tw.wingwit.com/Article/Common/201311/7928.html