操作系統(tǒng)教程_第1頁
操作系統(tǒng)教程_第2頁
操作系統(tǒng)教程_第3頁
操作系統(tǒng)教程_第4頁
操作系統(tǒng)教程_第5頁
已閱讀5頁,還剩90頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、操作系統(tǒng)Operating Systems 操作系統(tǒng)課程組南京郵電大學WINDOWSUNIXLINUXOS2VxWorksMac OS教材:操作系統(tǒng)教程,人民郵電出版社 ,2009年出版第6章 設備管理設備管理是指操作系統(tǒng)對計算機系統(tǒng)中除CPU和內存以外的設備的管理。設備管理的主要任務是完成用戶提出的輸入輸出請求,提高輸入輸出的速率,以及改善輸入輸出設備的利用率。第6章 設備管理設備管理的主要功能有:緩沖區(qū)管理、設備分配、設備處理、虛擬設備以及設備的獨立性。設備不但種類繁多,而且它們的特性和操作方式相差很大,因此,設備管理是操作系統(tǒng)資源管理中最為復雜、最多樣化,且與硬件密切相關的部分。第6章

2、設備管理 6.1 設備管理的概念6.2 I/O控制方式6.3 緩沖技術6.4 驅動調度技術6.5 設備分配6.6 虛擬設備6.7 Linux設備管理6.1 設備管理的概念6.1.1 設備的分類6.1.2 設備管理的功能和任務6.1.1 設備的分類1按傳輸速率分類(1)低速設備低速設備是指每秒傳輸幾B幾百B的一類設備。這類設備中典型的如鍵盤、鼠標器、語音的輸入和輸出等設備。(2)中速設備中速設備是指每秒傳輸幾千B數(shù)十千B的一類設備。這類設備中典型的如行式打印機、激光打印機等設備。(3)高速設備高速設備是指每秒數(shù)傳輸幾百KB數(shù)十MB的設備。這類設備中典型的如磁帶機、磁盤機、光盤機等。2按信息交換的

3、單位分類(1)塊設備塊設備用于存儲信息。由于信息的存取是以數(shù)據(jù)塊為單位,故稱塊設備,它屬于有結構設備。塊設備的基本特征是可尋址,可隨機地讀/寫任意一塊;塊設備的另一特征是其輸入/輸出(I/O)采用DMA方式。典型的塊設備是磁盤,每個盤塊的大小為512B4KB。(2)字符設備字符設備用于數(shù)據(jù)傳輸?shù)幕締挝皇亲址?,它屬于無結構設備。其基本特征是不可尋址,即不能指定輸入時的源地址及輸出時的目標地址。此外,字符設備在I/O時常采用中斷驅動方式。字符設備的種類較多,如交互式終端、打印機等。3從資源分配角度分類(1)獨占設備獨占設備是指在一段時間內只允許一個用戶(進程)使用的設備。系統(tǒng)一旦把該設備分配給某

4、進程后,便讓它獨占使用,直至用完釋放。應當注意,獨占設備的分配可能會引起進程死鎖。(2)共享設備共享設備是指在一段時間內允許多個進程同時訪問的設備。典型的共享設備是磁盤。共享設備不僅能獲得良好的設備利用率,而且是實現(xiàn)文件和數(shù)據(jù)共享的物質基礎。(3)虛擬設備虛擬設備是指通過某種技術將一臺獨占設備變換為能供若干個用戶共享的設備,因此可將它同時分配給多個用戶,從而提高設備的利用率。6.1.2 設備管理的功能和任務為此,設備管理通常應具有以下功能。 提高系統(tǒng)的利用率的關鍵之一是實現(xiàn)設備的并行性。 為了提高設備的利用率,在進行設備分配時系統(tǒng)通常采用動態(tài)分配方式。對于獨占設備往往采用虛擬技術將其改造為共享

5、設備,從而對該設備可以進行動態(tài)分配,也不會導致死鎖。 設備的速率相對CPU而言要慢得多。為了平滑兩者之間的差異,提高系統(tǒng)的效率,在設備管理中采用多種緩沖技術。 設備管理還要方便用戶的使用。設備管理通過屏蔽設備的物理特性,從而實現(xiàn)設備的獨立性。6.2 I/O控制方式6.2.1 程序直接查詢控制方式6.2.2 中斷方式6.2.3 DMA方式6.2.4 通道方式 I/O控制方式發(fā)展過程中貫穿著這樣的宗旨,即盡量減少主機對外設的干預,把主機從繁雜的I/O控制中解脫出來,以便有更多的時間進行輸出處理。 6.2.1 程序直接查詢控制方式程序直接查詢方式又稱程序直接控制方式或者詢問方式。在這種方式下,用戶進

