操作系統原理 第六章 輸入輸出系統

6.1 I/O系統的功能、模型和接口

I/O系統管理的主要對象是I/O設備和相應的設備控制器。其最主要的任務是,完成用戶提出的I/O請求,提高I/O速率,以及提高設備的利用率,並能爲更高層的進程方便地使用這些設備提供手段。

6.1.1 I/O系統的基本功能

1.隱藏物理設備的細節
I/O設備的類型非常多,且彼此間在多方面都有差異,諸如它們接收和產生數據的速度,傳輸方向、粒度、數據的表示形式及可靠性等方面。
2.與設備的無關係
隱藏物理設備的細節,在早期的OS中就已實現,它可方便用戶對設備的使用。與設備的無關性是在較晚時才實現的,這是在隱藏物理設備細節的基礎上實現的。
3.提高處理機和I/O設備的利用率
在一般的系統中,許多I/O設備間是相互獨立的,能夠並行操作,在處理機與設備之間也能並行操作。因此,I/O系統的第三個功能是要儘可能地讓處理機和I/O設備並行操作,以提高它們的利用率。爲此,一方面要求處理機能快速響應用戶的I/O請求,使I/O設備儘快地運行起來;另一方面也應儘量減少在每個I/O設備運行時處理機的干預時間。
4.對I/O設備進行控制
對I/O設備進行控制是驅動程序的功能。目前對I/O設備有四種控制方式:
① 採用輪詢的可編程I/O方式;
② 採用中斷的可編程I/O方式;
③ 直接存儲器訪問方式;
④ I/O通道方式。
5.確保對設備的正確共享
從設備的共享屬性上,可將系統中的設備分爲如下兩類:
(1) 獨佔設備,進程應互斥地訪問這類設備,即系統一旦把這類設備分配給了某進程後,便由該進程獨佔,直至用完釋放。典型的獨佔設備有打印機、磁帶機等。系統在對獨佔設備進行分配時,還應考慮到分配的安全性。
(2) 共享設備,是指在一段時間內允許多個進程同時訪問的設備。典型的共享設備是磁盤,當有多個進程需對磁盤執行讀、寫操作時,可以交叉進行,不會影響到讀、寫的正確性。
6.錯誤處理
大多數的設備都包括了較多的機械和電氣部分,運行時容易出現錯誤和故障。從處理的角度,可將錯誤分爲臨時性錯誤和持久性錯誤。對於臨時性錯誤,可通過重試操作來糾正,只有在發生了持久性錯誤時,才需要向上層報告。

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

1.I/O軟件的層次結構
在這裏插入圖片描述
2.I/O系統中各種模塊之間的層次視圖
爲了能更清晰地描述I/O系統中主要模塊之間的關係,我們進一步介紹I/O系統中各種I/O模塊之間的層次視圖。

  1. I/O系統的上、下接口
    (1)  I/O系統接口。
    (2) 軟件/硬件(RW/HW)接口。
    在這裏插入圖片描述
  2. I/O系統的分層
    與前面所述的I/O軟件組織的層次結構相對應,I/O系統本身也可分爲如下三個層次:
    (1) 中斷處理程序。
    (2) 設備驅動程序。
    (3) 設備獨立性軟件。

6.1.3 I/O系統接口

在I/O系統與高層之間的接口中,根據設備類型的不同,又進一步分爲若干個接口。
1. 塊設備接口
(1) 塊設備。
(2) 隱藏了磁盤的二維結構。
(3) 將抽象命令映射爲低層操作。

2. 流設備接口
流設備接口是流設備管理程序與高層之間的接口。該接口又稱爲字符設備接口,它反映了大部分字符設備的本質特徵,用於控制字符設備的輸入或輸出。
(1) 字符設備。
(2) get和put操作。
(3) in-control指令。

3.網絡通信接口
在現代OS中,都提供了面向網絡的功能。但首先還需要通過某種方式把計算機連接到網絡上。同時操作系統也必須提供相應的網絡軟件和網絡通信接口,使計算機能通過網絡與網絡上的其它計算機進行通信或上網瀏覽。


6.2 I/O設備和設備控制器

I/O設備一般是由執行I/O操作的機械部分執行控制I/O的電子部件組成。通常將這兩部分分開,執行I/O操作的機械部分就是一般的I/O設備,而執行控制I/O的電子部件則稱爲設備控制器或適配器(adapter)。在微型機和小型機中的控制器常做成印刷電路卡形式,因而也常稱爲控制卡、接口卡或網卡,可將它插入計算機的擴展槽中。在有的大、中型計算機系統中,還配置了I/O通道或I/O處理機。

6.2.1 I/O設備

1.I/O設備的類型

  • 按使用特性分類
  • 按傳輸速率分類

2.設備與控制器之間的接口
通常,設備並不是直接與CPU進行通信,而是與設備控制器通信,因此,在I/O設備中應含有與設備控制器間的接口,在該接口中有三種類型的信號,各對應一條信號線。
(1) 數據信號線。
(2) 控制信號線。
(3) 狀態信號線。
在這裏插入圖片描述

6.2.2 設備控制器

1.設備控制器的基本功能
 (1) 接收和識別命令。
 (2) 數據交換。
 (3) 標識和報告設備的狀態。
 (4) 地址識別。
 (5) 數據緩衝區。
 (6) 差錯控制。

