1. I/O系統(tǒng)的基本功能及模型
1)主要功能:
1.隱藏物理設(shè)備細(xì)節(jié),方便用戶
用戶使用抽象的I/O命令即可
2.實現(xiàn)設(shè)備無關(guān)性,方便用戶
用戶可用抽象的邏輯設(shè)備名來使用設(shè)備,同時也提高了OS的可移植性和易適應(yīng)性。
3.提高處理機(jī)和設(shè)備的并行性,提高利用率:緩沖區(qū)管理
4.對I/O設(shè)備進(jìn)行控制:控制方式、設(shè)備分配、設(shè)備處理
5.確保對設(shè)備正確共享:虛擬設(shè)備及設(shè)備獨(dú)立性等
6.錯誤處理
2)I/O/系統(tǒng)的層次結(jié)構(gòu)和模型
層次結(jié)構(gòu):系統(tǒng)中的設(shè)備管理模塊分為若干個層次
層間操作:下層為上層提供服務(wù),完成輸入輸出功能中的某些子功能,并屏蔽功能實現(xiàn)的細(xì)節(jié)。
I/O軟件系統(tǒng)的層次
中斷處理程序
¨處于I/O系統(tǒng)的底層,直接與硬件進(jìn)行交互
設(shè)備驅(qū)動程序
¨處于次底層,是進(jìn)程和控制器之間的通信程序
¨功能:將上層發(fā)來的抽象I/O請求,轉(zhuǎn)換為對I/O設(shè)備的具體命令和參數(shù),并把它裝入到設(shè)備控制其中的命令和參數(shù)寄存器中
設(shè)備獨(dú)立性軟件
¨包括設(shè)備命名、設(shè)備分配、數(shù)據(jù)緩沖等軟件
?I/O系統(tǒng)接口
塊設(shè)備
¨數(shù)據(jù)的存取和傳輸都是以數(shù)據(jù)塊為單位的設(shè)備。基本特征是傳輸速率較高、可尋址。磁盤設(shè)備的I/O常采用DMA方式。
特點
¨隱藏了磁盤的二維結(jié)構(gòu):塊設(shè)備接口隱藏了磁盤地址是二維結(jié)構(gòu)的情況:每個扇區(qū)的地址需要用磁道號和扇區(qū)號來表示。
¨將抽象命令映射為低層操作:塊設(shè)備接口將上層發(fā)來的抽象命令,映射為設(shè)備能識別的較低層具體操作。??
字符設(shè)備:
¨數(shù)據(jù)的存取和傳輸是以字符為單位的設(shè)備。如鍵盤、打印機(jī)等。基本特征是傳輸速率較低、不可尋址,常采用中斷驅(qū)動方式。
nget和put操作:
¨由于字符設(shè)備是不可尋址的,因而對它只能采取順序存取方式。(用戶程序)獲取或輸出字符的方法是采用get和put操作。
nin-control指令:
¨因字符設(shè)備的類型非常多,且差異甚大,系統(tǒng)以統(tǒng)一的方式提供了一種通用的in-control指令來處理它們(包含了許多參數(shù),每個參數(shù)表示一個與具體設(shè)備相關(guān)的特定功能)。
I/O系統(tǒng)的組成
包括:
需要用于輸入、輸出和存儲信息的設(shè)備;
需要相應(yīng)的設(shè)備控制器;
控制器與CPU連接的高速總線;
有的大中型計算機(jī)系統(tǒng),配置I/O通道;
1)I/O設(shè)備的類型
???? I/O設(shè)備的類型繁多,從OS的觀點,按其重要的性能指標(biāo)進(jìn)行分類如下:
?按傳輸速率分類:
?低速、中速、高速(鍵盤、打印機(jī)、磁盤)
?使用:存儲設(shè)備、輸入輸出設(shè)備
?按信息交換的單位分類:
?塊設(shè)備:有結(jié)構(gòu)、速率高、可尋址、DMA方式控制
?字符設(shè)備:無結(jié)構(gòu)、速率低、不可尋址、中斷方式控制
2)設(shè)備控制器
設(shè)備并不直接與CPU通信
計算機(jī)中的一個實體——“設(shè)備控制器”負(fù)責(zé)控制一個或多個I/O設(shè)備,以實現(xiàn)I/O設(shè)備和計算機(jī)之間的數(shù)據(jù)交換。
控制器是CPU與I/O設(shè)備之間的接口,作為中間人接收從CPU發(fā)來的命令,并去控制I/O設(shè)備工作,以使處理機(jī)脫離繁雜的設(shè)備控制事務(wù)。
①基本功能
1.接收和識別CPU命令(控制寄存器:存放命令和參數(shù))
2.標(biāo)識和報告設(shè)備的狀態(tài)(狀態(tài)寄存器)
3.數(shù)據(jù)交換(數(shù)據(jù)寄存器)
4.地址識別(控制器識別設(shè)備地址、寄存器地址。地址譯碼器)
5.數(shù)據(jù)緩沖(協(xié)調(diào)I/O與CPU的速度差距)
6.差錯控制
3)I/O通道
①I/O通道設(shè)備的引入
設(shè)備控制器已大大減少CPU對I/O的干預(yù)
(如承擔(dān)了選擇設(shè)備,數(shù)據(jù)轉(zhuǎn)換、緩沖等功能)
但當(dāng)主機(jī)的外設(shè)很多時,CPU的負(fù)擔(dān)仍然很重。
在CPU和設(shè)備控制器之間增設(shè)一個硬件機(jī)構(gòu):“通道”
設(shè)置通道后
¨CPU只需向通道發(fā)送一條I/O指令即可不再干預(yù)后續(xù)操作。
¨通道形成通道程序,執(zhí)行I/O操作,完成后向CPU發(fā)中斷信號。
②通道類型
根據(jù)其控制的外圍設(shè)備的不同類型,信息交換方式也可分為以下三種類型:
1)字節(jié)多路通道
2)數(shù)組選擇通道
3)數(shù)組多路通道
1.驅(qū)動程序的功能
(1)接收由與設(shè)備無關(guān)的軟件發(fā)來的命令和參數(shù),并將命令中的抽象要求,轉(zhuǎn)換為與設(shè)備相關(guān)的低層操作序列;
(2)檢查用戶I/O請求的合法性,了解I/O設(shè)備的工作狀態(tài),傳遞與I/O設(shè)備操作有關(guān)的參數(shù),設(shè)置設(shè)備的工作方式;
(3)發(fā)出I/O命令,如果設(shè)備空閑,便立即啟動I/O設(shè)備,完成指定的I/O操作;如果設(shè)備忙碌,則將請求者掛在設(shè)備隊列上等待;
(4)及時響應(yīng)由設(shè)備控制器發(fā)來的中斷請求,并根據(jù)其中斷類型,調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理。
2.設(shè)備驅(qū)動程序的特點
(1)驅(qū)動程序是與設(shè)備無關(guān)的軟件和設(shè)備控制器之間通信和轉(zhuǎn)換的程序。
(2)驅(qū)動程序,與設(shè)備控制器和I/O設(shè)備的硬件特性,緊密相關(guān)。?????
(3)驅(qū)動程序與I/O設(shè)備所采用的I/O控制方式緊密相關(guān)。
(4)由于驅(qū)動程序與硬件緊密相關(guān),因而其中的一部分必須用匯編語言編寫。
(5)驅(qū)動程序應(yīng)允許可重入,一個正在運(yùn)行的驅(qū)動程序常會在一次調(diào)用完成前被再次調(diào)用。
3.設(shè)備處理方式
具體分類
¨(1)為每一類設(shè)備設(shè)置一個進(jìn)程,專門用于執(zhí)行這類設(shè)備的I/O操作。這種方式比較適合于較大的系統(tǒng);
¨(2)在整個系統(tǒng)中設(shè)置一個I/O進(jìn)程,專門用于執(zhí)行系統(tǒng)中所有各類設(shè)備的I/O操作。也可以設(shè)置一個輸入進(jìn)程和一個輸出進(jìn)程,分別處理系統(tǒng)中的輸入或輸出操作;
¨(3)不設(shè)置專門的設(shè)備處理進(jìn)程,而只為各類設(shè)備設(shè)置相應(yīng)的設(shè)備驅(qū)動程序,供用戶或系統(tǒng)進(jìn)程調(diào)用。這種方式目前用得較多。
?5.? I/O控制方式
程序I/O方式
中斷驅(qū)動I/O方式
直接存儲器訪問DMA(字節(jié)—塊)
I/O通道控制方式(組織傳送的獨(dú)立)
宗旨:減少主機(jī)對I/O控制的干預(yù),將CPU從繁雜的I/O控制事物中解脫出來。
設(shè)備獨(dú)立性(無關(guān)性)
用戶編程時所用的設(shè)備名(邏輯上的)與實際物理設(shè)備無關(guān);
好處:
1.設(shè)備分配時的靈活性
???? 3個物理設(shè)備(如打印機(jī)),程序中申請一臺打印機(jī),執(zhí)行時不拘泥必須是某臺(如第2個)打印機(jī)
2.易于實現(xiàn)I/O重定向
? 指用于I/O操作的設(shè)備可以更換(重定向),而不必改變應(yīng)用程序。
程序調(diào)試、運(yùn)行中的“打印”,可通過修改邏輯設(shè)備表的顯示終端,實現(xiàn)不同時候的不同的設(shè)備使用。