6、程直接控制主機和外圍設備之間的數(shù)據(jù)傳輸。用戶進程與外圍設備讀取數(shù)據(jù)時,主機向設備控制器發(fā)出讀指令后進入測試等待狀態(tài)。在等待時間內,主機重復查詢外設的準備狀態(tài)直至外設準備就緒。外設就緒,數(shù)據(jù)傳送開始,主機從設備控制器讀取一個字,再向內存寫一個字。如果傳送還未結束,再次向設備控制器發(fā)出讀指令,直到全部數(shù)據(jù)傳輸完成再返回現(xiàn)行程序執(zhí)行。 程序查詢方式中,一旦主機啟動外設,便不斷查詢外設的準備情況,終止了原程序的執(zhí)行,浪費了寶貴的主機時間;另一方面,外設準備就緒后,主機參與數(shù)據(jù)的傳送工作,此時主機也不能執(zhí)行原程序??梢娺@種方式中,主機和外設串行工作,使主機不能充分發(fā)揮效率。6.2.2 中斷方式中斷機構引

7、入后,外圍設備有了反映其狀態(tài)的能力,僅當操作正?;虍惓=Y束時才中斷CPU。實現(xiàn)了一定程度的并行操作,這叫中斷方式。中斷方式是程序查詢方式的改進。在主機啟動外設后,不必查詢外設是否就緒,而是繼續(xù)執(zhí)行現(xiàn)行程序,對設備是否就緒不加過問。此時主機和外設并行操作。外設準備完畢,將數(shù)據(jù)傳送至設備控制器的寄存器后,外設向主機發(fā)出中斷請求,主機從設備控制中將數(shù)據(jù)讀入內存指定單元。 在中斷方式中,外設輸入每個數(shù)據(jù)的過程中,無需主機的干預,因而可使得主機與外設并行工作。僅當輸完一個數(shù)據(jù)時,才需要主機花費時間中斷處理。中斷方式在一定程度上提高了主機和外設的并行程度,提高計算機系統(tǒng)資源的利用率。 6.2.3 DMA方

8、式在DMA方式中,內存和外設之間有一條數(shù)據(jù)通路,在內存和外設之間成塊傳送數(shù)據(jù)過程中,由DMA控制器取代主機來控制數(shù)據(jù)傳輸,直接執(zhí)行到數(shù)傳輸完成。該方式的特點是: 數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊,即在主機與外設之間傳送一個數(shù)據(jù)塊; 傳送的數(shù)據(jù)直接從外設到內存,或者相反; 僅在傳送一個數(shù)據(jù)塊或多個數(shù)據(jù)塊的開始和結束時才需要主機的干預。DMA的組成寄存器 命令/狀態(tài)寄存器(Command Register,CR)。用于接收從CPU發(fā)出來的I/O命令或有關控制信息,或設備的狀態(tài)。 內存地址寄存器(Memory Address Register,MAR)。在輸入時,它存放把數(shù)據(jù)從設備傳送到內存的起始目標地址

9、;在輸出時,它存放由內存到設備的內存源地址。 數(shù)據(jù)寄存器(Data Register,DR)。用于暫存從設備到內存,或從內存到設備的數(shù)據(jù)。圖6-4 DMA方式 數(shù)據(jù)計數(shù)器(Data Counter,DC)。存放本次CPU要讀寫的字節(jié)數(shù)。 DMA的工作過程圖6-4 DMA方式 6.2.4 通道方式通道又稱輸入輸出處理器,是獨立于CPU的專門實現(xiàn)輸入輸出工作的處理機。通道直至控制設備和內存之間進行數(shù)據(jù)傳送,把CPU從瑣碎的輸入輸出操作中解放出來。 通道是一種特殊的處理機。通道與一般處理機的區(qū)別主要表現(xiàn)在以下兩個方面。 通道指令單一。通道硬件比較簡單,其所能執(zhí)行的指令主要是與輸入輸出操作有關的指令。

