作業系統 輸入 輸出(I O)管理

2022-07-23 12:21:18 字數 3083 閱讀 7831

i/o裝置

i/o控制方式

程式直接控制方式。計算機從外部裝置讀取資料到儲存器,每次讀乙個字的資料。對讀入的每個字,cpu 需要對外設狀態進行迴圈檢查知道確定該字已經在 i/o 控制器的資料暫存器中。

中斷驅動方式。允許 i/o 裝置主動打斷 cpu 的執行並請求服務,從而「解放」 cpu,使得其向 i/o 控制器傳送讀命令後可以繼續做其他有用的工作。

dma 方式。dma(直接儲存器)方式的基本思想是在 i/o 裝置和記憶體之間開闢直接的資料交換通路,徹底「解放」 cpu。dma特點如下:(1)基本單位是資料塊 (2)所傳送的資料,是從裝置直接送入記憶體的,或者相反 (3)僅在傳送乙個或多個資料塊的開始和結束時,才需 cpu 干預,整塊資料的傳送是在 dma 控制器的控制下完成的。

為了在主機與控制器之間實現成塊資料的直接交換,必須在 dma 控制器中設定如下4類暫存器:

通道控制方式。i/o 通道是指專門負責輸入/輸出的處理機。i/o 通道是 dma 方式的發展,它可以進一步減少 cpu 的干預,即把對乙個資料塊的讀(或寫)為單位的干預,減少為對一組資料塊的讀(或寫)及有關控制和管理為單位的干預。i/o 通道與一般處理機的區別是:通道指令的型別單一沒有自己的記憶體,通道所執行的通道程式是放在主機記憶體中的,也就是說通道與 cpu 共享記憶體。i/o 通道與 dma 方式的區別是:dma 方式需要 cpu 來控制傳輸的資料塊大小、傳輸的記憶體位置,而通道方式中這些資訊是由通道控制的。另外,每個 dma 控制器對應一台裝置與記憶體傳遞資料,而乙個通道可以控制多台裝置與記憶體的資料交換

整個i/o系統可以視為具有4個層次的系統結構,如下圖:

各層次及其功能如下:

使用者層  i/o 軟體。實現與使用者互動的介面,使用者可直接呼叫在使用者層提供的、與 i/o 操作有關的庫函式,對裝置進行操作。

裝置獨立性軟體。用於實現使用者程式與裝置驅動器的統一介面、裝置命令、裝置保護及裝置分配與釋放等,同時為裝置管理和資料傳送提供必要的儲存空間。

裝置驅動程式。與硬體直接相關,負責具體實現系統對裝置發出的操作指令,驅動 i/o 裝置工作的驅動程式。

中斷處理程式。用於保護被中斷程序的 cpu 環境,轉入相應的中斷處理程式進行處理,處理完並恢復被中斷程序的現場後,返回到被中斷程式。

硬體裝置。i/o 裝置通常包括乙個機械部件和乙個電子部件。為了達到設計的模組性和通用性,一般將其分開:電子部件稱為裝置控制器(或介面卡),在個人計算機中,通常是一塊插入主機板擴充槽的印製電路板;機械部件則是裝置本身。

可定址是塊裝置的基本特徵。

共享裝置必須是可定址的和可隨機訪問的裝置。

在作業系統中,通道技術指的是一種硬體技術。

位元組多路通道用作連線大量的低速或中速 i/o 裝置。陣列選擇通道用作連線多台告訴裝置,但一段時間內只能執行一道通道程式。陣列多路通道前兩者優點結合。

通道控制裝置控制器、裝置控制器控制裝置工作。

系統按照裝置型別配置裝置驅動程式。

i/o核心子系統

磁碟快取記憶體。指利用記憶體中的儲存空間來暫存從磁碟中讀出的一系列盤塊中的資訊。因此,磁碟快取記憶體邏輯上屬於磁碟,物理上則是駐留在記憶體中的盤塊。

在裝置管理子系統中,引入緩衝區的主要目的如下:

緩和 cpu 與 i/o 裝置間速度不匹配的矛盾。

減少對 cpu 的中斷頻率,放寬對 cpu 中斷響應時間的限制。

解決基本資料單元大小(即資料粒度)不匹配的問題

提高 cpu 與 i/o 設別之間的並行性。

根據系統設定緩衝器的個數,緩衝技術可以分為如下幾種:

