《操作系統設計與實現》(第三版)第三章 輸入/輸出系統 重要概念彙總

1. I/O設備

1.1分類

塊設備(block device)和字符設備(character device)

①塊設備:用於存儲信息,信息存取的基本單位是數據塊,如磁盤和磁帶等。這類設備可尋址

②字符設備發送/接收的是字符流,而不考慮任何塊結構。字符設備無法編址,也不存在任何尋址操作,打印機、網絡接口、鼠標以及大多數與磁盤不同的設備均可被視爲字符設備

——這種分類不完美,有些設備就符合這種分類:如時鐘,無法尋址,也不產生/接收字符流,但時鐘的全部功能就是按照預先定義的實踐間隔發出中斷。

1.2設備控制器

  I/O設備通常由一個機械部件和一個電子部件組成。電子部件稱爲設備控制器(device controller)或適配器(adapter),機械部件則是設備本身。

之所以區分控制器和設備本身,是因爲操作系統大多與控制器打交道,而非設備本身

1.3內存映射I/O

CPU如何與控制寄存器和設備的數據緩衝器進行通信?

①每個控制寄存器被分配一個I/O端口號,是用一條專門的I/O指令

這種方案中,內存和I/O的地址空間是不同的(獨立的I/O和內存空間)

                                                    

I/O寄存器是內存地址空間的一部分,這種方案稱爲內存映射I/O每個控制寄存器被分配唯一的內存地址,並且不會有內存分配這一地址。通常分配給控制寄存器的地址位於地址空間的頂端。

2. 中斷

2.1忙等待定義

  CPU可以執行一個循環,一直測試狀態標誌位,直到設備準備好接收/提供新數據。這種方法稱爲輪詢檢測(polling)或者忙等待(busy waiting)

2.1中斷髮生時操作系統的內部發生哪些變化?(簡答)

1. 硬件壓棧程序計數器等。

2. 硬件按中斷向量下載新的程序計數器。

3. 彙編語言程序存儲寄存器值。

4. 彙編語言程序設置新的棧。

5. C語言中斷服務例程運行。

6. 消息傳遞代碼對等待的就緒任務進行標識。

7. 調度器決定哪個進程是下一個將運行的進程。

8. C程序段返回彙編代碼。

9. 彙編語言程序開始運行當前進程。

3. 直接存儲器存取(Direct Memory Access)

不管DMA控制器物理上處於什麼地方,它都獨立於CPU訪問系統總線。它包含一些可以被CPU讀寫的寄存器。控制寄存器指定使用的I/O端口、傳輸方向、傳輸單位以及在一次衝突傳送中要傳送的字節數。

3.1DMA工作原理

①外設可通過DMA控制器向CPU發出DMA請求

②CPU響應DMA請求,系統轉變爲DMA工作方式,並把總線控制權交給DMA控制器

③由DMA控制器發送存儲器地址,並舉鼎傳送數據塊的長度

④執行DMA傳送

⑤DMA操作結束,並把總線控制權還給CPU

3.2 DMA爲什麼需要一個內部緩衝區

①通過內部緩衝區,磁盤控制器能在開始傳送之前驗證校驗和,如果和是錯誤的,將發出一個錯誤的信號,並且不傳送到內存;

②一旦磁盤傳輸開始,從磁盤讀出的位流以恆定的速率到達,而不管控制器是否已準備接收它們

4. I/O軟件的原理

4.1 I/O設計目標

①與具體I/O設備無關

②採用統一命名方式

③應對錯誤進行處理

④採用緩衝技術

⑤實現I/O設備的分配和釋放

⑥提供合理的I/O控制方式

4.2 I/O應用接口的四個層次(考點)

                  

4.2.1 每層完成的功能及各層的關係(考點)                                          

(1) 用戶層I/O軟件,實現與用戶交互的接口,用戶可直接調用該層所提供的、與IO操作有關的庫函數對設備進行操作。

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

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

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

5. CPU與外設之間傳遞數據的方式(考點)