10、 通道沒有自己的內存。通道所執(zhí)行的通道程序是放在計算機內存中的,也就是說通道與CPU共享系統(tǒng)的內存。 通道按信息交換方式可分為以下三種類型 字節(jié)多路通道 數(shù)組選擇通道 數(shù)組多路通道通道指令和通道程序 通道方式通過執(zhí)行通道程序,與設備控制器共同實現(xiàn)對設備進行控制。通道程序由若干的通道命令組成。 通道指令通常由以下信息組成。 命令碼。命令碼指出通道命令的操作,常見的操作有讀、寫、控制、通道轉移等。 內存地址。用于標明交換數(shù)據(jù)在內存中存放的位置。 計數(shù)。用于表示本條指令所要交換數(shù)據(jù)的字節(jié)數(shù)。 通道程序結束位。用于表示該指令是否是通道程序的最后一條指令。 記錄結束標志位。用于表示本指令與下一通道指令處

11、理的數(shù)據(jù)是否是同一個記錄。6.3 緩沖技術為了改善CPU與外圍設備之間速度不匹配的矛盾,減少I/O對CPU的中斷次數(shù)和放寬對CPU中斷響應時間的要求,提高CPU和I/O設備的并行性,在操作系統(tǒng)中普遍采用了緩沖技術。緩沖技術的基本思想是:當一個進程輸出數(shù)據(jù)時,先向系統(tǒng)申請一塊內存作為輸出緩沖區(qū);然后,將輸出數(shù)據(jù)高速輸出到緩沖區(qū);不斷把數(shù)據(jù)填到緩沖區(qū),直到緩沖區(qū)被裝滿為止;此后,進程可以繼續(xù)它的計算,同時,系統(tǒng)將緩沖區(qū)內容寫到I/O設備上。當一個進程執(zhí)行讀操作輸入數(shù)據(jù)時,過程與此類似。6.3 緩沖技術6.3.1 單緩沖6.3.2 雙緩沖6.3.3 循環(huán)緩沖6.3.4 緩沖池6.3.1 單緩沖對于塊

12、設備而言,假定從磁盤把一塊數(shù)據(jù)輸入到緩沖的時間為T,操作系統(tǒng)將該緩沖區(qū)中的數(shù)據(jù)傳送到用戶區(qū)的時間為M,而CPU對這一塊數(shù)據(jù)進行計算的時間為C,如圖6-5所示。如果系統(tǒng)不采用緩沖技術,數(shù)據(jù)直接從磁盤到用戶區(qū),每塊數(shù)據(jù)的處理時間為T+C。如果采用了單緩沖技術,每塊數(shù)據(jù)的處理時間為max(C, T)+M。通常來說M要遠遠小于C或者T,因此采用緩沖技術,輸入的效率提高了很多。6.3.2 雙緩沖為了加快輸入輸出速度和提高設備利用率,又引入了雙緩沖,也稱為緩沖對換。 在雙緩沖時,系統(tǒng)處理一塊數(shù)據(jù)的時間可粗略地認為是max(C,T),如果CT,可使CPU不必等待設備輸入。圖6-6 雙緩沖工作示意圖 6.3.

13、3 循環(huán)緩沖1循環(huán)緩沖的組成 多個緩沖區(qū)。在循環(huán)緩沖中包含了多個緩沖區(qū),每個緩沖區(qū)的大小相同。緩沖區(qū)可分為三種類型:空緩沖區(qū)R;已裝滿數(shù)據(jù)的緩沖區(qū)G;計算進程正在使用的緩沖區(qū)C。 多個指針。對用于輸入的多緩沖,可設置這樣三個指針。Nextg指示計算進程下一個可用的緩沖區(qū)G;Nexti指示輸入進程下次可用的空緩沖區(qū)R;Current指示計算進程正在使用的緩沖區(qū)。 2循環(huán)緩沖的使用 GetBuffer過程。對于計算進程而言,調用GetBuffer過程,通過Nextg獲得要進行計算的緩沖區(qū),相應地將該緩沖區(qū)改為C,將Current指向該緩沖區(qū),Nextg指向下一個G緩沖區(qū)。對于輸入進程而言,調用Ge

14、tBuffer過程,通過Nexti獲取可用的緩沖區(qū),相應地將該緩沖區(qū)改為C,將Current指向該緩沖區(qū),Nexti指向下一個R緩沖區(qū)。 ReleaseBuffer過程。當計算進程提取完畢后,當前的緩沖區(qū)空出來了,調用Release過程,將C改為R。類似輸入進程輸入完畢,調用Release過程,將該緩沖區(qū)改為G。3進程同步循環(huán)緩沖機制中,指針Nexti和Nextg不斷地順時針運行,這樣可能會出現(xiàn)以下兩種情況。 Nexti指針追上Nextg指針。意味著輸入進程輸入數(shù)據(jù)的速度大于計算進程處理數(shù)據(jù)的速度,已把全部可用的空緩沖裝滿,再無緩沖區(qū)可用。此時,輸入進程應該阻塞,直到有計算進程計算完畢,將某個