單緩衝。在塊裝置輸入時,假定從磁碟把一塊資料輸入緩衝區的時間為 t,作業系統將該緩衝區中的資料傳送到使用者區的時間為 m,而 cpu 對這一塊資料處理的時間為 c。單緩衝區處理每塊資料的用時為 max( c, t ) + m。

雙緩衝。雙緩衝區處理每塊資料的用時為 max( c + m, t )。

迴圈緩衝。包含多個大小相等的緩衝區,每個緩衝區中有乙個鏈結指標指向下乙個緩衝區,最後乙個緩衝區指標指向第乙個緩衝區,多個緩衝區構成乙個環形。迴圈緩衝用於輸入/輸出時,還需要有兩個指標 in 和 out。

緩衝池。由多個系統公用的緩衝區組成,緩衝區按其使用情況可以形成三個佇列:空緩衝佇列、裝滿輸入資料的緩衝佇列和裝滿輸出資料的緩衝佇列。還應具有4種緩衝區:用於收容輸入資料的工作緩衝區、用於提取輸入資料的工作緩衝區、用於收容輸出資料的工作緩衝區及用於提取輸出資料的工作緩衝區。

裝置分配方式有靜態分配和動態分配兩種:

靜態分配主要用於對獨佔裝置的分配,在使用者作業開始執行前,由系統一次性分配該作業所要求的全部裝置、控制器(如通道等)。

動態分配在程序執行過程中根據執行需要分配。

為了實現裝置獨立性,在應用程式中使用邏輯裝置名來請求使用某類裝置,在系統中設定一張邏輯裝置表(lut),用於將邏輯裝置名對映為物理裝置名。

為了緩和 cpu 的高速性與 i/o 裝置低速性之間的矛盾,引入了離線輸入/輸出技術。該技術利用專門的外圍控制機,將低速 i/o 裝置上的資料傳送到高速磁碟上,或者相反。spooling 的意思是外部裝置同時聯機操作,又稱假離線技術,是作業系統中採用的一項將獨佔裝置改造成共享裝置的技術。

spooling 系統的組成如圖:

輸入井和輸出井是指在磁碟上開闢出的兩個儲存區域。

輸入緩衝區和輸出緩衝區是指在記憶體中開闢的兩個緩衝池。

spooling 系統的主要特點有:提高了 i/o 速度;將獨佔裝置改造為共享裝置;實現了虛擬裝置功能。

spooling 技術實質上是一種以空間換時間的技術,請求分頁技術中的頁面排程演算法是以時間換空間的技術

裝置的獨立性主要是指使用者使用裝置的透明性,即使用者程式和實際使用的物理裝置無關。

提高單機資源利用率的關鍵技術是多道程式設計基礎。

spooling 技術不需要外圍計算機的支援。

spooling 系統由預輸入程式、井管理程式和緩輸出程式組成。

以上內容均來自王道書籍及相關課程等

作業系統(五) 輸入 輸出(I O)管理

知識框架 5.1.1 i o裝置 按使用特性,i o裝置可以分為以下型別 1 人機互動類外部裝置。如印表機 顯示器 滑鼠 鍵盤等。這類裝置資料交換速度相對較慢,通常是以位元組為單位進行資料交換的。2 儲存裝置。如磁碟 磁帶 光碟等。這類裝置用於資料交換,速度較快,通常以多位元組組成的塊為單位進行資料...

輸入 輸出管理(I O

i o裝置管理是作業系統設計中最凌亂也最具挑戰性的部分。由於它包含了很多領域的不同裝置以及與裝置相關的應用程式,因此很難有乙個通用且一致的設計方案。所以在理解裝置管理之前,應該先了解具體的i o裝置型別。計算機系統中的i o裝置按使用特性可分為以下型別 1 人機互動類外部裝置 用於同計算機使用者之間...

作業系統概念 輸入輸出系統(2)

中斷簡介 1 中斷 指cpu對i o裝置發來的中斷訊號的一種響應。2 陷入 由cpu內部事件所引起的中斷 如運算中上溢或下溢,程式出錯,非法指令,通常將這類中斷稱為內中斷或陷入。中斷向量表 為處理方便,為每種裝置配以相應的中斷處理程式,並把該程式的入口位址放在中斷向量表的乙個表項中,為每乙個裝置的中...