首頁 > 農業

詳解作業系統中的幾種IO控制方式

由 Java初學者 發表于 農業2021-07-01

簡介③ 處理器將資料暫存器中的資料取出,送入主存指定單元,完成一個字元的IO操作,接著進行下一個資料的 IO 操作直接程式控制方式雖然簡單,不需要多少硬體的支援,但由於高速的 CPU 和低速的 IO 裝置之間的速度上不匹配,因此,CPU

外圍裝置的i o控制分為哪幾類

一、導讀

為了有效地實現物理I/O操作,必須透過硬體和軟體技術,對 CPU 和 I/O 裝置的職能進行合理的分工,以調節系統性能和硬體成本之間的矛盾。

隨著計算機技術的發展,I/O 控制方式也在不斷髮展。選擇和衡量 I/O 控制方式有如下三條原則:

(1) 資料傳送速度足夠快,能滿足使用者的需求但又不丟失資料;

(2) 系統開銷小,所需的處理控制程式少

(3) 能充分發揮硬體資源的能力,使 I/O 裝置儘可能忙,而 CPU 等待時間儘可能少。

按照I/O控制器功能的強弱以及和 CPU 之間聯絡方式的不同,可以把 I/O 裝置的控制方式和通道控制方式分為四類:直接程式控制方式、中斷驅動控制方式、直接儲存器訪問(DMA)控制方式和通道控制方式。

I/O控制方式發展的目標是儘量減少CPU對 I/O 控制的干預,把CPU從繁雜的 I/O 控制事務中解脫出來,以便更多地進行資料處理,提高計算機效率和資源的利用率。

它們之間的主要差別在於 CPU 與外圍裝置並行工作的方式和程度不同。

二、I/O控制方式

1、直接程式控制方式

直接程式控制方式由使用者程序直接控制主存或 CPU 和外圍裝置之間的資訊傳送。直接程式控制方式又稱為詢問方式,或忙/等待方式。透過 I/O 指令或詢問指令測試 I/O 裝置的忙/閒標誌位,決定主存與外圍裝置之間是否交換一個字元或一個字。

詳解作業系統中的幾種I/O控制方式

流程圖概述直接程式控制方式的工作流程如下:

① 當用戶程序需要輸入資料時,透過 CPU 向控制器發出一條 I/O 指令,啟動裝置輸入資料,同時把狀態暫存器中的忙/閒狀態 busy 置為1

② 使用者程序進入測試等待狀態,在等待過程中,CPU 不斷地用一條測試指令檢查外圍裝置狀態暫存器中的 busy 位,而外圍裝置只有在資料傳入控制器的資料暫存器之後,才將該 busy 位置為0,。

③ 處理器將資料暫存器中的資料取出,送入主存指定單元,完成一個字元的I/O操作,接著進行下一個資料的 I/O 操作

直接程式控制方式雖然簡單,不需要多少硬體的支援,但由於高速的 CPU 和低速的 I/O 裝置之間的速度上不匹配,因此,CPU 與外圍裝置只能序列工作,使 CPU 的絕大部分時間都處於等待是否完成 I/O 操作的迴圈測試中,造成 CPU 的極大浪費,外圍裝置也不能得到合理的使用,整個系統的效率很低。因此,這種I/O控制方式只適合於 CPU 執行速度較慢,且外圍裝置較少的系統。

2、中斷驅動控制方式

為了減少程式直接控制方式下 CPU 的等待時間以及提高系統的並行程度,系統引入了中斷機制。中斷機制引入後,外圍裝置僅當操作正常結束或異常結束時才向 CPU 發出中斷請求。在 I/O 裝置輸入每個資料的過程中,由於無需 CPU 的干預,一定程度上實現了 CPU 與 I/O裝置的並行工作。

僅當輸入或輸出完一個數據時,才需 CPU 花費極短的時間做中斷處理。

詳解作業系統中的幾種I/O控制方式

中斷驅動方式流程圖

存在的問題:

由於I/O操作直接由 CPU 控制,每傳送一個字元或一個字,都要發生一次中斷,仍然佔用了大量的 CPU 處理時間,因此可以透過為外圍裝置增加緩衝暫存器存放資料來減少中斷次數。

上述兩種方法的特點都是以 CPU 為中心,資料傳送透過一段程式來實現,軟體的傳送手段限制了資料傳送的速度。接下來介紹的這兩種I/O 控制方式採用硬體的方法來顯示 I/O 的控制

3。直接儲存器訪問控制方式

直接儲存器訪問控制方式又稱 DMA(Direct Memory Access)方式。為了進一步減少 CPU 對 I/O 操作的干預,防止因並行操作裝置過多使 CPU 來不及處理或因速度不匹配而造成的資料丟失現象,引入了 DMA 控制方式。

在 DMA 控制器的控制下,採用竊取或挪用匯流排控制權,在裝置和主存之間開闢直接資料交換通道,成批地交換資料,而不必讓 CPU 干預。

DMA方式的特點:

① 資料傳送以資料塊為基本單位

② 所傳送的資料從裝置直接送入主存,或者從主存直接輸出到裝置上

③ 僅在傳送一個或多個數據塊的開始和結束時才需 CPU 的干預,而整塊資料的傳送則是在控制器的控制下完成。

DMA方式和中斷驅動控制方式相比,減少了 CPU 對 I/O 操作的干預,進一步提高了 CPU 與 I/O 裝置的並行操作程度。

DMA方式的線路簡單、價格低廉,適合高速裝置與主存之間的成批資料傳送,小型、微型機中的快速裝置均採用這種方式,但其功能較差,不能滿足複雜的 I/O 要求。

4、通道控制方式

通道,獨立於 CPU 的專門負責輸入輸出控制的處理機,它控制裝置與記憶體直接進行資料交換。有自己的通道指令,這些指令由 CPU 啟動,並在操作結束時向 CPU 發出中斷訊號。

直接程式控制方式和中斷程式控制方式適合於低速裝置的資料傳送,而 DMA 方式雖然適合於高速裝置的資料傳送,但一個 DMA 控制器只能控制少量的同類裝置,這遠遠不能滿足大型計算機系統的需要。

通常,一個大型計算機需要連線大量的高速和低速裝置,通道控制方式可以滿足這個要求。(DMA和通道控制方式的主要區別——能否滿足大型計算機系統的既能處理高速裝置又能處理低速裝置的需要)

通道控制方式,實現了CPU、通道和I/O裝置三者的並行操作,從而更加有效地提高整個系統的資源利用率。例如,當 CPU 要完成一組相關的讀(或寫)操作時,只需要向 I/O 通道發出一條 I/O 指令,指出其所要執行的通道程式的首址和要訪問的I/O裝置,通道接收到該指令後,透過執行通道程式便可完成 CPU 指定的 I/O 任務。

可見,通道只是在 I/O 操作的起始和結束時向 CPU 發出 I/O 中斷申請,相對於之前的控制方式進一步減少了 CPU 的干預程度。

三、參考文獻

《作業系統教程》機械工業出版社 謝旭升 朱明華 張練興 李宏偉 編著

Tags:CPU方式控制裝置DMA