15、緩沖區(qū)釋放,輸入進程才被喚醒。 Nextg指針追上Nexti指針。意味著計算進程處理數(shù)據(jù)的速度大于輸入進程輸入數(shù)據(jù)的速度,已把所有輸入數(shù)據(jù)的緩沖區(qū)處理完畢,再無有數(shù)據(jù)的緩沖區(qū)供計算進程使用。此時,計算進程應該阻塞,直到有輸入進程輸入數(shù)據(jù),將某個緩沖區(qū)釋放,計算進程才被喚醒。6.3.4 緩沖池1緩沖池的組成緩沖池中的緩沖區(qū)一般包含三種類型的緩沖區(qū):空閑緩沖區(qū)、裝滿輸入數(shù)據(jù)的緩沖區(qū)和裝滿輸出數(shù)據(jù)的緩沖區(qū)。為了管理方便,系統(tǒng)將同一類型的緩沖區(qū)連成一個隊列,形成以下3個隊列。 空閑緩沖區(qū)隊列emq:由空閑緩沖區(qū)所連成的隊列。其隊首指針F(emq)和隊尾指針L(emq)分別指向該隊列的首尾緩沖區(qū)。 輸入

16、隊列inq:這是由裝滿輸入數(shù)據(jù)的緩沖區(qū)所連成的隊列。其隊首指針F(inq)和隊尾指針L(inq)分別指向該隊列的首、尾緩沖區(qū)。 輸出隊列outq:這是由裝滿輸出數(shù)據(jù)的緩沖區(qū)所連成的隊列。其隊首指針F(outq)和隊尾指針L(outq)分別指向該隊列的首、尾緩沖區(qū)。還應具有4種工作緩沖區(qū)。 用于收容輸入數(shù)據(jù)的工作緩沖區(qū)(hin)。 用于提取輸入數(shù)據(jù)的工作緩沖區(qū)(sin)。 用于收容輸出數(shù)據(jù)的工作緩沖區(qū)(hout)。 用于提取輸出數(shù)據(jù)的工作緩沖區(qū)(sout)。2緩沖池管理的基本操作Getbuf過程和Putbuf過程緩沖池中兩個基本操作。 Getbuf(type):用于從type所指定的隊列的隊首摘

17、下一個緩沖區(qū)。 Putbuf(type,number):用于將由參數(shù)number所指示的緩沖區(qū)掛在type隊列上。3緩沖池的工作方式(1)收容輸入工作方式(2)提取輸入工作方式(3)收容輸出工作方式(4)提取輸出工作方式6.4 驅動調度技術6.4.1 磁盤的物理結構6.4.2 磁盤調度6.4.3 提高磁盤I/O速度的一些方法6.4.1 磁盤的物理結構磁盤是一種直接存取存儲設備,又叫隨機存取存儲設備。它的每個物理有確定的位置和唯一的地址,存取任何一個物理塊所需的時間幾乎不依賴于此信息的位置。 每個盤面有一個讀寫磁頭,所有的讀寫磁頭都固定在唯一的移動臂上同時移動。在一個盤面上的讀寫磁頭的軌跡稱磁道

18、,在磁頭位置下的所有磁道組成地圓柱體稱柱面,一個磁道又可被劃分成一個或多個物理塊。 文件的信息通常不是記錄在同一盤面的各個磁道上,而是記錄在同一柱面的不同磁道上,這樣可使移動臂的移動次數(shù)減少,縮短存取信息的時間。為了訪問磁盤上的一個物理記錄,必須給出3個參數(shù):柱面號、磁頭號和塊號。磁盤的訪問時間(1)尋道時間尋道時間(Ts)是指把磁臂(磁頭)移動到指定磁道上所經歷的時間。該時間是啟動磁臂的時間s與磁頭移動n條磁道所花費的時間之和,即Ts=mn +s其中,m是一常數(shù),與磁盤驅動器的速度有關,對一般磁盤,m=0.2;對高速磁盤,m0.1,磁臂的啟動時間約為2ms。這樣,對一般的溫盤,其尋道時間將隨

