【操作系統】第六章 輸入輸出系統

I/O系統的組成

包括:

需要用於輸入、輸出和存儲信息的設備;

需要相應的設備控制器;

控制器與CPU連接的高速總線;

有的大中型計算機系統,配置I/O通道;



I/O系統的軟件層次

中斷處理過程

I/O控制方式

緩衝管理、設備分配、設備處理



1. I/O系統的基本功能及模型

1.1 I/O系統的功能 

1.隱藏物理設備細節,方便用戶

用戶使用抽象的I/O命令即可

2.實現設備無關性,方便用戶

用戶可用抽象的邏輯設備名來使用設備,同時也提高了OS的可移植性和易適應性。

3.提高處理機和設備的並行性,提高利用率:緩衝區管理

4.對I/O設備進行控制:控制方式、設備分配、設備處理

5.確保對設備正確共享:虛擬設備及設備獨立性等

6.錯誤處理


1.2 I/O系統的層次結構和模型

層次結構:系統中的設備管理模塊分爲若干個層次

層間操作:下層爲上層提供服務,完成輸入輸出功能中的某些子功能,並屏蔽功能實現的細節。

①用戶層軟件

實現與用戶交互的接口,用戶可直接調用在用戶層提供的、與I/O操作有關的庫函數,對設備進行操作。

②設備獨立軟件

用於實現用戶程序與設備驅動器的統一接口、設備命名、設備的保護以及設備的分配與釋放等,同時爲設備管理和數據傳送提供必要的存儲空間。

③設備驅動程序

與硬件直接相關,用於具體實現系統對設備發出的操作指令,驅動I/O設備工作的驅動程序。

④中斷處理程序

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


1.3 I/O系統接口

①塊設備接口

數據的存取和傳輸都是以數據塊爲單位的設備。基本特徵是傳輸速率較高、可尋址。磁盤設備的I/O常採用DMA方式。

②流設備接口

字符設備:

1.數據的存取和傳輸是以字符爲單位的設備。如鍵盤、打印機等。基本特徵是傳輸速率較低、不可尋址,常採用中斷驅動方式。

2.get和put操作:

由於字符設備是不可尋址的,因而對它只能採取順序存取方式。(用戶程序)獲取或輸出字符的方法是採用get和put操作。

3.in-control指令:

因字符設備的類型非常多,且差異甚大,系統以統一的方式提供了一種通用的in-control指令來處理它們(包含了許多參數,每個參數表示一個與具體設備相關的特定功能)。

③網絡通信接口

通過某種方式,把計算機連接到網絡上。

操作系統必須提供相應的網絡軟件和網絡通信接口,使得計算機能通過網絡與網絡上的其它計算機進行通信,或上網瀏覽。


2.I/O設備和設備控制器

2.1 I/O設備的類型

I/O設備的類型繁多,從OS的觀點,按其重要的性能指標進行分類如下:

按傳輸速率分類:

低速、中速、高速(鍵盤、打印機、磁盤)

使用:存儲設備、輸入輸出設備

按信息交換的單位分類:

塊設備:有結構、速率高、可尋址、DMA方式控制

字符設備:無結構、速率低、不可尋址、中斷方式控制

按設備的共享屬性分類:

獨佔:打印機

共享:一個時刻上仍然是隻被一個進程佔用。可尋址、可隨機訪問的色後備。磁盤。

虛擬:使一臺獨佔設備變換爲若干臺邏輯設備,供給若干用戶“同時使用”。


I/O設備中的接口

與控制器的接口有三種類型的信號

數據信號線(進出數據轉換、緩衝後傳送)

控制信號線(讀\寫\移動磁頭等控制)

狀態信號線


2.2 設備控制器

控制器是CPU與I/O設備之間的接口,作爲中間人接收從CPU發來的命令,並去控制I/O設備工作,以使處理機脫離繁雜的設備控制事務。

①基本功能

