輸入/輸出(I/O)管理
- 一、I/O管理概述
- 1.1 I/O設備
- 1.2 I/O控制方式
- 1.3 I/O子系統的層次結構
- 二、I/O核心子系統
- 2.1 I/O子系統概述
- 2.2 I/O調度概念
- 2.3 高速快取與緩沖區
- 2.4 設備分配與回收
- 2.5 SPOOLing技術(假脫機技術)
一、I/O管理概述
1.1 I/O設備
I/O設備型別多種多樣,導致I/O設備管理成為作業系統管理最凌亂也最具有挑戰性的一部分,
按使用特性可分為
1)人機互動類外部設備,用于計算機與用戶之間的互動設備,如鍵盤和顯示屏,
2)存盤設備,用戶存盤資料的設備,如磁盤、U盤,
3)網路通信設備,與遠程設備通信的設備,如各自網路介面、調制解調器等,
- 按傳輸速率
1)低速設備,每秒幾位元組到百位元組,如鍵盤、滑鼠等,
2)中速設備,幾千到幾萬位元組的設備,如列印機、顯示幕等,
3)高速設備,數十萬到千兆位元組的設備,如磁盤,- 按資訊交換的單位分類
1)塊設備,資料存取以資料塊為單位,如磁盤,
2)字符設備,以字符為基本單位,如列印機,
1.2 I/O控制方式
- 程式直接控制方式
用顯示的程式來控制資料的讀寫,
實作簡單,但是CPU要和不在一個數量級的I/O并行操作,導致CPU利用率很低,- 中斷驅動方式
運行I/O設備可以通過中斷主動打斷CPU,CPU給I/O設備控制器發送命令之后,其它時間就讓CPU去忙,
問題在于資料中的每個字在存盤器與I/O控制器之間傳輸都需要CPU的干預,
3. DMA方式
其基本單位不是一個字,而是資料塊,僅在傳輸一個或多個資料塊的開始和結束時,才需要CPU的干預,整塊的資料在傳送程序中是在DMA控制器下完成的,
1)命令/狀態暫存器(CR),用于記錄CPU向I/O設備控制器發來的控制資訊或設備狀態,
2)記憶體地址暫存器(MAR),輸入時,記錄資料在設備的起始目標地址;輸出時,記錄資料在記憶體的源地址,
3)資料暫存器(DR),用于暫存設備到記憶體或記憶體到設備的資料,
4)資料計數器(DC),存放本次要傳送的位元組數,
該問題在于傳輸每一批資料前后都要CPU的干預,
4. 通道控制方式(小處理機)
I/O通道方式是DMA的發展,是指專門負責輸入/輸出的處理機,可以進一步減少CPU的干預,傳多少資料在讓CPU干預,資料放在那里?多設備同時控制,這都由小處理機通道來控制,
實作了CPU、通道和I/O設備三者的并行操作,大大的提高了系統利用率,
當CPU要完成一組相關的讀寫時,只需像I/O通道發送一條I/O指令,其它的控制都交給通道控制,等資料傳完時在中斷CPU,
通道與一般的CPU的區別是,通道指令型別單一,沒有自己的記憶體,和CPU共享記憶體,
1.3 I/O子系統的層次結構
二、I/O核心子系統
2.1 I/O子系統概述
管理各類設備的方法共同組成OS內核的I/O子系統,與內核其它方面獨立,其I/O核心子系統提供的服務主要由I/O調度、緩沖與高速快取、設備分配與回收、假脫機、設備保護和差錯處理等,
2.2 I/O調度概念
目的就是為了使行程之間公平高效有序的對共享設備的訪問,減少I/O完成所需要的平均等待時間,
原本有一個I/O請求佇列,但是I/O調度會重新安排佇列順序,以改善系統的總體效率和應用程式的平均回應時間,
2.3 高速快取與緩沖區
- 磁盤高速快取
把資料預先存到介于CPU與記憶體之間的小容量高速存盤器上,以提高CPU取指令或資料的速度, - 緩沖區
用來緩沖CPU與I/O速度不匹配的問題,有單緩沖、雙緩沖、回圈緩沖、緩沖池四種,
單緩沖,一次只能讀或寫,一個在進行的時候,另一個就必須阻塞,設資料進入緩沖區時間為T,資料轉移時間為M,資料處理時間為C,則用單緩沖區處理每塊資料的用時為max(C,T)+M

按照上面的規則,則雙緩沖的用時為max(C+M,T)
若M+C < T ,則可使塊設備連續輸入;反則CPU可不必等待設備輸入,


而回圈緩沖是用一個回圈鏈表表示,有兩個指標in和out,in指標指向可以輸入資料的第一個慷訓區,out指標指向可以輸出資料的第一個緩沖區
緩沖池則有三個鏈表,4種緩沖區,慷訓沖佇列、裝滿輸入資料佇列、裝滿輸出資料緩沖佇列,
- 高速緩沖與緩沖區的對比

- 高速緩沖與緩沖區的對比
2.4 設備分配與回收
- 設備分配概述
合理公平高效的分配,讓設備盡可能的忙,要避免死鎖,
1)獨占式使用設備
2)分時式共享使用設備
3)以SPOOLing方式使用外部設備- 設備分配的資料結構
這些資料結構通過指標一環套一環,注意下圖,
- 設備分配的策略
在避免死鎖的情況下,利用合理高效的設備分配演算法(FIFO、優先級高優先等)來動態分配,- 設備分配的安全性
1)安全分配方式,一旦行程請求I/O便進入阻塞態,不保持資源也不再請求其它資源,直到I/O完成才被喚醒,但是CPU與I/O是串行作業,
2)不安全分配方式,需要一個請求一個,請求后繼續運行,需要另一個I/O請求時,又請求,直到所請求的I/O在被的行程占用時,
優點:一個行程同時操作多個設備,從而快速推進行程,缺點:可能產生死鎖,
2.5 SPOOLing技術(假脫機技術)
為了解決CPU的高速性與I/O設備低速性之間的矛盾,引入脫機技術,將獨占設備看似改造成共享設備的技術,
在磁盤上開辟輸入井和輸出井,然后自動一個行程一個行程的I/O任務完成,
如用戶A和B同時操控列印機,而OS將兩個任務放在磁盤的井中,然后通過井中的資料一個行程一個行程的I/O任務自動有序運行,
記憶體中的資料傳到輸出井,外設的資料傳到輸入井,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/305635.html
標籤:其他