19、尋道距離的增加而增大,大體上是530ms。數(shù)據(jù)所經歷的時間。Tt的大小與每次所讀/寫的字節(jié)數(shù)b和旋轉速度有關: (2)旋轉延遲時間旋轉延遲時間(T)是指定扇區(qū)移動到磁頭下面所經歷的時間。對于硬盤,典型的旋轉速度大多為5400r/min,每轉需時11.1 ms,平均旋轉延遲時間T為5.55ms;對于軟盤,其旋轉速度為300r/min或600r/min,這樣,平均T為50100ms。 (3)傳輸時間傳輸時間(Tt)是指把數(shù)據(jù)從磁盤讀出或向磁盤寫入可將訪問時間Ta表示為:6.4.2 磁盤調度磁盤是可供多個進程共享的設備,當有多個進程都要求訪問磁盤時,應采用一種最佳的調度算法,以使各進程對磁盤的平均訪

20、問時間最小。由于在磁盤訪問的時間中,主要是尋道時間,因此,磁盤調度的目標,是使磁盤的平均尋道時間最少。目前常用的磁盤調度算法有:先來先服務、最短尋道時間優(yōu)先、掃描算法等。1先來先服務先來先服務(First-Come,F(xiàn)irst Served,F(xiàn)CFS)是一種最簡單的磁盤調度算法。它根據(jù)進程請求訪問磁盤的先后次序進行調度。此算法的優(yōu)點是公平、簡單,且每個進程的請求都能依次得到處理,不會出現(xiàn)某一進程的請求長期得不到滿足的情況。但此算法由于未對尋道進行優(yōu)化,致使平均尋道時間可能較長。如圖6-10所示給出了有9個進程先后提出磁盤I/O請求時,按FCFS算法進行調度的情況。2最短尋道時間優(yōu)先 最短尋道時

21、間優(yōu)先(Shortest Seek Time First,SSTF)算法考慮了各個請求之間的區(qū)別,總是先執(zhí)行查找時間最短的那個磁盤請求。從而,較“先來先服務”算法有較好的尋道性能。圖6-11所示給出了按SSTF算法進行調度時,各進程被調度的次序和每次磁頭移動的距離,以及9次磁頭平均移動距離。與先來先服務算法相比,最短尋道時間優(yōu)先算法節(jié)省了幾乎一半的移臂時間。但是本算法存在“饑餓”現(xiàn)象,隨著源源不斷靠近當前磁頭位置讀寫請求的到來,使早來的但距離當前磁頭位置遠的讀寫請求服務被無限期推遲。3掃描算法掃描算法(SCAN)是簡單而實用的一種算法。該算法每次總是選擇沿臂的移動方向最近的那個柱面。如果沿這個

22、方向沒有訪問的請求時,就改變臂的移動方向,并使移動頻率極小化,然后,處理所遇到的最近的I/O請求,這非常類似于電梯的調度規(guī)則。每當要求訪問磁盤時,操作系統(tǒng)查看磁盤機是否空閑。如果空閑就立即移臂,然后,將當前移動方向和本次停留的位置都登記下來。如果不空,就讓請求者等待并把它要求訪問的位置登記下來,按照既定的調度算法對全體等待者進行尋查定序,下次按照優(yōu)化的次序執(zhí)行。最短尋道時間優(yōu)先算法雖有較好的尋道性能,但可能會造成進程“饑餓”狀態(tài),而掃描算法克服了這一缺點。掃描算法偏愛那些最接近里面或靠外的請求,對最近掃描跨過去的區(qū)域響應會較慢。如圖6-12所示給出了按SCAN算法對9個進程進行調度的次序和每次

23、磁頭移動的距離。4循環(huán)掃描算法掃描算法雖能杜絕饑餓,但性能尚待改進,在磁盤請求對柱面的分布是均勻的情況下,當磁頭到頭并轉向時,靠近磁頭一端的請求特少,有許多請求集中分布在遠離磁頭的一端,而這些請求的等待時間會較長。循環(huán)掃描(CSCAN)算法能克服這個缺點。這是為適應不斷有大量柱面均勻分布的存取請求進入系統(tǒng)的情況而設計的一種掃描方式。移動臂總是從0號柱面至最大號柱面順序掃描,然后,直接返回0號柱面重復進行,歸途中不再服務,構成了一個循環(huán),這就減少了處理新來請求的最大延遲。CSCAN算法規(guī)定磁頭單向移動。如圖6-13所示給出了CSCAN算法對9個進程進行調度的次序及每次磁頭移動的距離。 5分步掃描