1.接收和識別CPU命令(控制寄存器:存放命令和參數)

2.標識和報告設備的狀態(狀態寄存器)

3.數據交換(數據寄存器)

4.地址識別(控制器識別設備地址、寄存器地址。地址譯碼器)

5.數據緩衝(協調I/O與CPU的速度差距)

6.差錯控制


②組成

1.設備控制器與處理機的接口

2.設備控制器與設備的接口

3.I/O邏輯


③處理機與設備控制器間

實現CPU與設備控制器之間的通信。

共有三類信號線:

1.數據線:數據線通常與兩類寄存器相連接,第一類是數據寄存器;第二類是控制/狀態寄存器。

2.地址線

3.控制線


2.3 I/O通道

①I/O通道設備的引入

CPU只需向通道發送一條I/O指令即可不再幹預後續操作。

通道形成通道程序,執行I/O操作,完成後向CPU發中斷信號。

②通道類型

1.字節多路通道

2.數組選擇通道

3.數組多路通道

③“瓶頸”問題

1.數組選擇通道

針對高速設備:分配型子通道

設備利用子通道佔用通道後,一段時間內一直獨佔,直至設備傳送完畢釋放

利用率低。

2.數組多路通道

結合上述兩種方式。

含多個非分配型子通道。數據傳送則按數組方式進行。



3.中斷機構和中斷處理程序

中斷是I/O系統最低的一層,也是設備管理的基礎。

3.1 中斷簡介

3.1.1 中斷和陷入

中斷:CPU對I/O設備發來的中斷信號的一種響應,中斷是由外部設備引起的,又稱外中斷。

陷入:由CPU內部事件所引起的中斷,通常把這類中斷稱爲內中斷或陷入(trap)。

中斷和陷入的主要區別:是信號的來源。


3.1.2 中斷向量表

中斷向量表:爲每種設備配以相應的中斷處理程序,並把該程序的入口地址,放在中斷向量表的一個表項中,併爲每一個設備的中斷請求,規定一箇中斷號,它直接對應於中斷向量表的一個表項中。


3.1.3 對多中斷源的處理方式

①屏蔽(禁止)中斷:

所有中斷都將按順序依次處理。

當處理機正在處理一箇中斷時,將屏蔽掉所有新到的中斷,讓它們等待,直到處理機已完成本次中斷的處理後,處理機再去檢查並處理。

優點是簡單,但不能用於對實時性要求較高的中斷請求。

②嵌套中斷:

中斷優先級:系統根據不同中斷信號源,對服務要求的緊急程度的不同,它們分別規定不同的優先級。

當同時有多個不同優先級的中斷請求時,CPU優先響應最高優先級的中斷請求;

高優先級的中斷請求,可以搶佔正在運行低優先級中斷的處理機,該方式類似於基於優先級的搶佔式進程調度。



3.2 中斷處理程序

3.2.1 主要工作

①進行進程上下文的切換

②對處理中斷信號源進行測試

③讀取設備狀態

④修改進程狀態


3.2.2 中斷處理流程

測定是否有未響應的中斷信號

保護被中斷進程的CPU環境

轉入相應的設備處理程序

中斷處理

恢復CPU的現場




4.設備驅動程序

設備驅動程序是I/O系統的高層與設備控制器之間的通信程序,其主要任務:

1.接收上層軟件發來的抽象I/O要求,如read、write等命令;

2.再把它轉化爲具體要求,發送給設備控制器,啓動設備去執行。

3.反方向,它也將由設備控制器發來的信號,傳送給上層軟件。


4.1 驅動程序的功能

①接收由與設備無關的軟件發來的命令和參數並將命令中的抽象要求,轉換爲與設備相關的低層操作序列;

②檢查用戶I/O請求的合法性,瞭解I/O設備的工作狀態,傳遞與I/O設備操作有關的參數,設置設備的工作方式;