5.1程序查詢方式                                            

就是由用戶進程直接控制內存或CPU和外圍設備之間的信息傳送。這種方式控制者都是用戶進程。

5.1.1過程                                                             

在早期計算機系統中,由於無中斷機構,處理機對I/O設備的控制採用程序查詢的方式/忙等待方式。

5.1.2優缺點                                                             

優點:實現非常簡單

缺點:CPU的利用率相當低,在循環測試中浪費了大量的CPU處理時間

5.2程序中斷方式                                                       

要求CPU和設備之間有相應的中斷請求線,且要求在狀態寄存器中有中斷允許位

5.2.1過程                                                             

①需要數據的進程通過CPU向相應的設備控制器發出一條I/O命令,CPU立即返回繼續執行原來的任務。該進程放棄處理機等待輸入完成

②設備控制器按照該命令的要求去控制指定的I/O設備讀數據,此時CPU與I/O設備並行操作

③輸入完成時,I/O控制器通過中斷請求線向CPU發出中斷信號。CPU在接收到中斷信號之後,轉向設備中斷處理程序。設備中斷處理程序將輸入數據寄存器中的數據傳送到某一特定內存單元中,以便供要求輸入的進程使用。同時把等待輸入完成的那個進程喚醒,在返回到被中斷的進程繼續執行

④在以後的某個時刻,進程調度程序選中提出請求輸入的進程,該進程從約定的內存單元中去數據做進一步處理

5.2.2優缺點                                                              

優點:與程序查詢方式相比,大大提高CPU的利用率

缺點:若每臺設備每輸入/輸出一個數據都要求中斷CPU,這樣在一次數據傳送過程中,中斷髮生次數較多,從而耗去大量的CPU處理時間

5.3DMA控制方式                                                               

5.3.1過程                                                              

①當進程要求設備輸入一批數據時,CPU將準備存放輸入數據的內存始址以及要傳送的字節數分別送入DMA控制器中的內存地址寄存器和傳送自己計數器,另外還要將中斷位和啓動位置1,以啓動設備開始進行數據輸入並允許中斷

②發出數據請求進程進入等待狀態,進程調度程序調度其他進程佔據CPU

③輸入設備不斷地挪用CPU工作週期,將數據寄存器中的數據源源不斷地寫入內存,直到要求的字節全部傳送完畢

④DMA控制器在傳送字節數完成時通過中斷請求線發出中斷信號,CPU收到中斷信號後轉入中斷處理程序,喚醒等待輸入完成的進程,並返回到被中斷程序

⑤在以後的某個時刻,進程調度程序選中提出請求輸入的進程,該進程從制定的內存單元中取走數據並做進一步處理。

5.3.2與中斷控制的主要區別                                                              

DMA控制和中斷控制的主要區別:終端控制方式在每個數據傳送完成後中斷CPU,而DMA控制方式則是在所要求傳送的一批數據全部傳送結束時中斷CPU;中斷控制方式的數據傳送是在中斷處理時由CPU控制完成的,而DMA控制方式則是在DMA控制器的控制下完成的。

5.3.2優缺點                                                              

優點:數據傳輸的基本單位是數據塊,所傳送的數據是從設備直接送入內存,或者相反;盡在傳送一個/多個數據塊開始和結束時,才需要CPU的干預,成倍地減少了CPU對/O的干預,進一步提高了CPU與I/O設備的並行操作程度

缺點:數據傳送的方向、存放數據的內存始址及傳送數據的長度都是CPU控制,佔用一定CPU時間;每臺設備需要一個DMA控制器,當設備增加時,多個DMA控制器的使用不經濟

5.4通道控制方式                                           

I/O通道是指專門用於負責輸入/輸出工作的處理及,獨立於CPU,有自己的指令系統。通道程序放在主存中,通過執行通道程序對設備控制器進行控制,由設備控制器控制設備進行I/O操作

5.4.1分類                                                              

 分類:字節多路通道、數組選擇通道、數據多路通道

5.4.2過程                                                              