24、(N-STEP-SCAN)在SSTF、SCAN及CSCAN幾種調度算法中,都可能出現(xiàn)磁臂停留在某處不動的情況。例如,有一個或幾個進程對某一磁道有較高的訪問頻率,即這個(些)進程反復請求對某一磁道的I/O操作,從而壟斷了整個磁盤設備。我們把這一現(xiàn)象稱為“磁臂粘著”。N步SCAN算法是將磁盤請求隊列分成若干個長度為N的子隊列,磁盤調度將按FCFS算法依次處理這些子隊列。而每處理一個隊列時又是按SCAN算法,對一個隊列處理完后,再處理其他隊列。 當正在處理某子隊列時,如果又出現(xiàn)新的磁盤I/O請求,便將新請求進程放入其他隊列,這樣就可避免出現(xiàn)粘著現(xiàn)象。當N值取得很大時,會使N步掃描法的性能接近于SCA

25、N算法的性能;當N=1時,N步SCAN算法便蛻化為FCFS算法。(2)FSCAN算法FSCAN算法實質上是N步SCAN算法的簡化, 即FSCAN只將磁盤請求隊列分成兩個子隊列。一個是由當前所有請求磁盤I/O的進程形成的隊列,由磁盤調度按SCAN算法進行處理。在掃描期間,將新出現(xiàn)的所有請求磁盤I/O的進程, 放入另一個等待處理的請求隊列。這樣,所有的新請求都將被推遲到下一次掃描時處理。6.4.3 提高磁盤I/O速度的一些方法1提前讀可在讀當前盤塊的同時,提前把下一個盤塊數(shù)據(jù)也讀入磁盤緩沖區(qū)。這樣一來,當下次要讀盤塊中的那些數(shù)據(jù)時,由于已經提前把它們讀入了緩沖區(qū),便可直接使用數(shù)據(jù),而不必再啟動磁盤

26、I/O,從而,減少了讀數(shù)據(jù)的時間,也就相當于提高了磁盤I/O速度?!疤崆白x”功能已被許多操作系統(tǒng)廣泛采用。2延遲寫在執(zhí)行寫操作時,磁盤緩沖區(qū)中的數(shù)據(jù)本來應該立即寫回磁盤,但考慮到該緩沖區(qū)中的數(shù)據(jù)不久之后再次被輸出進程或其他進程訪問,因此,并不馬上把緩沖區(qū)中數(shù)據(jù)寫盤,而是把它掛在空閑緩沖區(qū)隊列的末尾。隨著空閑緩沖區(qū)的使用,存有輸出數(shù)據(jù)的緩沖區(qū)也不停地向隊列頭移動,直至移動到空閑緩沖區(qū)隊列之首。當再有進程申請緩沖區(qū),且分到了該緩沖區(qū)時,才把其中的數(shù)據(jù)寫到磁盤上,于是這個緩沖區(qū)可作為空閑緩沖區(qū)分配了。只要存有輸出數(shù)據(jù)的緩沖區(qū)還在隊列中,任何訪問該數(shù)據(jù)的進程,可直接從中讀出數(shù)據(jù),不必再去訪問磁盤。這樣

27、做,可以減少磁盤的I/O時間,相當于提高了I/O速度。3虛擬盤虛擬盤是指用內存空間去仿真磁盤,又叫RAM盤。該盤的設備驅動程序可以接受所有標準的磁盤操作,但這些操作的執(zhí)行,不是在磁盤上而是在內存中。操作過程對用戶是透明的,即用戶并不會發(fā)現(xiàn)這與真正的磁盤操作有什么不同,而僅僅是更快一些。虛擬盤是易失性存儲器,一旦系統(tǒng)或電源發(fā)生故障,或重新啟動系統(tǒng)時,原來保存在虛擬盤中的數(shù)據(jù)會丟失。因此,該盤常用于存放臨時文件。虛擬盤與磁盤高速緩存的主要區(qū)別在于:前者內容完全由用戶控制,而后者的內容是由操作系統(tǒng)控制的。6.5 設備分配6.5.1 設備分配中的數(shù)據(jù)結構6.5.2 設備分配過程6.5.3 設備分配應考