③發出I/O命令,如果設備空閒,便立即啓動I/O設備,完成指定的I/O操作;如果設備忙碌,則將請求者掛在設備隊列上等待;

④及時響應由設備控制器發來的中斷請求,並根據其中斷類型,調用相應的中斷處理程序進行處理。


4.2 設備驅動程序的特點

(1)驅動程序是與設備無關的軟件和設備控制器之間通信和轉換的程序。

(2)驅動程序,與設備控制器和I/O設備的硬件特性,緊密相關。     

(3)驅動程序與I/O設備所採用的I/O控制方式緊密相關。

(4)由於驅動程序與硬件緊密相關,因而其中的一部分必須用彙編語言編寫。

(5)驅動程序應允許可重入,一個正在運行的驅動程序常會在一次調用完成前被再次調用。


4.3 設備處理方式

具體分類

(1)爲每一類設備設置一個進程,專門用於執行這類設備的I/O操作。這種方式比較適合於較大的系統;

(2)在整個系統中設置一個I/O進程,專門用於執行系統中所有各類設備的I/O操作。也可以設置一個輸入進程和一個輸出進程,分別處理系統中的輸入或輸出操作;

(3)不設置專門的設備處理進程,而只爲各類設備設置相應的設備驅動程序,供用戶或系統進程調用。這種方式目前用得較多。


4.4 驅動程序處理過程

I/O設備與控制器間的通信轉換程序

瞭解抽象命令,瞭解控制器內部的寄存器結構

與硬件密切相關,每類設備配備一種驅動程序

功能:接受解釋指令(有通道的系統,自動通道程序)、相關判斷、發送設備命令、響應中斷

特點,控制方式不同程序不同,部分固化進硬件,代碼可重入。


 4.5.  I/O控制方式

程序I/O方式

中斷驅動I/O方式

直接存儲器訪問DMA(字節—塊)

I/O通道控制方式(組織傳送的獨立)

宗旨:減少主機對I/O控制的干預,將CPU從繁雜的I/O控制事物中解脫出來。



5.與設備無關的I/O軟件

設備獨立性的基本含義:

指應用程序中所使用的設備,不侷限於使用某個具體的物理設備,也稱爲設備無關性。

爲了實現設備獨立性,在設備驅動程序之上設置一層軟件,稱爲與設備無關的I/O軟件,或設備獨立性軟件。

設備無關的軟件是I/O系統最高層軟件,但它和其下的設備驅動程序之間的界限,將隨操作系統和設備的不同而有所差異。


5.1 設備分配中的數據結構

記錄相應設備或控制器的狀態,及對設備或控制器進行控制所需的信息。所需數據結構:

設備控制表

控制器控制表

通道控制表

系統設備(總)表


5.2 設備分配需考慮的因素

設備固有屬性:獨佔、共享、獨佔但可虛擬。根據屬性採取互斥、次序調度、虛擬等不同分配策略。

設備分配算法(對不同進程的設備請求序列,如何進行選擇),常採用兩種:

FCFS

優先級高者優先

設備分配的安全性:進程開始I/O後就阻塞直到I/O完成。不“請求和保持”(安全的);允許連續I/O請求,是不安全的,此類分配方式需進行安全性檢查。

設備獨立性

用戶IO請求中使用邏輯名申請某類設備,實際物理名稱是系統根據設備類型分析分配後才確定的。


5.3 獨佔設備的分配過程

基本分配步驟(一個有通道的例子):

1.分配設備:

根據請求設備名,查找SDT,找到DCT;

狀態、安全性等因素都可能導致本申請進程阻塞,掛入DCT等待隊列中。

2.分配控制器

通過1步分配設備後,從DCT找到COCT;

檢查COCT狀態字,若忙碌,進程PCB掛到其等待隊列

3.分配通道

COCT找到CHCT

判斷狀態,…

當上述三步都通過後,纔可啓動設備進行數據傳輸

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章