[OS复习]设备管理1
生活随笔
收集整理的這篇文章主要介紹了
[OS复习]设备管理1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.設備管理概述
設備管理的主要功能包括:設備分配、設備映射、設備驅動、I/O緩沖區管理1.1設備分配
多道程序系統中的設備不允許用戶直接使用,而是由操作系統統一調度和控制。設備分配功能是設備管理的基本任務。設備分配程序按照一定的策略,為申請設備的用戶進程分配設備,記錄設備的使用情況?1.2設備映射
為了提高應用軟件對運行平臺的適應能力,方便實現應用軟件I/O重定向,大多數現代操作系統均支持應用軟件對設備的無關性,即通常所說的設備無關性,或者設備獨立性。設備無關性:應用軟件所引用的、用于實現I/O操作的設備與物理I/O系統中實際安裝的設備沒有固定的聯系。邏輯設備和物理設備 :
邏輯設備是指,應用軟件所引用的用于實現I/O操作的設備。
物理設備則指,物理I/O系統中實際安裝的設備。
從應用軟件的角度看,邏輯設備是一類物理設備的抽象。從操作系統設備管理程序的角度看,物理設備則是某種邏輯設備的實例。
如果某系統支持設備無關性,那么該系統中應用軟件所引用的邏輯設備與實際安裝的物理設備沒有固定的聯系。事實上,在應用軟件運行期間,操作系統的設備管理程序必須將該應用軟件對邏輯設備的引用轉換成對相關物理設備的引用。設備管理的這種功能稱為邏輯設備到物理設備的映射功能,簡稱設備映射功能。
1.3設備驅動
又稱設備處理,指對物理設備進行控制,以實現真正的I/O操作。設備驅動的主要任務是:接收上層軟件發來的抽象服務請求,例如讀/寫命令,再把它轉換為具體要求,通過一系列的I/O指令,控制設備完成請求的操作;同時,設備驅動程序還將設備發來的有關信號傳送給上層軟件,例如設備是否已損壞等。?設備驅動程序與硬件密切相關,應為每一類設備配置一種驅動程序。設備驅動程序一般由設備開發廠商根據操作系統的要求組織編寫,操作系統僅對與設備驅動的接口提出要求,一般不負責具體設備驅動程序的編寫。有時候,某些硬件無法在某種操作系統中使用,原因很可能就是沒有專門的或通用的設備驅動程序,或者設備驅動程序設計有問題,使得設備無法正常工作。
1.4I/O緩沖區的管理
為了緩和處理機與外部設備間速度不匹配的矛盾,提高處理機和外部設備間的并行性,現代操作系統大都在設備管理部分引入了緩沖技術。通常,緩沖區是指內存中的若干區域,用于緩存進程與外部設備間的數據傳輸。又稱為I/O緩沖區。I/O緩沖區管理的任務是:組織I/O緩沖區,并為使用者提供獲得和釋放I/O緩沖區的手段。?1.5通用設備管理分層模型?
將設備管理功能模塊分為設備硬件無關以及設備硬件相關兩個層次。設備硬件無關層主要實現:I/O緩沖區管理以及設備映射功能。該層與設備用法有關,與設備硬件無關。一般地,根據設備的用法,該層也可視作虛擬存儲系統、文件系統或通信系統的一部分。
設備硬件相關層將設備硬件無關層與設備硬件隔離開來。從設備硬件無關層的角度看,設備硬件相關層為其提供了一個相對簡潔的I/O功能接口;該接口屏蔽了設備硬件復雜的操作細節。從設備硬件相關層的內部看,該層主要實現設備驅動功能。毫無疑問,該層與設備硬件密切相關。
支持中斷的設備管理模型:
IOCS(I/O control system,I/O控制系統)。
2計算機I/O子系統的組成
2.1總線型I/O系統的結構
具有控制器的I/O系統結構:
傳統的設備 = 機械部分 + 電子部分;電子部分在系統的控制下驅動機械部分運轉,完成I/O操作。由于設備中電子部分比機械部分的速度快得多。為了降低硬件成本,將電子部分從設備中分離出來作為一個獨立的部件,這就是控制器。分離之后的設備僅由機械部分構成,一個控制器可與多個設備相連,交替地或分時地控制與其相連的設備。例如,磁盤控制器可以控制多個磁盤驅動器。
2.2設備的控制
設備的尋址與操作:從處理機的角度看,各種外部設備可以看作是由一組設備寄存器組成的。常見的設備寄存器有:操作方式寄存器、命令寄存器、數據寄存器、狀態寄存器等。為了使CPU能夠尋址這些設備寄存器,硬件平臺引入了I/O端口地址的概念。I/O端口地址的編址方式有兩種:(1)將設備寄存器與內存物理單元統一編址;(2)獨立于內存物理地址為設備寄存器編址。無論一個設備是否由多個控制器控制,或者一個控制器控制了多少個設備,每一個設備都能通過這些寄存器的地址唯一確定。 即插即用技術:
隨著外部設備種類增加,設備間極可能發生沖突。即設備使用的中斷號、DMA、內存地址、端口地址可能因相同或重疊而導致設備無法正常工作。手工調整這些設備的相關參數要求用戶具有較多的計算機硬件知識,并對系統配置的硬件有較全面的了解。 即插即用,顧名思義是指,插上了就可使用,不需要用戶進行其它設置。“即插即用”技術取消了跳線和軟件配置程序,當用戶插入一個“即插即用”適配卡或設備時,“即插即用”功能就可以自動進行檢測,配置相應的接口參數,并安裝相應的驅動程序。1.對已安裝硬件的自動和動態識別。包括系統初始安裝時、兩次系統啟動之間以及運行時發生的硬件事件(如筆記本的對接/分離以及設備的插入/拔出)的響應;2.配合操作系統分配/再分配硬件資源 。3.加載相應的驅動程序。當系統中加入新設備時,如果操作系統中沒有集成相應設備的驅動程序,則會要求用戶指定驅動程序的位置并完成驅動程序的安裝。
2.3設備驅動程序
設備驅動程序一般由設備制造商提供,不包含在操作系統中。但是,為了方便用戶,操作系統軟件包中通常會集成提供標準的、通用的或者流行的、常用設備廠商的設備驅動程序供用戶選擇。從系統分層的觀點來講,設備驅動程序可以是操作系統的一部分,也可以被認為是硬件設備的一部分。2.4 I/O控制方式
在早期的計算機系統中,由于沒有中斷裝置,處理機對于I/O設備的控制采取程序I/O方式,也稱忙等待方式或循環測試方式。對于讀操作,這種方式的基本工作過程為:①處理機向設備(或設備控制器)發出一條I/O指令啟動設備、輸入數據,同時將狀態寄存器中的“忙”標志置為1。
②處理機不斷地循環測試忙標志,直到忙標志變為0;
③處理機通過I/O讀指令將數據從數據寄存器中取出,送入內存中指定單元;
④若數據已讀完,則結束本過程,否則轉①,繼續讀下一個數據。
在程序I/O方式中,由于處理機的速度非常快,而設備的速度相對較慢,使得處理機的絕大部分時間都處于等待設備完成數據I/O的循環測試中,造成對CPU的極大浪費。
中斷I/O方式:
對于讀操作,中斷方式的基本工作過程為:
①處理機向設備(或設備控制器)發出一條I/O指令,啟動設備,輸入數據;
②處理機完成其它工作,設備準備數據;
③當設備準備好數據并將數據存入數據寄存器,向處理機發中斷信號,告之數據已準備好;
④處理機響應中斷請求,從數據寄存器中將數據取出,送入內存的指定單元;
⑤若數據已讀完,結束。否則,轉①,繼續。
中斷方式控制I/O的優點在于,設備與處理機并行,提高了處理機的利用率。性能優于程序控制I/O方式。
DMA方式:
中斷I/O比程序I/O方式高效,但以字/字節為傳輸單位。每完成一個字/字節的傳輸,設備均要向CPU請求一次中斷。對于塊設備而言,這種方式的效率還是顯得有些低下。因為,頻繁的、大量的中斷所累積的開銷很大。為了進一步減少處理機對I/O事務的干預,出現了 DMA(Direct Memory Access)直接存儲器訪問方式。 此時數據傳輸的基本單位是數據塊;數據直接從設備送入內存,或者直接從內存送入設備;僅在傳送一個或多個數據塊的開始和結束時,才需要處理機的干預。與中斷方式相比,DMA方式大大減少了數據I/O對處理機的占用,進一步提高了處理機的利用率,提高了處理機和I/O設備的并行操作能力。 I/O通道方式:
通道相當于一個功能單純的處理機,專門用于處理I/O操作。通道有自己的運控部件和指令系統,但沒有專門的內存,而是通過“周期竊用”方式與主機共享內存。通道通過執行通道程序來完成I/O操作。通道程序是通道指令的有序序列,它由系統中的輸入/輸出進程根據用戶進程的I/O要求來確定,可以是事先編制好的程序段,也可以動態產生。通道程序以及需要與設備交換的數據均放置在內存中。一條通道指令可以傳送一組數據,一個通道程序可以傳送多組數據。多組數據全部傳送完畢后(即一個通道程序執行完畢),才向處理機發出一次中斷。通道不僅可以傳送數據,更重要的是它還完成對設備的控制。在通道的協助下,主機只需發出一個啟動通道、執行通道程序的指令即可。主機僅與通道直接通信,不必考慮設備的具體控制以及如何完成數據傳送等問題,從而大大減輕了主機的負擔。
3設備分類
根據外部設備的用途不同,可以將其分為輸入/輸出型設備與存儲型設備;根據外設傳輸的基本數據單位不同,可以將設備分為塊型設備與字符型設備;按照資源管理的方式不同,可以將設備分為獨占型設備和共享型設備。3.1輸入/輸出型 VS 存儲型設備
輸入/輸出型設備:鍵盤、鼠標、顯示器、讀卡機、掃描儀、打印機、繪圖儀、數碼相機等。存儲型設備:磁帶機、磁鼓機、磁盤機等。可用作輸入,也可以用作輸出。主要用于長期保存信息,但需要管理其上的存儲空間。可以在存儲設備上可以建立文件系統,有組織、有結構地長期存儲信息。?
3.2塊型設備 VS 字符型設備
塊型設備通常就是存儲型設備。這類設備由若干長度相同的塊構成。塊的長度通常為2n個字節,如256B、512B、1024B等。對這類設備來說,塊是存儲分配的基本單位,也是I/O傳輸的基本單位。字符型設備通常就是輸入/輸出型設備。這類設備I/O傳輸的基本單位是字節。3.3獨占型 VS 共享型設備
獨占型設備包括所有的字符型設備及磁帶機。任意時間段內最多只能被一個進程占用。使用時,進程首先向系統申請,可能進入阻塞狀態。當設備可用時,喚醒一個等待進程。使用完畢以后,進程必須釋放設備。共享型設備包括除磁帶機以外的所有塊型設備。I/O傳輸單位:塊。宏觀上,一個共享型設備可以被多個進程同時占用;微觀上,多個進程交替使用同一設備。進程使用這類設備時,無須申請或釋放設備,也不存在某個進程占用設備的問題。?
4.設備分配?
分配:設備、控制器和通道。需要記錄與他們相關的信息。包括:資源標識、物理連接情況、占有進程、等待進程等。具體實現時,可以將其分為設備控制塊、控制器控制塊和通道控制塊。這些控制塊中包含的信息在不同的系統中會有所不同。4.1設備無關性?
為了實現設備的無關性,操作系統要求進程申請設備時,應當指明所需設備的類別(或者邏輯設備名),不能指定某一設備的具體編號。系統根據進程的請求以及資源分配情況在相應類別的設備中選擇一個空閑的物理設備,并將其分配給申請者。?其優點主要表現在: 提高設備的利用率。從根本上講,申請者只關心使用設備的結果,不在乎到底使用哪一個設備。假設申請者指定具體設備,被指定的設備可能正在被使用,因而申請無法滿足。而此時,其他同類設備可能空閑。這將造成資源的浪費和進程的不必要等待;程序與設備無關。假設申請者指定具體設備,而被指定的設備已損壞或未聯機,則要么程序無法正常工作,要么修改程序。
4.2系統設備表SDT
根據上述實現要求,系統通常將相同類型設備的UCB記錄在一張表中,稱作UCB表。將邏輯設備名、設備數、設備等待隊列以及UCB表的起始地址登記在另一個表中,該表通常稱作系統設備表(SDT) 。
4.3設備分配算法
先來先服務—根據進程對某設備提出請求的先后次序,將這些進程排成一個設備請求隊列。設備分配程序總是把設備分配給隊首的進程。優先級高者優先服務—根據進程優先級的高低,將優先級高的進程排在設備等待隊列的前面。對于優先級相同的進程,則按先來先服務的原則進行排隊,設備分配程序總是把設備分配給排在隊首的進程。
獨占型設備的分配 :
進程使用獨占設備的過程:申請、使用、釋放。1 進程申請設備2 系統分配設備3 進程發送使用命令4 系統將轉到設備驅動模塊完成一次I/O傳輸5 進程釋放設備6 系統回收設備。當進程的一次設備申請成功,直到發出釋放命令期間,一直獨占設備。? 共享型設備的分配 :
進程使用共享型設備不需要申請,當然也就不存在占用或釋放設備的問題。但是,I/O期間只能有一個進程使用設備。因此,進程使用共享型設備之前,有一個隱含的申請命令;使用完畢以后,有一個隱含的釋放命令,以實現一次基本I/O傳輸期間的排它性,保證操作的正常進行。使用共享型設備的過程中,進程完全有可能進入阻塞等待狀態。?
總結
以上是生活随笔為你收集整理的[OS复习]设备管理1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 克制懒惰之飞鸽传书版
- 下一篇: [OS复习]设备管理2