28、慮的因素6.5.4 設備獨立性6.5.1 設備分配中的數(shù)據(jù)結構在進行設備分配時,通常都需要借助于一些表格,在表格中記錄了相應設備或設備控制器的狀態(tài)及對設備或設備控制器進行控制所需的信息。在進行設備分配時所需的數(shù)據(jù)結構有設備控制表、系統(tǒng)設備表、控制器控制表、通道控制表等。 1設備控制表系統(tǒng)為每一個I/O設備都配置了一張用于記錄本設備情況的設備控制表(Device Control Table,DCT)。DCT主要包括以下內容。 設備標識符。 設備類型。 設備隊列隊首指針。 設備狀態(tài)。 與設備連接的控制器表指針。 重復執(zhí)行次數(shù)。2系統(tǒng)設備表整個系統(tǒng)中有一張系統(tǒng)設備表(System Device Ta

29、ble,SDT),它記錄已被連接到系統(tǒng)中的所有物理設備的情況,并為每個物理設備設一表目項。SDT的每個表目項包括的內容如下。 設備類型和設備標識符。 DCT指針。該指針指向有關設備的設備控制表。 正在使用該設備的進程標識。3控制器控制表系統(tǒng)為每一個控制器都配置了一張記錄本控制器情況的控制器控制表(COntroler Control Table,COCT)。4通道控制表每個通道都有一張通道控制表(CHannel Control Table,CHCT)。該表只有在通道控制方式的系統(tǒng)中存在。CHCT包括通道標識符、通道忙/閑標識、等待獲得該通道的進程等待隊列的隊首指針與隊尾指針等。各種數(shù)據(jù)結構的關系

30、 6.5.2 設備分配過程(1)分配設備(2)分配控制器(3)分配通道6.5.3 設備分配應考慮的因素系統(tǒng)在進行設備分配時,應考慮這樣幾個因素:設備的固有屬性;設備分配算法;設備分配的安全性;設備獨立性。 1設備的固有屬性 獨占設備。指定設備在一段時間內,只允許一個進程獨占,即“臨界資源”。對獨占設備采用獨享分配策略,即在將一個設備分配給某進程后,便由其一直獨占,直至該進程完成或釋放該設備,系統(tǒng)才能再將該設備分配給其他進程使用。 共享設備。指允許多個進程同時共享的設備。對于共享設備,可將它同時分配給多個進程使用,但這些進程設備的訪問需進行合理的調度。 虛擬設備。可虛擬設備是指一臺物理設備在采用

31、虛擬技術后,可變成多臺邏輯上的所謂虛擬設備。因此虛擬設備已屬可共享設備,可將它分配給多個進程使用,并對這些進程訪問該設備的先后次序進行控制。 2設備分配算法(1)先來先服務當有多個進程對同一設備提出I/O請求時,該算法是根據(jù)進程對某設備提出請求的先后次序,將這些進程排成一個設備請求隊列,設備分配程序總是把設備首先分配給隊首進程。(2)優(yōu)先級高者優(yōu)先在進程調度中的這種策略,是優(yōu)先權高的進程優(yōu)先獲得處理機。如果對這種高優(yōu)先權進程所提出的I/O請求也賦予高優(yōu)先權,顯然有助于這種進程盡快完成。在利用該算法形成設備隊列時。將優(yōu)先級高的進程排在設備隊列前面,而對于優(yōu)先級相同的I/O請求,則按先來先服務原則

32、排隊。 3設備分配中的安全性(1)安全分配方式這種分配方式中,每當進程發(fā)出 I/O請求后,便進入阻塞狀態(tài),直到其I/O操作完成時才被喚醒。進程獲得某種資源后即進入阻塞狀態(tài),使得該進程不再請求其他資源。這種分配方式已經摒棄造成死鎖的4個必要條件之一的“請求和保持”條件,因而分配是安全的。(2)不安全分配方式當進程發(fā)出 I/O請求后仍繼續(xù)運行,需要時可發(fā)出其他I/O請求。因此,一個進程可同時操作多個設備,從而使進程推進迅速,其缺點是分配不安全,因為它可能具備“請求和保持”條件,從而可能造成死鎖。因此,在設備分配程序中增加一個功能,以用于對本次設備分配是否會發(fā)生死鎖進程檢測,僅當檢測的結果是安全的,

33、才進行分配 6.5.4 設備獨立性1設備獨立性的概念 設備獨立性是I/O軟件的一個關鍵性概念,其基本含義是用戶程序獨立于具體使用的物理設備,換言之,進程只需用邏輯設備名稱請求使用某類設備,當系統(tǒng)中有多臺該類設備時,系統(tǒng)可將其中任一臺分配給請求進程,而無需僅局限于某一臺指定設備。 設備獨立性有以下的好處(1)設備分配時的靈活性(2)易于實現(xiàn)I/O重定向2設備獨立性軟件(1)執(zhí)行所有設備的公有操作(2)向用戶層(或文件層)軟件提供統(tǒng)一接口3邏輯設備名到物理設備名映射的實現(xiàn)(1)邏輯設備表邏輯設備號物理設備號驅動程序地址1720420(H)2720420(H)3220E00(H)441FC10(H)

