I/O系統(tǒng)是計(jì)算機(jī)系統(tǒng)中的重要組成部分,是用于實(shí)現(xiàn)數(shù)據(jù)輸入、輸出以及數(shù)據(jù)存儲(chǔ)的系統(tǒng)。該系統(tǒng)中包括用于實(shí)現(xiàn)信息輸入輸出和存儲(chǔ)功能的相應(yīng)控制設(shè)備,在大中型機(jī)中,還有設(shè)備控制器以及I/O通道。
1 I/O設(shè)備
I/O設(shè)備管理是操作系統(tǒng)設(shè)計(jì)中最凌亂也最具挑戰(zhàn)性的部分。由于它包含了很多領(lǐng)域的不同設(shè)備以及與設(shè)備相關(guān)的應(yīng)用程序,因此很難有一個(gè)通用且一致的設(shè)計(jì)方案。所以在理解設(shè)備管理之前,應(yīng)該先了解具體的I/O設(shè)備類型。
1.1 按使用特性分類:
-
輸入輸出設(shè)備
用于同計(jì)算機(jī)用戶之間交互的設(shè)備,如打印機(jī)、顯示器、鼠標(biāo)、鍵盤等。這類設(shè)備數(shù)據(jù)交換速度相對(duì)較慢,通常是以字節(jié)為單位進(jìn)行數(shù)據(jù)交換。 -
存儲(chǔ)設(shè)備
用于存儲(chǔ)程序和數(shù)據(jù)的設(shè)備,如磁盤、磁帶、光盤等。這類設(shè)備用于數(shù)據(jù)交換,速度較快,通常以多字節(jié)組成的塊為單位進(jìn)行數(shù)據(jù)交換。 - ** 網(wǎng)絡(luò)通信設(shè)備**
用于與遠(yuǎn)程設(shè)備通信的設(shè)備,如各種網(wǎng)絡(luò)接口、調(diào)制解調(diào)器等。其速度介于前兩類設(shè)備之間。網(wǎng)絡(luò)通信設(shè)備在使用和管理上與前兩類設(shè)備也有很大不同。
1.2 按傳輸速率分類:
-
低速設(shè)備
傳輸速率僅為每秒幾個(gè)到數(shù)百個(gè)字節(jié)的一類設(shè)備,如鍵盤、鼠標(biāo)等。 -
中速設(shè)備
傳輸速率在每秒數(shù)千個(gè)字節(jié)至數(shù)萬個(gè)字節(jié)的一類設(shè)備,如行式打印機(jī)、 激光打印機(jī)等。 -
高速設(shè)備
傳輸速率在數(shù)百個(gè)千字節(jié)至千兆字節(jié)的一類設(shè)備,如磁帶機(jī)、磁盤機(jī)、 光盤機(jī)等。
1.3 按信息交換的單位分類:
-
塊設(shè)備
由于信息的存取總是以數(shù)據(jù)塊為單位,所以存儲(chǔ)信息的設(shè)備稱為塊設(shè)備。它屬于有結(jié)構(gòu)設(shè)備,如磁盤等。磁盤設(shè)備的基本特征是傳輸速率較高,以及可尋址,即對(duì)它可隨機(jī)地讀/寫任一塊。 -
字符設(shè)備
用于數(shù)據(jù)輸入/輸出的設(shè)備為字符設(shè)備,因?yàn)槠鋫鬏數(shù)?strong>基本單位是字符。它屬于無結(jié)構(gòu)類型,如交互式終端機(jī)、打印機(jī)等。它們的基本特征是傳輸速率低、不可尋址,并且在輸入/輸出時(shí)常釆用中斷驅(qū)動(dòng)方式。
1.4 按共享屬性分類:
-
獨(dú)占設(shè)備
在一段時(shí)間內(nèi)只允許一個(gè)用戶(進(jìn)程)訪問的設(shè)備,即臨界資源。并發(fā)進(jìn)程需要互斥地使用此類設(shè)備。設(shè)備的不當(dāng)分配可能導(dǎo)致死鎖。 -
共享設(shè)備
在一段時(shí)間內(nèi)允許多個(gè)進(jìn)程同時(shí)訪問的設(shè)備。對(duì)于每一時(shí)刻而言,該類設(shè)備仍然只允許一個(gè)進(jìn)程訪問。共享設(shè)備必須是可尋址和隨機(jī)訪問的。共享設(shè)備不僅可以獲得良好的設(shè)備利用率,還是實(shí)現(xiàn)文件系統(tǒng)和數(shù)據(jù)庫的物質(zhì)基礎(chǔ),例如磁盤。 -
虛擬設(shè)備
指通過虛擬技術(shù)(Spooling技術(shù))將一臺(tái)獨(dú)占設(shè)備變換為若干臺(tái)邏輯設(shè)備,供多個(gè)用戶(進(jìn)程)使用。
2 設(shè)備控制器
設(shè)備通常不與CPU直接通信,而是與設(shè)備控制器通信。后者的主要職責(zé)是控制一個(gè)的、或者多個(gè)I/O設(shè)備,以實(shí)現(xiàn)I/O設(shè)備與與計(jì)算機(jī)之間的信息交換。它是CPU與I/O設(shè)備之間的接口,接受從CPU發(fā)來的命令,并去控制I/O設(shè)備工作。
設(shè)備控制器由設(shè)備控制器與處理機(jī)接口、設(shè)備控制器與設(shè)備接口以及I/O邏輯三部分組成。其基本功能包括:
-
接收和識(shí)別命令
CPU可以向控制器發(fā)送多種不同的命令,設(shè)備控制器負(fù)責(zé)識(shí)別這些命令。 -
數(shù)據(jù)交換
指設(shè)備控制器與CPU之間、設(shè)備控制器與設(shè)備間的數(shù)據(jù)交換。 -
標(biāo)識(shí)和報(bào)告設(shè)備的狀態(tài)
控制器應(yīng)記下設(shè)備的狀態(tài)供CPU了解。 -
地址識(shí)別
系統(tǒng)中每個(gè)設(shè)備都應(yīng)有獨(dú)特的地址,設(shè)備控制器必須能夠給設(shè)備它所控制的每個(gè)設(shè)備的地址。 -
數(shù)據(jù)緩沖
由于I/O設(shè)備速率較低,CPU和內(nèi)存的速率卻很高,因此需要在設(shè)備控制器中設(shè)置緩沖器。 -
差錯(cuò)控制
設(shè)備控制器還兼管對(duì)I/O設(shè)備傳送來的數(shù)據(jù)進(jìn)行差錯(cuò)檢測(cè)。
3 I/O通道
雖然設(shè)備控制器能夠大幅度減少CPU對(duì)I/O的干預(yù),但CPU的負(fù)擔(dān)仍然很重。為此,在CPU和設(shè)備控制器之間又增設(shè)了通道。
I/O通道是特殊的處理機(jī),具有執(zhí)行I/O指令的功能。其設(shè)置的目的是為了建立獨(dú)立的I/O操作,不僅使數(shù)據(jù)的傳送能力獨(dú)立于CPU,而且希望有關(guān)對(duì)I/O操作的組織、管理以及結(jié)束處理盡量獨(dú)立,以保證CPU有更多時(shí)間去處理其他事務(wù)。
I/O通道根據(jù)信息交換方式不同,分為:字節(jié)多路通道、數(shù)組選擇通道、數(shù)據(jù)多路通道。數(shù)據(jù)多路通道以數(shù)組方式進(jìn)行數(shù)據(jù)傳送,解決了字節(jié)多路通道傳輸速率低、數(shù)組選擇通道無法分時(shí)并行操作的缺點(diǎn),具有較高的數(shù)據(jù)傳輸速率和令人滿意的通道利用率。廣泛地用于連接多臺(tái)高、中速外圍設(shè)備。
4 總線系統(tǒng)
在計(jì)算機(jī)中的各部件,如CPU、存儲(chǔ)器以及各類I/O設(shè)備之間的聯(lián)系都是通過總線實(shí)現(xiàn)的。其性能是通過總線的始終頻率、帶寬和相應(yīng)的總線傳輸速率衡量的。
總線由早期的ISA總線,發(fā)展為EISA總線、VESA總線,進(jìn)而發(fā)展為當(dāng)前廣為流行的PCI總線。