2.設備控制器的組成
由於設備控制器位於CPU與設備之間,它既要與CPU通信,又要與設備通信,還應具有按照CPU所發來的命令去控制設備工作的功能,因此,現有的大多數控制器都是由以下三部分組成:
(1) 設備控制器與處理機的接口。
(2) 設備控制器與設備的接口。
(3)  I/O邏輯。
在這裏插入圖片描述

6.2.3 內存映像I/O

1.利用特定的I/O指令
在早期的計算機中,包括大型計算機,爲實現CPU和設備控制器之間的通信,爲每個控制寄存器分配一個I/O端口,這是一個8位或16位的整數,另外還設置了一些特定的I/O指令。
2.內存映像I/O
在這種方式中,在編址上不再區分內存單元地址和設備控制器中的寄存器地址,都採用k。當k值處於0~n-1範圍時,被認爲是內存地址,若k大於等於n時,被認爲是某個控制器的寄存器地址。
在這裏插入圖片描述

6.2.4 I/O通道

1.I/O通道設備的引入
雖然在CPU與I/O設備之間增加了設備控制器後,已能大大減少CPU對I/O的干預,但當主機所配置的外設很多時,CPU的負擔仍然很重。爲此,在CPU和設備控制器之間又增設了I/O通道(I/O Channel)。
2.通道類型

  1. 字節多路通道(Byte Multiplexor Channel)
    這是一種按字節交叉方式工作的通道。它通常都含有許多非分配型子通道,其數量可從幾十到數百個,每一個子通道連接一臺I/O設備,並控制該設備的I/O操作。這些子通道按時間片輪轉方式共享主通道。
    在這裏插入圖片描述

  2. 數組選擇通道(Block Selector Channel)
    字節多路通道不適於連接高速設備,這推動了按數組方式進行數據傳送的數組選擇通道的形成。

  3. 數組多路通道(Block Multiplexor Channel)
    數組選擇通道雖有很高的傳輸速率,但它卻每次只允許一個設備傳輸數據。數組多路通道是將數組選擇通道傳輸速率高和字節多路通道能使各子通道(設備)分時並行操作的優點相結合而形成的一種新通道。
    3.“瓶頸”問題
    由於通道價格昂貴,致使機器中所設置的通道數量勢必較少,這往往又使它成了I/O的瓶頸,進而造成整個系統吞吐量的下降。
    在這裏插入圖片描述
    在這裏插入圖片描述


6.3 中斷機構和中斷處理程序

對於操作系統中的I/O系統,本章採取從低層向高層的介紹方法,從本節開始首先介紹中斷處理程序。中斷在操作系統中有着特殊重要的地位,它是多道程序得以實現的基礎,沒有中斷,就不可能實現多道程序,因爲進程之間的切換是通過中斷來完成的。另一方面,中斷也是設備管理的基礎,爲了提高處理機的利用率和實現CPU與I/O設備並行執行,也必需有中斷的支持。中斷處理程序是I/O系統中最低的一層,它是整個I/O系統的基礎。

6.3.1 中斷簡介

1.中斷和陷入

是指處理器接收到來自硬件或軟件的信號,提示發生了某個事件,應該被注意,這種情況就稱爲中斷。

  • 陷入

陷入是計算機的一種異常情況。陷入(trap)保存的EIP指向觸發異常的那條指令的下一條指令

中斷、異常與陷入

2.中斷向量表和中斷優先級

  • 中斷向量表

中斷向量(Interrupt vector)是中斷服務程序的入口地址,或中斷向量表(它是一箇中斷處理程序地址的數組)的表項。

系統程序必須維護一份中斷向量表,每一個表項紀錄一箇中斷處理程序(ISR,Interrupt Service Routine)的地址當外部事件或異常產生時,由硬件負責產生一箇中斷標記,CPU根據中斷標記獲得相應中斷的中斷向量號,然後由CPU根據中斷向量表的地址和中斷向量號去查找中斷向量表獲得相應中斷號的中斷程序地址,進一步執行對應的中斷處理程序。

  • 中斷優先級

爲使系統能及時響應並處理髮生的所有中斷,系統根據引起中斷事件的重要性和緊迫程度,硬件將中斷源分爲若干個級別,稱作中斷優先級。

在實際系統中,常常遇到多箇中斷源同時請求中斷的情況,這時CPU必須確定首先爲哪一個中斷源服務,以及服務的次序。解決的方法是中斷優先排隊,即根據中斷源請求的輕重緩急,排好中斷處理的優先次序即優先級( Priority ),又稱優先權,先響應優先級最高的中斷請求。另外,當CPU正在處理某一中斷時,要能響應另一個優先級更高的中斷請求,而屏蔽掉同級或較低級的中斷請求,形成中斷嵌套。

3.對多中斷源的處理方式

  • 屏蔽(禁止)中斷
  • 嵌套中斷

在這裏插入圖片描述

6.3.2 中斷處理程序

當一個進程請求I/O 操作時,該進程將被掛起,直到I/O設備完成I/O操作後,設備控制器便向CPU發送一箇中斷請求,CPU響應後便轉向中斷處理程序,中斷處理程序執行相應的處理,處理完後解除相應進程的阻塞狀態。
在這裏插入圖片描述
在這裏插入圖片描述


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