34、6120D02(H)7720420(H)(2)LUT的設置問題LUT的設置可采取兩種方式:第一種設置方式是整個系統(tǒng)設置一張LUT。不允許在LUT中具有相同的邏輯設備名,這就是要求所有用戶不使用相同的邏輯設備名。第二種方式是為每個用戶設置一張LUT。 由于多用戶系統(tǒng)中,都配置了系統(tǒng)設備表,故此時的LUT可采用如下所示的格式。 邏輯設備號系統(tǒng)設備表指針132532776.6 虛擬設備6.6.1 SPOOLing系統(tǒng)的組成6.6.2 SPOOLing系統(tǒng)的工作原理6.6.3 SPOOLing系統(tǒng)的應用6.6.4 SPOOLing技術的特點 6.6.1 SPOOLing系統(tǒng)的組成(1)輸入井和輸出井輸

35、入井和輸出是在磁盤上開辟的兩個大緩沖區(qū)。輸入井是模擬脫機輸入時的磁盤,用于收容I/O設備輸入的數(shù)據(jù)。輸出井是模擬脫機輸出時的磁盤,用于收容用戶程序的輸出數(shù)據(jù)。(2)輸入緩沖區(qū)和輸出緩沖區(qū)在內存中要開辟兩個緩沖區(qū),其中輸入緩沖區(qū)用于暫存由輸入設備送來的數(shù)據(jù),以后再傳送到輸入井;輸出緩沖區(qū)用于暫存從輸出井送來的數(shù)據(jù),以后再傳送給輸出設備。(3)輸入進程和輸出進程輸入進程(SPi)模擬脫機輸入時的外圍控制機,將用戶要求的數(shù)據(jù)從輸入機通過輸入緩沖區(qū)再送到輸入井。當CPU需要輸入數(shù)據(jù)時,直接從輸入井讀入內存。輸出進程(SPo)模擬脫機輸出時的外圍控制機,把用戶要求輸出的數(shù)據(jù)先從內存送到輸出井,待輸出設備

36、空閑時,再將輸出井中的數(shù)據(jù)經過輸出緩沖區(qū)送到輸出設備上。 6.6.2 SPOOLing系統(tǒng)的工作原理一旦有輸入請求消息,SPOOLing輸入進程立即得到執(zhí)行,把裝在輸入設備上的作業(yè)輸入到硬盤的輸入井中。輸入井是一組硬盤扇區(qū)。這就是說,作業(yè)調度程序不是從輸入設備上裝入作業(yè),而是直接從輸入井中把選中的作業(yè)裝入內存,使主機等待作業(yè)輸入的時間大為縮短。同樣對作業(yè)的輸出而言,寫到輸出井要比寫到輸出設備快得多。即使作業(yè)的JCB已注銷,SPOOLing輸出進程仍可以從容地把輸出井中沒有輸出完的數(shù)據(jù)繼續(xù)輸出到輸出設備上。由此可見,引入SPOOLing技術,把一個共享的硬盤改造成若干臺輸入設備(對作業(yè)調度程序而

37、言)和若干臺輸出設備(對各作業(yè)而言)。這樣的設備稱為虛擬設備,它們的物理實體是輸入(出)井。這樣改造后,保持了物理輸入(出)設備繁忙地與CPU并行地工作,提高了整個系統(tǒng)的效率。6.6.3 SPOOLing系統(tǒng)的應用當用戶進程請求輸出打印時,SPOOLing系統(tǒng)同意為它打印輸出,但并不真正把打印機分配給該用戶進程,而只是為它做兩件事:由輸出進程在輸出井中為之申請一空閑緩沖區(qū),并將要打印的數(shù)據(jù)送入其中;輸出進程再為用戶進程申請一張空白的用戶打印請求表,并將用戶的打印要求填入表中,再將該表掛到請求打印隊列上。 打印機空閑時,輸出進程將從請求打印隊列的隊首取出一張請求表,根據(jù)表中的要求將要打印的數(shù)據(jù)從輸出井傳送到內存緩沖區(qū),再由打印機進行打印。打印完后,輸出進程再查看請求打印隊列中是否還有等待打印的請求表,若有,又取出第一張表,并根據(jù)其中的打印要求進行打印,如此下去,直至請求隊列空為止。SPOOLing技術除用于打印機外,還可以用于在網絡上進行文件傳輸。例如,我們常用的E-mail系統(tǒng)。Internet通過許多網絡將大量的計算機連在一起,當向某人發(fā)送E-mail時,用戶使用某一個程序如Send

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論