①當進程要求輸入數據時,CPU發出啓動指令指名要進行的I/O操作、所使用的設備號和對應通道

②對應通道接收到CPU發來的啓動指令後,把存放在內存中的通道程序讀出,並執行通道程序,控制設備將數據傳送到內存中指定的區域

③若數據傳送結束,則想CPU發出中斷請求信號。CPU收到中斷信號後轉至中斷處理程序,喚醒等待輸入完成的進程,並返回到被中斷程序

④在以後的某個時刻,進程調度程序選中提出請求輸入的進程,該進程從制定的內存單元中取走數據並做進一步處理。

5.4.3區別                                                              

   ①I/O通道與一般處理機的區別:I/O通道的指令類型單一,沒有自己的內存,通道所執行的I/O通道程序是放在主機的內存中的,也就是說通道與CPU共享內存

   ②I,O通道與DMA控制方式的區別:DMA控制方式需要CPU來控制傳輸的數據塊大小、傳輸的內存位置,而通道控制方式中這些信息是由通道控制的。另外,每個DMA控制器對應一臺設備與內存傳送數據,而一個通道可以控制多臺設備與內存的數據交換。

5.4.4優缺點                                                             

優點:與DMA控制方式相比,通道所需要的CPU干預更少,可以實現CPU、通道、I/O設備三者的並行操作,更有效地提高了整個系統的資源利用率

缺點:通道的費用較高

6. 適配器(考點)

適配器簡稱接口,它將外圍設備同某種計算機連接起來,使它們在一起可以正常工作。通過適配器可以實現高速CPU與低速外設之間工作速度上的匹配和同步,並完成計算機和外設之間的所有數據傳送和控制。

7. 緩衝(考點)

7.1引入緩衝的目的

·解決緩和CPU和I/O設備速度不匹配的錨段

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

·提高CPU和I/O設備之間的並行性

7.2分類                                                   

根據系統設置的緩衝區個數不同,可分爲單緩衝、雙緩衝、環形緩衝和緩衝池

7.2.1緩衝池                                                              

緩衝池由多個緩衝區組成,緩衝池中的緩衝區是系統公用資源,可供多個進程共享,既能用於輸入,又能用於輸出(多進程的同步)

8. SPOOLING(考點)

8.1SPOOLING系統組成                                                   

①輸入井和輸出井(在磁盤上開闢出來的兩個存儲區域)

②輸入緩衝區和輸出緩衝區(在內存中開闢出來的兩個存儲區域)

③輸入進程和輸出進程(輸入進程模擬脫機輸入時的外圍控制機,輸出進程模擬脫機輸出時的外圍控制機)

8.2特點                                                              

①提高了I/O速度,從低速I/O設備的I/O操作變爲輸入井/輸出井的操作,像脫機一樣,緩和了CPU與低速I/O設備速度不匹配的矛盾

②將獨佔設備改爲共享設備,在輸入井和輸出井中,爲進程分配一個存儲區和建立一個I/O申請表

③實現了虛擬設備功能,多個進程同時使用一獨享設備,對於每個進程而言,都認爲自己獨佔這一設備

9. 端口地址(考點)

在微機系統中,每個端口分配有唯一的地址碼,稱之爲端口地址。

10. 死鎖(考點)

如果一個進程集合中的每一個進程都在等待只能由本集合中的其他進程才能引發的實踐,那麼該組進程是死鎖的

10.1死鎖的條件                                                       

四個必要條件:

互斥條件:每以資源要麼被分配給了一個進程,要麼就是可用的

佔有和等待條件:已分配到了一些資源的進程可以請求新的資源

不可搶佔條件:已分配給一個進程的資源只能被佔有它的進程顯示地釋放

環路等待條件:死鎖發生時,系統中必然有一條由兩個/兩個以上的進程組成的環路

10.2死鎖預防方法                                                       

條件

方法

互斥

一切都使用假脫機技術

佔有和等待

在開始時請求所有資源

不可搶佔

搶佔資源

環路等待

對資源按數值編號

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