




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、本章要點(diǎn)設(shè)備管理的主要功能、模型I/O子系統(tǒng)的組成、結(jié)構(gòu)設(shè)備的控制、I/O控制設(shè)備的類型設(shè)備分配I/O緩沖技術(shù)虛擬設(shè)備與SPOOLing系統(tǒng)磁盤設(shè)備的管理4.1 設(shè)備管理概述設(shè)備管理的主要功能 設(shè)備分配 設(shè)備映射設(shè)備驅(qū)動I/O緩沖區(qū)的管理 設(shè)備分配多道程序系統(tǒng)中的設(shè)備不允許用戶直接使用,而是由操作系統(tǒng)統(tǒng)一調(diào)度和控制。設(shè)備分配功能是設(shè)備管理的基本任務(wù)。設(shè)備分配程序按照一定的策略,為申請?jiān)O(shè)備的用戶進(jìn)程分配設(shè)備,記錄設(shè)備的使用情況 設(shè)備管理的主要功能 設(shè)備分配 設(shè)備映射設(shè)備驅(qū)動I/O緩沖區(qū)的管理 設(shè)備映射為了提高應(yīng)用軟件對運(yùn)行平臺的適應(yīng)能力,方便實(shí)現(xiàn)應(yīng)用軟件I/O重定向,大多數(shù)現(xiàn)代操作系統(tǒng)均支持應(yīng)用
2、軟件對設(shè)備的無關(guān)性,即通常所說的設(shè)備無關(guān)性,或者設(shè)備獨(dú)立性。 設(shè)備無關(guān)性:應(yīng)用軟件所引用的、用于實(shí)現(xiàn)I/O操作的設(shè)備與物理I/O系統(tǒng)中實(shí)際安裝的設(shè)備沒有固定的聯(lián)系。設(shè)備映射邏輯設(shè)備和物理設(shè)備 邏輯設(shè)備是指,應(yīng)用軟件所引用的用于實(shí)現(xiàn)I/O操作的設(shè)備。 物理設(shè)備則指,物理I/O系統(tǒng)中實(shí)際安裝的設(shè)備。從應(yīng)用軟件的角度看,邏輯設(shè)備是一類物理設(shè)備的抽象。從操作系統(tǒng)設(shè)備管理程序的角度看,物理設(shè)備則是某種邏輯設(shè)備的實(shí)例。設(shè)備映射如果某系統(tǒng)支持設(shè)備無關(guān)性,那么該系統(tǒng)中應(yīng)用軟件所引用的邏輯設(shè)備與實(shí)際安裝的物理設(shè)備沒有固定的聯(lián)系。事實(shí)上,在應(yīng)用軟件運(yùn)行期間,操作系統(tǒng)的設(shè)備管理程序必須將該應(yīng)用軟件對邏輯設(shè)備的引用轉(zhuǎn)
3、換成對相關(guān)物理設(shè)備的引用。設(shè)備管理的這種功能稱為邏輯設(shè)備到物理設(shè)備的映射功能,簡稱設(shè)備映射功能。設(shè)備管理的主要功能 設(shè)備分配 設(shè)備映射設(shè)備驅(qū)動I/O緩沖區(qū)的管理 設(shè)備驅(qū)動 又稱設(shè)備處理,指對物理設(shè)備進(jìn)行控制,以實(shí)現(xiàn)真正的I/O操作。設(shè)備驅(qū)動的主要任務(wù)是:接收上層軟件發(fā)來的抽象服務(wù)請求,例如讀/寫命令,再把它轉(zhuǎn)換為具體要求,通過一系列的I/O指令,控制設(shè)備完成請求的操作;同時,設(shè)備驅(qū)動程序還將設(shè)備發(fā)來的有關(guān)信號傳送給上層軟件,例如設(shè)備是否已損壞等。 設(shè)備驅(qū)動設(shè)備驅(qū)動程序與硬件密切相關(guān),應(yīng)為每一類設(shè)備配置一種驅(qū)動程序。設(shè)備驅(qū)動程序一般由設(shè)備開發(fā)廠商根據(jù)操作系統(tǒng)的要求組織編寫,操作系統(tǒng)僅對與設(shè)備驅(qū)動
4、的接口提出要求,一般不負(fù)責(zé)具體設(shè)備驅(qū)動程序的編寫。有時候,某些硬件無法在某種操作系統(tǒng)中使用,原因很可能就是沒有專門的或通用的設(shè)備驅(qū)動程序,或者設(shè)備驅(qū)動程序設(shè)計(jì)有問題,使得設(shè)備無法正常工作。設(shè)備管理的主要功能 設(shè)備分配 設(shè)備映射設(shè)備驅(qū)動I/O緩沖區(qū)的管理 I/O緩沖區(qū)的管理為了緩和處理機(jī)與外部設(shè)備間速度不匹配的矛盾,提高處理機(jī)和外部設(shè)備間的并行性,現(xiàn)代操作系統(tǒng)大都在設(shè)備管理部分引入了緩沖技術(shù)。通常,緩沖區(qū)是指內(nèi)存中的若干區(qū)域,用于緩存進(jìn)程與外部設(shè)備間的數(shù)據(jù)傳輸。又稱為I/O緩沖區(qū)。I/O緩沖區(qū)管理的任務(wù)是:組織I/O緩沖區(qū),并為使用者提供獲得和釋放I/O緩沖區(qū)的手段。 通用設(shè)備管理分層模型 將設(shè)
5、備管理功能模塊分為設(shè)備硬件無關(guān)以及設(shè)備硬件相關(guān)兩個層次。設(shè)備硬件無關(guān)層主要實(shí)現(xiàn):I/O緩沖區(qū)管理以及設(shè)備映射功能。該層與設(shè)備用法有關(guān),與設(shè)備硬件無關(guān)。一般地,根據(jù)設(shè)備的用法,該層也可視作虛擬存儲系統(tǒng)、文件系統(tǒng)或通信系統(tǒng)的一部分。通用設(shè)備管理分層模型 設(shè)備硬件相關(guān)層將設(shè)備硬件無關(guān)層與設(shè)備硬件隔離開來。從設(shè)備硬件無關(guān)層的角度看,設(shè)備硬件相關(guān)層為其提供了一個相對簡潔的I/O功能接口;該接口屏蔽了設(shè)備硬件復(fù)雜的操作細(xì)節(jié)。從設(shè)備硬件相關(guān)層的內(nèi)部看,該層主要實(shí)現(xiàn)設(shè)備驅(qū)動功能。毫無疑問,該層與設(shè)備硬件密切相關(guān)。通用設(shè)備管理分層模型用戶進(jìn)程設(shè)備硬件無關(guān)層設(shè)備硬件相關(guān)層設(shè)備硬件支持中斷的設(shè)備管理模型 用戶進(jìn)程設(shè)
6、備硬件內(nèi)核中斷管理模塊I/O請求IOCS資源等待隊(duì)列I/O等待隊(duì)列設(shè)備驅(qū)動程序啟動過程|繼續(xù)過程設(shè)備中斷4.2 計(jì)算機(jī)I/O子系統(tǒng)的組成 總線型I/O系統(tǒng)的結(jié)構(gòu)處理機(jī)I/O設(shè)備I/O設(shè)備I/O設(shè)備I/O設(shè)備I/O設(shè)備系統(tǒng)總線內(nèi)存通道型I/O系統(tǒng)的結(jié)構(gòu)處理機(jī)I/O設(shè)備I/O設(shè)備I/O通道I/O通道系統(tǒng)總線內(nèi)存I/O通道I/O設(shè)備I/O設(shè)備I/O設(shè)備I/O設(shè)備具有控制器的I/O系統(tǒng)結(jié)構(gòu) 傳統(tǒng)的設(shè)備 = 機(jī)械部分 + 電子部分電子部分在系統(tǒng)的控制下驅(qū)動機(jī)械部分運(yùn)轉(zhuǎn),完成I/O操作。由于設(shè)備中電子部分比機(jī)械部分的速度快得多。為了降低硬件成本,將電子部分從設(shè)備中分離出來作為一個獨(dú)立的部件,這就是控制器。
7、分離之后的設(shè)備僅由機(jī)械部分構(gòu)成,一個控制器可與多個設(shè)備相連,交替地或分時地控制與其相連的設(shè)備。例如,磁盤控制器可以控制多個磁盤驅(qū)動器。具有控制器的I/O系統(tǒng)結(jié)構(gòu)處理機(jī)控制器I/O設(shè)備I/O通道系統(tǒng)總線內(nèi)存I/O通道控制器I/O設(shè)備控制器控制器I/O設(shè)備I/O設(shè)備I/O設(shè)備I/O設(shè)備設(shè)備的控制設(shè)備的尋址與操作從處理機(jī)的角度看,各種外部設(shè)備可以看作是由一組設(shè)備寄存器組成的。常見的設(shè)備寄存器有:操作方式寄存器、命令寄存器、數(shù)據(jù)寄存器、狀態(tài)寄存器等。為了使CPU能夠?qū)ぶ愤@些設(shè)備寄存器,硬件平臺引入了I/O端口地址的概念。設(shè)備的控制設(shè)備的尋址與操作I/O端口地址的編址方式有兩種:(1)將設(shè)備寄存器與內(nèi)存
8、物理單元統(tǒng)一編址;(2)獨(dú)立于內(nèi)存物理地址為設(shè)備寄存器編址。無論一個設(shè)備是否由多個控制器控制,或者一個控制器控制了多少個設(shè)備,每一個設(shè)備都能通過這些寄存器的地址唯一確定。設(shè)備的控制即插即用 隨著外部設(shè)備種類增加,設(shè)備間極可能發(fā)生沖突。即,設(shè)備使用的中斷號、DMA、內(nèi)存地址、端口地址可能因相同或重疊而導(dǎo)致設(shè)備無法正常工作。手工調(diào)整這些設(shè)備的相關(guān)參數(shù)要求用戶具有較多的計(jì)算機(jī)硬件知識,并對系統(tǒng)配置的硬件有較全面的了解。 設(shè)備的控制即插即用顧名思義是指,插上了就可使用,不需要用戶進(jìn)行其它設(shè)置?!凹床寮从谩奔夹g(shù)取消了跳線和軟件配置程序,當(dāng)用戶插入一個“即插即用”適配卡或設(shè)備時,“即插即用”功能就可以自動
9、進(jìn)行檢測,配置相應(yīng)的接口參數(shù),并安裝相應(yīng)的驅(qū)動程序。設(shè)備的控制即插即用對已安裝硬件的自動和動態(tài)識別包括系統(tǒng)初始安裝時、兩次系統(tǒng)啟動之間以及運(yùn)行時發(fā)生的硬件事件(如筆記本的對接/分離以及設(shè)備的插入/拔出)的響應(yīng);配合操作系統(tǒng)分配/再分配硬件資源 加載相應(yīng)的驅(qū)動程序。當(dāng)系統(tǒng)中加入新設(shè)備時,如果操作系統(tǒng)中沒有集成相應(yīng)設(shè)備的驅(qū)動程序,則會要求用戶指定驅(qū)動程序的位置并完成驅(qū)動程序的安裝。設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序一般由設(shè)備制造商提供,不包含在操作系統(tǒng)中。但是,為了方便用戶,操作系統(tǒng)軟件包中通常會集成提供標(biāo)準(zhǔn)的、通用的或者流行的、常用設(shè)備廠商的設(shè)備驅(qū)動程序供用戶選擇。從系統(tǒng)分層的觀點(diǎn)來講,設(shè)備驅(qū)動程序可以是
10、操作系統(tǒng)的一部分,也可以被認(rèn)為是硬件設(shè)備的一部分。I/O控制方式程序I/O方式 在早期的計(jì)算機(jī)系統(tǒng)中,由于沒有中斷裝置,處理機(jī)對于I/O設(shè)備的控制采取程序I/O方式也稱忙等待方式或循環(huán)測試方式。對于讀操作,這種方式的基本工作過程為:處理機(jī)向設(shè)備(或設(shè)備控制器)發(fā)出一條I/O指令啟動設(shè)備、輸入數(shù)據(jù),同時將狀態(tài)寄存器中的“忙”標(biāo)志置為1。處理機(jī)不斷地循環(huán)測試忙標(biāo)志,直到忙標(biāo)志變?yōu)?;處理機(jī)通過I/O讀指令將數(shù)據(jù)從數(shù)據(jù)寄存器中取出,送入內(nèi)存中指定單元;若數(shù)據(jù)已讀完,則結(jié)束本過程,否則轉(zhuǎn),繼續(xù)讀下一個數(shù)據(jù)。在程序I/O方式中,由于處理機(jī)的速度非常快,而設(shè)備的速度相對較慢,使得處理機(jī)的絕大部分時間都處于
11、等待設(shè)備完成數(shù)據(jù)I/O的循環(huán)測試中,造成對CPU的極大浪費(fèi)。I/O控制方式中斷I/O方式對于讀操作,中斷方式的基本工作過程為:處理機(jī)向設(shè)備(或設(shè)備控制器)發(fā)出一條I/O指令,啟動設(shè)備,輸入數(shù)據(jù);處理機(jī)完成其它工作,設(shè)備準(zhǔn)備數(shù)據(jù);當(dāng)設(shè)備準(zhǔn)備好數(shù)據(jù)并將數(shù)據(jù)存入數(shù)據(jù)寄存器,向處理機(jī)發(fā)中斷信號,告之?dāng)?shù)據(jù)已準(zhǔn)備好;處理機(jī)響應(yīng)中斷請求,從數(shù)據(jù)寄存器中將數(shù)據(jù)取出,送入內(nèi)存的指定單元;若數(shù)據(jù)已讀完,結(jié)束。否則,轉(zhuǎn),繼續(xù)。中斷方式控制I/O的優(yōu)點(diǎn)在于,設(shè)備與處理機(jī)并行,提高了處理機(jī)的利用率。性能優(yōu)于程序控制I/O方式。I/O控制方式DMA方式中斷I/O比程序I/O方式高效,但以字/字節(jié)為傳輸單位。每完成一個字/
12、字節(jié)的傳輸,設(shè)備均要向CPU請求一次中斷。對于塊設(shè)備而言,這種方式的效率還是顯得有些低下。因?yàn)?,頻繁的、大量的中斷所累積的開銷很大。為了進(jìn)一步減少處理機(jī)對I/O事務(wù)的干預(yù),出現(xiàn)了 DMA(Direct Memory Access)直接存儲器訪問方式。 DMA的特點(diǎn)數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊;數(shù)據(jù)直接從設(shè)備送入內(nèi)存,或者直接從內(nèi)存送入設(shè)備;僅在傳送一個或多個數(shù)據(jù)塊的開始和結(jié)束時,才需要處理機(jī)的干預(yù)。與中斷方式相比,DMA方式大大減少了數(shù)據(jù)I/O對處理機(jī)的占用,進(jìn)一步提高了處理機(jī)的利用率,提高了處理機(jī)和I/O設(shè)備的并行操作能力。I/O控制方式I/O通道方式通道相當(dāng)于一個功能單純的處理機(jī),專門用于處
13、理I/O操作。通道有自己的運(yùn)控部件和指令系統(tǒng),但沒有專門的內(nèi)存,而是通過“周期竊用”方式與主機(jī)共享內(nèi)存。通道通過執(zhí)行通道程序來完成I/O操作。通道程序是通道指令的有序序列,它由系統(tǒng)中的輸入/輸出進(jìn)程根據(jù)用戶進(jìn)程的I/O要求來確定,可以是事先編制好的程序段,也可以動態(tài)產(chǎn)生。通道程序以及需要與設(shè)備交換的數(shù)據(jù)均放置在內(nèi)存中。I/O控制方式I/O通道方式一條通道指令可以傳送一組數(shù)據(jù),一個通道程序可以傳送多組數(shù)據(jù)。多組數(shù)據(jù)全部傳送完畢后(即一個通道程序執(zhí)行完畢),才向處理機(jī)發(fā)出一次中斷。通道不僅可以傳送數(shù)據(jù),更重要的是它還完成對設(shè)備的控制。在通道的協(xié)助下,主機(jī)只需發(fā)出一個啟動通道、執(zhí)行通道程序的指令即可
14、。主機(jī)僅與通道直接通信,不必考慮設(shè)備的具體控制以及如何完成數(shù)據(jù)傳送等問題,從而大大減輕了主機(jī)的負(fù)擔(dān)。4.3 設(shè)備分類 設(shè)備類型根據(jù)外部設(shè)備的用途不同,可以將其分為輸入/輸出型設(shè)備與存儲型設(shè)備;根據(jù)外設(shè)傳輸?shù)幕緮?shù)據(jù)單位不同,可以將設(shè)備分為塊型設(shè)備與字符型設(shè)備;按照資源管理的方式不同,可以將設(shè)備分為獨(dú)占型設(shè)備和共享型設(shè)備。輸入/輸出型 VS 存儲型設(shè)備 輸入/輸出型設(shè)備:鍵盤、鼠標(biāo)、顯示器、讀卡機(jī)、掃描儀、打印機(jī)、繪圖儀、數(shù)碼相機(jī)等。存儲型設(shè)備:磁帶機(jī)、磁鼓機(jī)、磁盤機(jī)等??捎米鬏斎耄部梢杂米鬏敵?。主要用于長期保存信息,但需要管理其上的存儲空間??梢栽诖鎯υO(shè)備上可以建立文件系統(tǒng),有組織、有結(jié)構(gòu)地
15、長期存儲信息。 塊型設(shè)備 VS 字符型設(shè)備塊型設(shè)備通常就是存儲型設(shè)備。這類設(shè)備由若干長度相同的塊構(gòu)成。一塊的長度通常為2n個字節(jié),如256B、512B、1024B等。對這類設(shè)備來說,塊是存儲分配的基本單位,也是I/O傳輸?shù)幕締挝?。字符型設(shè)備通常就是輸入/輸出型設(shè)備。這類設(shè)備I/O傳輸?shù)幕締挝皇亲止?jié)。獨(dú)占型 VS 共享型設(shè)備獨(dú)占型設(shè)備包括所有的字符型設(shè)備及磁帶機(jī)。任意時間段內(nèi)最多只能被一個進(jìn)程占用。使用時,進(jìn)程首先向系統(tǒng)申請,可能進(jìn)入阻塞狀態(tài)。當(dāng)設(shè)備可用時,喚醒一個等待進(jìn)程。使用完畢以后,進(jìn)程必須釋放設(shè)備。共享型設(shè)備包括除磁帶機(jī)以外的所有塊型設(shè)備。 I/O傳輸單位:塊 宏觀上,一個共享型設(shè)備
16、可以被多個進(jìn)程同時占用;微觀上,多個進(jìn)程交替使用同一設(shè)備。 進(jìn)程使用這類設(shè)備時,無須申請或釋放設(shè)備,也不存在某個進(jìn)程占用設(shè)備的問題。 4.4 設(shè)備分配 分配:設(shè)備、控制器和通道需要記錄與他們相關(guān)的信息。包括:資源標(biāo)識、物理連接情況、占有進(jìn)程、等待進(jìn)程等。具體實(shí)現(xiàn)時,可以將其分為設(shè)備控制塊、控制器控制塊和通道控制塊。這些控制塊中包含的信息在不同的系統(tǒng)中會有所不同 設(shè)備控制塊UCB(Unit Control Block) 設(shè)備標(biāo)識設(shè)備狀態(tài)相連的控制器重試次數(shù)(I/O出錯時的重試次數(shù))占有設(shè)備的進(jìn)程設(shè)備等待隊(duì)列(指向等待本設(shè)備的等待隊(duì)列)通路待隊(duì)列(使用設(shè)備時需要申請相應(yīng)的通路)控制器控制塊CUCB
17、 控制器標(biāo)識控制器狀態(tài)相連的通道相連的設(shè)備占有控制器的進(jìn)程通道控制塊CCB通道標(biāo)識通道狀態(tài)相連的控制器占有通道的進(jìn)程設(shè)備無關(guān)性 為了實(shí)現(xiàn)設(shè)備的無關(guān)性,操作系統(tǒng)要求進(jìn)程申請?jiān)O(shè)備時,應(yīng)當(dāng)指明所需設(shè)備的類別(或者邏輯設(shè)備名),不能指定某一設(shè)備的具體編號。系統(tǒng)根據(jù)進(jìn)程的請求以及資源分配情況在相應(yīng)類別的設(shè)備中選擇一個空閑的物理設(shè)備,并將其分配給申請者。 優(yōu)點(diǎn)提高設(shè)備的利用率。從根本上講,申請者只關(guān)心使用設(shè)備的結(jié)果,不在乎到底使用哪一個設(shè)備。假設(shè)申請者指定具體設(shè)備,被指定的設(shè)備可能正在被使用,因而申請無法滿足。而此時,其他同類設(shè)備可能空閑。這將造成資源的浪費(fèi)和進(jìn)程的不必要等待;程序與設(shè)備無關(guān)。假設(shè)申請者指
18、定具體設(shè)備,而被指定的設(shè)備已損壞或未聯(lián)機(jī),則要么程序無法正常工作,要么修改程序。系統(tǒng)設(shè)備表SDT根據(jù)上述實(shí)現(xiàn)要求,系統(tǒng)通常將相同類型設(shè)備的UCB記錄在一張表中,稱作UCB表。將邏輯設(shè)備名、設(shè)備數(shù)、設(shè)備等待隊(duì)列以及UCB表的起始地址登記在另一個表中,該表通常稱作系統(tǒng)設(shè)備表(SDT) ,如表4.7所示 。設(shè)備類別設(shè)備總數(shù)可用設(shè)備數(shù)設(shè)備等待隊(duì)列UCB首址打印機(jī)54讀卡機(jī)33設(shè)備分配算法 先來先服務(wù)根據(jù)進(jìn)程對某設(shè)備提出請求的先后次序,將這些進(jìn)程排成一個設(shè)備請求隊(duì)列。設(shè)備分配程序總是把設(shè)備分配給隊(duì)首的進(jìn)程。優(yōu)先級高者優(yōu)先服務(wù) 根據(jù)進(jìn)程優(yōu)先級的高低,將優(yōu)先級高的進(jìn)程排在設(shè)備等待隊(duì)列的前面。對于優(yōu)先級相同的
19、進(jìn)程,則按先來先服務(wù)的原則進(jìn)行排隊(duì),設(shè)備分配程序總是把設(shè)備分配給排在隊(duì)首的進(jìn)程。 獨(dú)占型設(shè)備的分配 進(jìn)程使用獨(dú)占設(shè)備的過程:申請、使用、釋放。1 進(jìn)程申請?jiān)O(shè)備2 系統(tǒng)分配設(shè)備3 進(jìn)程發(fā)送使用命令4 系統(tǒng)將轉(zhuǎn)到設(shè)備驅(qū)動模塊完成一次I/O傳輸5 進(jìn)程釋放設(shè)備6 系統(tǒng)回收設(shè)備當(dāng)進(jìn)程的一次設(shè)備申請成功,直到發(fā)出釋放命令期間,一直獨(dú)占設(shè)備。 共享型設(shè)備的分配 進(jìn)程使用共享型設(shè)備不需要申請,當(dāng)然也就不存在占用或釋放設(shè)備的問題。但是,I/O期間只能有一個進(jìn)程使用設(shè)備。因此,進(jìn)程使用共享型設(shè)備之前,有一個隱含的申請命令;使用完畢以后,有一個隱含的釋放命令,以實(shí)現(xiàn)一次基本I/O傳輸期間的排它性,保證操作的正常進(jìn)
20、行。使用共享型設(shè)備的過程中,進(jìn)程完全有可能進(jìn)入阻塞等待狀態(tài)。 4.5 I/O緩沖技術(shù) 緩沖技術(shù)的引入 緩解處理機(jī)與設(shè)備間速度不匹配的矛盾 實(shí)現(xiàn)設(shè)備與處理機(jī)一定程度的并行操作減少設(shè)備的中斷頻率,放寬對中斷響應(yīng)時間的限制 提前讀指用戶進(jìn)程從 I/O緩沖區(qū)中取走前一個數(shù)據(jù)以后,立即發(fā)出對下一個數(shù)據(jù)的輸入請求。操作系統(tǒng)將在適當(dāng)?shù)臅r候響應(yīng)該請求以便把用戶進(jìn)程需要的下一個數(shù)據(jù)從用戶進(jìn)程指定的輸入設(shè)備讀入到I/O 緩沖區(qū)中。顯然,用戶進(jìn)程加工前一個數(shù)據(jù)的工作與操作系統(tǒng)輸入下一個數(shù)據(jù)的工作可以同時進(jìn)行。延后寫是指,當(dāng)用戶進(jìn)程請求輸出數(shù)據(jù)時,操作系統(tǒng)將很快把用戶進(jìn)程請求輸出的數(shù)據(jù)從用戶進(jìn)程的工作區(qū)中取走并將其暫
21、時存放在I/O緩沖區(qū)中。 直到用戶進(jìn)程指定的輸出設(shè)備空閑時, 操作系統(tǒng)才把暫時存放在I/O緩沖區(qū)中的用戶進(jìn)程的輸出數(shù)據(jù)寫入用戶進(jìn)程指定的輸出設(shè)備上。顯然,用戶進(jìn)程生成下一個輸出數(shù)據(jù)的工作與操作系統(tǒng)輸出前一個輸出數(shù)據(jù)的工作可以同時進(jìn)行。硬件緩沖和軟件緩沖 硬件緩沖區(qū)配置在設(shè)備中,具有專門的用途。對處理機(jī)透明,不需要處理機(jī)的直接管理,不會影響系統(tǒng)性能。軟件實(shí)現(xiàn)的緩沖區(qū)是內(nèi)存空間的一部分。其目的是為了彌補(bǔ)硬件緩沖區(qū)的不足。因?yàn)椴⒎撬型庠O(shè)都擁有,或者足夠擁有硬件緩沖區(qū)。操作系統(tǒng)中介紹的緩沖區(qū)都是指軟件緩沖區(qū)。緩沖區(qū)的組織形式單緩沖雙緩沖循環(huán)緩沖緩沖池 單緩沖簡單,僅在內(nèi)存中為進(jìn)程對某個設(shè)備的I/O訪
22、問分配一個緩沖區(qū),如圖 操作系統(tǒng)外部設(shè)備用戶進(jìn)程緩沖區(qū)假定,一塊數(shù)據(jù)從外部設(shè)備輸入到內(nèi)存所花費(fèi)的時間為T,在內(nèi)存中移動所花費(fèi)的時間為M,被用戶進(jìn)程加工處理所花費(fèi)的時間為C,那么在沒有使用I/O緩沖區(qū)的情況下,平均每塊數(shù)據(jù)的處理時間近似為:T+C在使用單I/O緩沖區(qū)的情況下,平均每塊數(shù)據(jù)的處理時間近似為:max(T,C)+M相對于沒有I/O緩沖區(qū)的情形, 單I/O緩沖區(qū)能提高用戶進(jìn)程的運(yùn)行效率。如果用戶進(jìn)程在對有關(guān)數(shù)據(jù)進(jìn)行加工處理時不釋放I/O緩沖區(qū), 那么用戶進(jìn)程的性能并不能得到改善。如果T遠(yuǎn)遠(yuǎn)大于C,即外部設(shè)備的I/O速度比用戶進(jìn)程的計(jì)算速度慢得多,那么,單I/O緩沖區(qū)不會顯著改善用戶進(jìn)程的
23、性能。雙緩沖 OS外部設(shè)備用戶進(jìn)程緩沖區(qū)緩沖區(qū)增加一個緩沖區(qū),兩個緩沖區(qū)可以交替使用。當(dāng)數(shù)據(jù)從緩沖區(qū)復(fù)制到用戶進(jìn)程空間時,輸入設(shè)備不必等待,可立即開始向另一個緩沖區(qū)輸入數(shù)據(jù)。因此,增加了一個緩沖區(qū)后,前述的平均工作時間可近似為:max(T,C)。 另外,若用戶進(jìn)程陣發(fā)性I/O的數(shù)據(jù)超過一個緩沖區(qū)而不滿兩個緩沖區(qū),雙緩沖使進(jìn)程不會在I/O數(shù)據(jù)期間被阻塞。循環(huán)緩沖 當(dāng)用戶進(jìn)程處理數(shù)據(jù)的速度較快、外部設(shè)備處理數(shù)據(jù)的速度較慢,或者用戶進(jìn)程陣發(fā)性輸入/輸出的數(shù)據(jù)較多時,必須考慮增加緩沖區(qū)的數(shù)量以改善系統(tǒng)性能,這就是多緩沖區(qū)方式。多個I/O緩沖區(qū)常常被組織成一個環(huán)形隊(duì)列,故,稱為循環(huán)緩沖。實(shí)質(zhì)上,雙緩沖可
24、以看作是循環(huán)緩沖的一個特例。緩沖池 上述三種緩沖區(qū)的組織形式僅適用于某種特定的I/O進(jìn)程和計(jì)算進(jìn)程,屬于專用緩沖。當(dāng)系統(tǒng)中的設(shè)備很多時,將會有許多這樣的循環(huán)緩沖區(qū),消耗大量的內(nèi)存空間,而且其利用率也不高。為了提高緩沖區(qū)的利用率,可以采用公共緩沖池技術(shù),其中的緩沖區(qū)可為多個設(shè)備和進(jìn)程服務(wù)。 緩沖池兩種緩沖池:分別用于塊型設(shè)備和字符型設(shè)備。用于塊型設(shè)備的緩沖池:緩沖區(qū)較大,其長度通常與外部設(shè)備物理塊的長度相同;用于字符型設(shè)備的緩沖池:緩沖區(qū)較小,其長度通常為8個字節(jié)、16個字節(jié)等。若單個緩沖區(qū)的容量太大會造成資源浪費(fèi),而太小的緩沖區(qū)則會增加系統(tǒng)管理開銷。 緩沖池緩沖池中的緩沖區(qū)通常組織成鏈表結(jié)構(gòu)。
25、需要緩沖區(qū)時,從鏈表中申請一個或多個緩沖區(qū)。使用完畢時,釋放的緩沖區(qū)將被鏈接到鏈表中。緩沖區(qū)和緩沖池都屬于操作系統(tǒng)空間,用戶進(jìn)程不能直接對緩沖區(qū)中的數(shù)據(jù)進(jìn)行操作 只能通過系統(tǒng)調(diào)用間接地使用; 或讓操作系統(tǒng)將緩沖區(qū)中的數(shù)據(jù)復(fù)制到用戶進(jìn)程空間,或者相反。 緩沖技術(shù)的實(shí)現(xiàn) 內(nèi)容簡單,請讀者自學(xué)。4.6 虛擬設(shè)備虛擬設(shè)備的引入 獨(dú)占型設(shè)備的速度一般較慢,進(jìn)程常需要長時間等待I/O傳輸完成,影響進(jìn)程的推進(jìn)速度;進(jìn)程在占有設(shè)備期間不一定一直使用此設(shè)備,而其他申請?jiān)撛O(shè)備的進(jìn)程只能阻塞等待,降低了設(shè)備的利用率,影響其他進(jìn)程的推進(jìn)速度。引入虛擬設(shè)備技術(shù),能解決獨(dú)占設(shè)備利用率不高的問題。虛擬設(shè)備技術(shù)的實(shí)現(xiàn)虛擬設(shè)備
26、技術(shù)類似緩沖區(qū)技術(shù),可以認(rèn)為是為設(shè)備提供了多個更大的、甚至在實(shí)際工作中是無限長度的緩沖區(qū),進(jìn)一步提高系統(tǒng)效率。虛擬設(shè)備技術(shù)的實(shí)現(xiàn):在獨(dú)占型設(shè)備與進(jìn)程之間加入一個共享型設(shè)備作為過渡,如圖內(nèi)存共享型設(shè)備進(jìn)程某一區(qū)域獨(dú)占型設(shè)備間斷傳輸連續(xù)傳輸共享型設(shè)備的某一區(qū)域是由若干個設(shè)備塊構(gòu)成的,對進(jìn)程而言相當(dāng)于真實(shí)的設(shè)備。由于共享型設(shè)備較獨(dú)占型設(shè)備的速度較快。所以,進(jìn)程I/O所需的時間較短,提高了進(jìn)程的推進(jìn)速度。又由于共享型設(shè)備的存儲容量很大,可提供多個這樣的區(qū)域,因而虛擬設(shè)備的數(shù)量多,一般可為每個需要使用設(shè)備的進(jìn)程提供一個。這些進(jìn)程不用排隊(duì)等待,他們的推進(jìn)速度也就不受任何影響。這樣,多個進(jìn)程可以同時使用同一
27、獨(dú)占型設(shè)備,而每個進(jìn)程對應(yīng)一個虛擬設(shè)備,提高了設(shè)備利用率。 輸入型虛擬設(shè)備的實(shí)現(xiàn) 對于輸入型虛擬設(shè)備,數(shù)據(jù)的流向: 獨(dú)占型設(shè)備 共享型設(shè)備 進(jìn)程空間/內(nèi)存假定用于輸入的獨(dú)占型設(shè)備是讀卡機(jī),用于實(shí)現(xiàn)虛擬設(shè)備的共享型設(shè)備是磁盤,則對于進(jìn)程所發(fā)出的資源申請命令、使用命令及釋放命令,操作系統(tǒng)需要完成的工作如下:輸入型虛擬設(shè)備的實(shí)現(xiàn) 申請 分配一臺虛擬設(shè)備(磁盤區(qū)域),分配一臺實(shí)設(shè)備(一臺讀卡機(jī)),將信息由實(shí)設(shè)備(讀卡機(jī))連續(xù)地傳輸?shù)教摂M設(shè)備(磁盤區(qū)域),釋放實(shí)設(shè)備(讀卡機(jī));使用 將數(shù)據(jù)從虛擬設(shè)備(磁盤區(qū)域)傳輸?shù)竭M(jìn)程空間;釋放 回收虛擬設(shè)備(磁盤區(qū)域)。輸出型虛擬設(shè)備的實(shí)現(xiàn) 對于輸出型虛擬設(shè)備來說,
28、數(shù)據(jù)的流向: 內(nèi)存 共享型設(shè)備 獨(dú)占型設(shè)備假定用于輸出的獨(dú)占型設(shè)備是打印機(jī),用于實(shí)現(xiàn)虛擬設(shè)備的共享型設(shè)備是磁盤,則對于進(jìn)程所發(fā)出的資源申請命令、使用命令及釋放命令,操作系統(tǒng)需要完成的工作如下:輸出型虛擬設(shè)備的實(shí)現(xiàn) 申請 分配一臺虛擬設(shè)備(磁盤區(qū)域);使用 將數(shù)據(jù)由進(jìn)程空間傳送到虛擬設(shè)備(磁盤區(qū)域);釋放 申請一臺實(shí)設(shè)備(一臺打印機(jī)),將數(shù)據(jù)由虛擬設(shè)備(磁盤區(qū)域)輸出到實(shí)設(shè)備(打印機(jī)),回收實(shí)設(shè)備(打印機(jī))。 SPOOLing系統(tǒng) SPOOLing:Simultaneous Peripheral Operations On-Line ,直譯意思是“聯(lián)機(jī)情況下同時進(jìn)行的外圍設(shè)備操作”,通常稱其為“
29、假脫機(jī)操作”。SPOOLing系統(tǒng)是虛擬設(shè)備最典型的代表,包括假脫機(jī)輸入和輸出系統(tǒng)兩個部分。核心思想:在快速輔助存儲設(shè)備中建立I/O緩沖區(qū),用于緩存從慢速輸入設(shè)備流入內(nèi)存的數(shù)據(jù),或緩存從內(nèi)存流向慢速輸出設(shè)備的數(shù)據(jù)。4.7 磁盤設(shè)備的管理磁盤的性能和安全性磁盤是計(jì)算機(jī)系統(tǒng)最重要的外部存儲設(shè)備之一 影響磁盤性能和數(shù)據(jù)安全性的主要因素: 磁盤性能參數(shù):轉(zhuǎn)速、尋道時間、磁盤緩存; 磁盤控制器:IDE、SCSI磁盤控制器; RAID等磁盤容錯技術(shù); 磁盤管理算法:磁盤調(diào)度算法、磁盤高速緩存、高性能的文件系統(tǒng);磁盤設(shè)備的物理特性 磁盤由若干張圓形的盤片組成,每張盤片上都涂有磁層,用于記錄數(shù)據(jù);各盤片的圓心
30、固定在一個旋轉(zhuǎn)軸上,該軸沿固定方向等速地轉(zhuǎn)動,并帶動磁盤組不停地旋轉(zhuǎn)。硬盤的轉(zhuǎn)速比軟盤快幾十倍,并在開機(jī)后一直高速旋轉(zhuǎn),隨時準(zhǔn)備就緒;而軟盤則需要I/O時才旋轉(zhuǎn),否則停止旋轉(zhuǎn)。軟盤使用前必須等待轉(zhuǎn)速從0加速,并穩(wěn)定到額定轉(zhuǎn)速,故工作效率較低。每張盤片分為上、下兩個盤面,每個盤面有若干磁道,同一盤面上的所有磁道是繞旋轉(zhuǎn)軸的一組同心圓,所有磁道由外向內(nèi)依次由0開始編號,稱為磁道號。磁盤組中各盤面上序號相同的磁道構(gòu)成一個柱面,由外向內(nèi)依次編號,若磁盤組有l(wèi)個柱面,則編號為0,1,2,l-1,稱為柱面號。若磁盤組共有s個盤片,則共有2s個盤面,但通常最上面和最下面的兩個盤面作為伺服面,用以進(jìn)行控制磁頭
31、定位等操作,并不存放數(shù)據(jù),因而實(shí)際可用盤面數(shù)為m2(s-1),由下至下依次編號為0,1,2,m-1,稱為盤面號。整個盤面被劃分為若干大小相同的扇面,它把一個磁道等分為若干個區(qū)域,一個區(qū)域稱為一個扇區(qū)。數(shù)據(jù)保存在各個扇區(qū)中,每個扇區(qū)內(nèi)保存的數(shù)據(jù)量相同,為2的冪次,例如512字節(jié)、1024字節(jié)甚至2048字節(jié)。扇區(qū)是磁盤進(jìn)行I/O傳輸?shù)幕締挝?,也是磁盤空間分配的基本單位。若扇區(qū)的數(shù)量為n,則每條磁道上的扇區(qū)被依次編號為0,1, 2,n-1,稱為扇區(qū)號。磁盤的基本存儲單元(扇區(qū))的尋址方式為三維地址:柱面號、盤面號、扇區(qū)號。為了方便管理及屏蔽存儲設(shè)備的物理細(xì)節(jié),操作系統(tǒng)向上層軟件提供統(tǒng)一的接口,常
32、使用一維地址,即只有邏輯磁盤塊號(邏輯扇區(qū)號),將磁盤組中所有的扇區(qū)從0開始編號。顯然,這里就存在著一維地址與三維地址間相互轉(zhuǎn)換的問題為了提高效率,對于移動磁頭式磁盤機(jī)來說,磁頭引臂的機(jī)械運(yùn)動(尋道)速度最慢,其次才是盤片轉(zhuǎn)動的速度,因此,編排邏輯塊號時,扇區(qū)號先變化,其次是盤面號,最后才是柱面號。 磁盤的磁頭工作方式 磁盤:固定頭磁盤和移動頭磁盤。固定頭磁盤的每一條磁道上都有一個讀/寫磁頭,所有的磁頭都被安裝在一剛性磁臂中,通過磁頭訪問磁道,可以并行讀/寫,磁盤的I/O速度很快。固定頭磁盤的優(yōu)點(diǎn)是訪問速度快,其缺點(diǎn)是成本較高、容量受磁頭數(shù)量限制。磁盤的磁頭工作方式 移動頭磁盤為每一個盤面配置
33、一個磁頭,所有盤面的磁頭被裝入磁臂中,磁盤I/O時,必須移動磁頭(尋道)。因此,移動頭磁盤只能進(jìn)行串行讀/寫,I/O速度相對較慢,但由于其具有結(jié)構(gòu)簡單、成本較低、容量不受磁頭數(shù)量限制等優(yōu)點(diǎn),因而被廣泛使用。影響磁盤I/O性能的技術(shù)指標(biāo) 從磁盤讀數(shù)據(jù)的過程:磁盤接收到讀指令后,磁頭從當(dāng)前位置移到目標(biāo)磁道位置,所需的時間稱為尋道時間;然后,旋轉(zhuǎn)磁盤,定位數(shù)據(jù)所在的扇區(qū),所需的時間稱為旋轉(zhuǎn)延遲;最后,從磁盤上讀取數(shù)據(jù),所需的時間稱為數(shù)據(jù)傳輸時間。訪問時間尋道時間旋轉(zhuǎn)延遲傳輸時間 尋道時間尋道時間:把磁頭從當(dāng)前位置移動到指定磁道所需要的時間。是影響磁盤數(shù)據(jù)傳輸率的重要參數(shù),與磁頭移過的磁道數(shù)量成正比。
34、衡量磁盤的尋道性能時,通常使用平均尋道時間。旋轉(zhuǎn)延遲旋轉(zhuǎn)延遲與磁盤轉(zhuǎn)速直接相關(guān),是指旋轉(zhuǎn)磁盤,將指定扇區(qū)移動到磁頭下面所需要的時間。假設(shè)Tr為旋轉(zhuǎn)延遲,r為磁盤轉(zhuǎn)速(轉(zhuǎn)數(shù)/單位時間)那么Tr 1/(2r)例:對于一個轉(zhuǎn)速為3600rpm的硬盤而言,其每旋轉(zhuǎn)一周的時間為 16.7ms,其平均旋轉(zhuǎn)延遲為8.3ms。對于一個轉(zhuǎn)速為300rpm的軟盤而言,其每旋轉(zhuǎn)一周的時間為 200ms,其平均旋轉(zhuǎn)延遲為100ms。傳輸時間傳輸時間是指把數(shù)據(jù)從硬盤讀出或向磁盤寫入數(shù)據(jù)所經(jīng)歷的時間。傳輸時間與硬盤的轉(zhuǎn)速和所讀/寫的數(shù)據(jù)長度有關(guān),當(dāng)一次讀/寫的數(shù)據(jù)長度相當(dāng)于半條磁道上的字節(jié)數(shù)時,傳輸時間與平均旋轉(zhuǎn)延遲相同
35、。 緩存當(dāng)緩存足夠大時,對于寫操作,盡管數(shù)據(jù)并未真正寫到磁盤上,但它給主機(jī)的印象就是寫操作已“非??臁钡赝瓿?延后寫);對于讀操作,盡管是讀一扇區(qū),但磁盤卻將整條磁道的數(shù)據(jù)都讀入緩存中(提前讀),當(dāng)下一次需要再讀數(shù)據(jù)時,就顯得非??炝饲疤崾窍乱淮巫x的數(shù)據(jù)還位于同一條磁道。由于緩存不可能很大,因此對于密集訪問磁盤的系統(tǒng)而言,緩存并不能發(fā)揮多大的作用,但由于多數(shù)系統(tǒng)是間歇地訪問磁盤,因而緩存在很多時候還是能發(fā)揮較大的作用。綜上所述,傳統(tǒng)上影響磁盤I/O性能的主要技術(shù)指標(biāo)是平均尋道時間和轉(zhuǎn)速,轉(zhuǎn)速則影響平均旋轉(zhuǎn)延遲和數(shù)據(jù)傳輸時間。對于實(shí)際的系統(tǒng)而言,較大緩存也對硬盤的I/O性能有較大的影響,但不是決
36、定性的。調(diào)整磁盤I/O性能 磁盤的平均尋道時間和轉(zhuǎn)速是固定不變的。為了提高磁盤的I/O性能,只能從磁盤調(diào)度的方式和訪問數(shù)據(jù)的組織形式上入手,即縮短尋道時間和旋轉(zhuǎn)延遲。 磁盤調(diào)度算法當(dāng)有多個進(jìn)程都請求訪問磁盤時,他們訪問的位置(這里主要關(guān)心磁道)各不一樣,磁頭需要來回頻繁移動進(jìn)行尋道操作。磁頭的尋道操作屬于機(jī)械運(yùn)動,花費(fèi)的時間較長,而且過度的尋道操作會大大縮短磁盤的壽命。因此,必須采用適當(dāng)?shù)拇疟P調(diào)度算法,使得在盡可能公平的情況下,縮短平均尋道時間,并使磁頭移動距離最小。先到先服務(wù)算法FCFS(First Come First Serve) FCFS算法按照輸入/輸出請求的先后次序?yàn)楦鱾€進(jìn)程服務(wù)。
37、這是最公平、最簡單的算法,但是效率非常低。例如,一個有100條磁道的磁盤,磁道依次編號為099,磁頭當(dāng)前位于第20磁道,對于如下的訪問請求:請求次序: 1 2 3 4 5 訪問磁道: 99 2 97 10 26 先到先服務(wù)算法FCFS(First Come First Serve)若按FCFS算法,則磁頭移動的磁道數(shù)為79+97+95+87+16374磁頭在磁道之間來回頻繁移動,不但造成較大的時間開銷,影響效率,而且容易使磁頭臂疲勞,磁盤很容易損壞。因此,這種簡單的算法只適合于負(fù)載很輕的系統(tǒng)。最短尋道時間優(yōu)先算法SSTF(Shortest Seek Time First) 為了克服FCFS算法
38、之缺點(diǎn),人們提出了SSTF算法,即優(yōu)先為距離磁頭當(dāng)前所在位置最近的磁道服務(wù)。例如,對于上述服務(wù)請求,按照SSTF算法,則系統(tǒng)將按如下次序?yàn)檫M(jìn)程提供服務(wù),磁頭移動的磁道數(shù)為6+16+8+95+2127,效率比FCFS高了許多。服務(wù)次序: 1 2 3 4 5 訪問磁道: 26 10 2 97 99 掃描算法Scan 也稱電梯算法,其基本思想類似電梯的工作原理。其具體過程為:假定開始時磁頭處于最外磁道,并向內(nèi)磁道方向移動。在磁頭移動過程中,如果經(jīng)過的磁道有訪問請求,則為其服務(wù)。然后判斷當(dāng)前磁道以內(nèi)的磁道是否還有訪問請求,如果有,則磁頭繼續(xù)向內(nèi)磁道方向移動;否則,判斷當(dāng)前磁道以外的磁道是否有訪問請求,
39、若有,則磁頭掉轉(zhuǎn)方向朝外移動。若此時當(dāng)前磁道內(nèi)外均無訪問請求,則磁頭引臂停止不動。掃描算法Scan 這種算法比較公平,效率很高;但是,若在某一段時間內(nèi)某一磁道的訪問請求不斷,則磁頭引臂將停留在該磁道上不動(稱為磁臂粘著),磁盤被相應(yīng)的進(jìn)程壟斷,所有其他磁道上的請求將在較長時間內(nèi)得不到服務(wù)。N步掃描算法N-Scan N步掃描算法將磁盤請求隊(duì)列分成若干個長度為N的子隊(duì)列,磁盤調(diào)度程序按照FCFS算法依次處理這些子隊(duì)列,而處理每一個子隊(duì)列時,則按照SCAN算法。當(dāng)N值取得很大時,N步掃描算法的性能與SCAN算法的性能相當(dāng);當(dāng)N取值為1時,N步掃描算法退化為FCFS算法。N步掃描算法N-Scan 在實(shí)
40、際應(yīng)用中,N步掃描算法被簡化為:只為一次特定的掃描開始前已經(jīng)等待的訪問請求服務(wù),以防止發(fā)生掃描算法中存在的不公平現(xiàn)象,盡管這種不公平的現(xiàn)象對磁頭有利。在一次掃描期間內(nèi)新到達(dá)的訪問請求將只能放在下一次掃描期間完成處理,無論這些新的請求是否處于一次掃描的服務(wù)途中。磁盤高速緩存 指,操作系統(tǒng)利用內(nèi)存實(shí)現(xiàn)的、專門針對磁盤I/O操作的緩沖區(qū)。與磁盤機(jī)本身所帶的緩存以及磁盤控制器所帶的緩存相比,磁盤機(jī)和磁盤控制器上的緩存的特點(diǎn):容量較??;利用此類緩存進(jìn)行數(shù)據(jù)提前讀和延后寫操作能與主機(jī)并行工作。磁盤高速緩存的特點(diǎn)容量較大;常存儲全局范圍、經(jīng)常訪問的重要數(shù)據(jù):文件系統(tǒng)的目錄、文件分配表、索引塊等;缺點(diǎn):利用該
41、緩存進(jìn)行數(shù)據(jù)提前讀和延后寫操作需要主機(jī)的管理,增加了主機(jī)的負(fù)擔(dān)。對于高檔的服務(wù)器而言,大的硬件緩存更能提高磁盤I/O的性能。但是,若磁盤機(jī)和磁盤控制器上沒有緩存,那么,就需要依靠磁盤高速緩存的作用。磁盤高速緩存的實(shí)現(xiàn)形式在內(nèi)存中單獨(dú)開辟一個大小固定的存儲空間作為磁盤高速緩存區(qū)。有的操作系統(tǒng)允許用戶指定或調(diào)整此空間的大小;二是把系統(tǒng)中所有未使用的內(nèi)存空間變?yōu)橐粋€緩沖池,供請求分頁系統(tǒng)和磁盤高速緩存共享,其大小不固定,當(dāng)磁盤I/O操作頻率時,磁盤高速緩存區(qū)可能較大。磁盤高速緩存的數(shù)據(jù)安全性讀操作不存在安全問題;寫操作對進(jìn)程而言數(shù)據(jù)已寫出。但數(shù)據(jù)其實(shí)是被寫入高速緩存中,并未真正寫到磁盤上。操作系統(tǒng)必
42、須在適當(dāng)?shù)臅r候?qū)?shù)據(jù)真正寫到磁盤。何時進(jìn)行寫操作呢? 磁盤高速緩存的數(shù)據(jù)安全性有三種策略可供選擇:在系統(tǒng)空閑或需要淘汰被寫的緩存空間時進(jìn)行寫。這種策略風(fēng)險(xiǎn)最大,效率高;周期性地進(jìn)行寫。風(fēng)險(xiǎn)較低,效率較高;立即寫回,即只要高速緩存中的某盤塊數(shù)據(jù)被修改,便立即將它們寫回磁盤。這種高速緩存通常被稱為“寫穿透高速緩存(write-through cache)”,相當(dāng)于只有讀緩存而沒有寫緩存,其風(fēng)險(xiǎn)最低,效率也最低。 優(yōu)化數(shù)據(jù)的物理存儲結(jié)構(gòu) 磁盤I/O常針對整個文件進(jìn)行,如果一個文件被分散存儲到多個柱面上,則讀/寫這樣的文件時,需要進(jìn)行多次尋道操作和旋轉(zhuǎn)延遲。為什么把文件分散存儲呢?在系統(tǒng)建立的初期,文
43、件都是連續(xù)存儲的。但隨著系統(tǒng)使用時間的積累,文件會不斷被用戶刪除或新建。為了充分利用存儲空間,新建文件常分散存儲。磁盤高速緩存的效率,取決于其命中率。使用緩存需要基于兩個要素:一是訪問頻率,二是基于局部性原理的提前讀技術(shù)。提前讀技術(shù)是使用緩存的關(guān)鍵,當(dāng)讀入進(jìn)程申請的數(shù)據(jù)時,將其空間局部存儲的數(shù)據(jù)一起提前讀,以期在后面的操作中得到回報(bào)而在總體上節(jié)約時間。如果一個文件在物理上存儲得較分散,盡管不影響系統(tǒng)的正確性,但卻使提前讀操作失效,反而降低系統(tǒng)效率。若將分散到多個柱面或磁道上的文件進(jìn)行類似內(nèi)存分配過程中的碎片整理(緊湊),使這些文件在物理上連續(xù)存儲,則不僅能提高文件的讀/寫性能,減少尋道時間和平
44、均旋轉(zhuǎn)延遲,而且能提高磁盤高速緩存的命中率,從而提高整個系統(tǒng)效的效率,減少磁盤的機(jī)械損耗。因此,人們經(jīng)常使用MS-DOS、Windows等操作系統(tǒng)提供的磁盤碎片整理功能,以提高系統(tǒng)工作效率。上節(jié)內(nèi)容回顧設(shè)備管理的主要功能:設(shè)備分配、設(shè)備映射、設(shè)備驅(qū)動、I/O緩沖技術(shù)I/O緩沖區(qū)的組織形式:單緩沖、雙緩沖、循環(huán)緩沖、緩沖池虛擬設(shè)備技術(shù):引入的原因、實(shí)現(xiàn)方法、SPOOLing系統(tǒng)實(shí)例磁盤設(shè)備的管理:磁盤性能參數(shù):轉(zhuǎn)速、尋道時間、磁盤緩存;磁盤管理算法:磁盤調(diào)度、Disk Cache、高性能的文件系統(tǒng);磁盤的平均訪問時間尋道時間旋轉(zhuǎn)延遲傳輸時間引入磁盤調(diào)度的例子 假定:一個硬盤的扇區(qū)長度為512個字
45、節(jié),磁道長度為32個扇區(qū),平均尋道時間為20ms,傳輸速率為1MB/s,轉(zhuǎn)速為3600rpm。顯然, 如果一個長度為128K個字節(jié)的文件存放在該硬盤上,那么該文件將在該硬盤上占用256個扇區(qū)。 請問:如果系統(tǒng)從該硬盤上完整地讀入該文件, 將花費(fèi)多長時間?若文件連續(xù)地存放在硬盤的8個相鄰的磁道上,那么系統(tǒng)完整地讀入該文件需要花費(fèi)的時間:(208.316.7)(8.316.7)7220ms若文件隨機(jī)地存放在硬盤的256個扇區(qū)上,那么讀入該文件需要花費(fèi)的時間:(208.30.5)2567373ms比較與分析比較前面兩種結(jié)果可以發(fā)現(xiàn):如果文件的存儲方式不同,系統(tǒng)訪問文件的效率就不同;即,文件的存儲方式
46、影響著系統(tǒng)訪問文件的效率。文件的存儲方式對系統(tǒng)訪問文件的效率的影響主要在于:訪問文件總的尋道時間和總的旋轉(zhuǎn)延遲。結(jié) 論當(dāng)系統(tǒng)訪問一組磁盤扇區(qū)時,如果能夠減少總的尋道時間和總的旋轉(zhuǎn)延遲,那么系統(tǒng)的訪問效率將得到提高。磁盤調(diào)度算法小結(jié)FCFSSSTFSCANN-SCAN例子 假定:當(dāng)前有9個磁盤讀寫請求;這9個磁盤讀寫請求要訪問的磁道號按照各個磁盤讀寫請求到達(dá)的次序依次為:55、58、39、18、90、160、150、38、184。此外,磁頭當(dāng)前位于100號磁道上。如果系統(tǒng)使用SCAN算法,還假定磁頭當(dāng)前的移動方向?yàn)榇诺捞栐鲩L的方向。 請問:如果系統(tǒng)分別使用FIFO策略、SSTF算法、SCAN算法
47、調(diào)度磁盤,那么系統(tǒng)處理這9個磁盤讀寫請求時磁頭的平均尋道長度為多少?FIFOSSTFSCANDisk Cache的工作原理當(dāng)用戶進(jìn)程請求從磁盤讀入一個扇區(qū)時,系統(tǒng)首先在disk cache中尋找該扇區(qū)的副本 - 如果能夠找到,那么系統(tǒng)將從disk cache中取出該扇區(qū)的副本并返給用戶進(jìn)程; - 否則,系統(tǒng)首先從磁盤上讀入該扇區(qū)并在disk cache中為其建立一個副本,然后將該副本返給用戶進(jìn)程。當(dāng)用戶進(jìn)程請求向磁盤上寫出一個扇區(qū)時,系統(tǒng)同樣首先在disk cache中尋找該扇區(qū)的副本 - 如果能夠找到,那么系統(tǒng)將根據(jù)用戶進(jìn)程的請求修改該扇區(qū)的副本; - 否則,系統(tǒng)同樣首先從磁盤上讀入該扇區(qū)并
48、在disk cache中為其建立一 個副本,然后根據(jù)用戶進(jìn)程的請求修改該副本。磁盤高速緩存的數(shù)據(jù)安全性Disk Cache中的數(shù)據(jù)寫出到磁盤:在系統(tǒng)空閑或需要淘汰被寫的緩存空間時進(jìn)行寫。周期性地進(jìn)行寫。立即寫回,稱為“寫穿透高速緩存”,相當(dāng)于只有讀緩存而沒有寫緩存。磁盤管理的另一個有效方法高性能的文件系統(tǒng) 磁盤碎片整理,使磁盤文件盡量連續(xù)磁盤容錯技術(shù) 磁盤中常常存儲著非常重要的數(shù)據(jù),例如交易數(shù)據(jù)、帳目數(shù)據(jù)、學(xué)生成績等。若這些數(shù)據(jù)出了問題,或者存儲這些數(shù)據(jù)的磁盤報(bào)廢,其后果是非常嚴(yán)重的。因此,要求保證磁盤數(shù)據(jù)的可靠性。磁盤容錯技術(shù)通過在系統(tǒng)中設(shè)置冗余部件來提高系統(tǒng)可靠性。冗余部件包括增加冗余的磁
49、盤驅(qū)動器、磁盤控制器等,使得當(dāng)磁盤系統(tǒng)某部分出現(xiàn)缺陷或故障時,磁盤仍能正常工作,且不至于造成數(shù)據(jù)的錯誤和丟失。 磁盤容錯技術(shù)級別也稱為系統(tǒng)容錯技術(shù)(SFT, System Fault Tolerance),大體分為三個級別:SFT-I低級磁盤容錯技術(shù),主要防止磁盤表面介質(zhì)缺陷所引起的數(shù)據(jù)丟失;SFT-II中級磁盤容錯技術(shù),主要防止磁盤驅(qū)動器和磁盤控制器故障所引起的數(shù)據(jù)丟失;SFT-III高級系統(tǒng)容錯技術(shù),常使用雙服務(wù)器,以保證在其中一臺服務(wù)器出現(xiàn)故障,甚至停止工作時,整個系統(tǒng)仍能照常運(yùn)作。第一級容錯技術(shù) 最早出現(xiàn)、最基本的容錯技術(shù),包括:雙份目錄和雙份文件分配表熱修復(fù)重定向和寫后讀校驗(yàn)雙份目錄
50、和雙份文件分配表文件目錄和文件分配表FAT是文件管理所需的關(guān)鍵數(shù)據(jù)結(jié)構(gòu),可在不同的磁盤上或同一磁盤的不同區(qū)域中,分別建立維護(hù)兩份目錄和FAT。當(dāng)其中一個目錄或FAT損壞時,系統(tǒng)便自動啟用另一個目錄和FAT,同時在磁盤的其它區(qū)域再建立新的文件目錄和FAT。每當(dāng)系統(tǒng)重新啟動時,都要對這兩份目錄和FAT進(jìn)行檢查,以保證它們的一致性。 熱修復(fù)重定向和寫后讀校驗(yàn)熱修復(fù)重定向是指,系統(tǒng)將一定的磁盤容量作為熱修復(fù)重定向區(qū),用于存放當(dāng)發(fā)現(xiàn)磁盤塊有缺陷時的待寫數(shù)據(jù),并對寫入該區(qū)的所有數(shù)據(jù)進(jìn)行登記,以便于以后對此數(shù)據(jù)進(jìn)行訪問。寫后讀校驗(yàn)是指,每次將數(shù)據(jù)寫到磁盤以后,立即從磁盤上讀出該塊數(shù)據(jù),并進(jìn)行對比。若寫入的數(shù)
51、據(jù)與讀出的數(shù)據(jù)一致,則表示寫入成功;否則,重寫數(shù)據(jù)。若重寫后兩者仍不一致,則認(rèn)為該磁盤塊有缺陷,便將該塊標(biāo)識為壞塊,相應(yīng)數(shù)據(jù)寫入熱修復(fù)重定向區(qū)中。第二級容錯技術(shù) SFT-II用于防止磁盤驅(qū)動器或磁盤控制器發(fā)生故障。包括:磁盤鏡像磁盤雙工磁盤鏡像在同一磁盤控制器上,連接兩個完全相同的磁盤驅(qū)動器,如圖。同一數(shù)據(jù)被先后寫到兩個驅(qū)動器上。主機(jī)磁盤控制器通道磁盤驅(qū)動器磁盤雙工將兩臺完全相同的磁盤驅(qū)動器連接到兩個磁盤控制器上,如圖。數(shù)據(jù)被同時寫到兩個磁盤上。主機(jī)通道磁盤驅(qū)動器磁盤控制器磁盤控制器通道磁盤雙工 vs. 磁盤鏡像磁盤雙工的成本較高;可靠性更高;對兩個磁盤的寫入是并行進(jìn)行,速度較快;在某些實(shí)現(xiàn)中
52、讀數(shù)據(jù)時,還可使用分離查找技術(shù),從響應(yīng)快的通道上取得數(shù)據(jù),加快讀取速度。 RAID技術(shù) RAID(Redundant Array of Independent/ Inexpensive Disks):獨(dú)立或廉價磁盤冗余陣列,其中,“獨(dú)立”是目前通用的一個行業(yè)術(shù)語,強(qiáng)調(diào)RAID陣列的重要性和可靠性;“廉價”是較早使用的一個術(shù)語,重在強(qiáng)調(diào)RAID磁盤陣列中采用的相對較小的、價格較便宜的磁盤。RAID技術(shù) RAID磁盤陣列技術(shù)能以較低的成本,提供大容量、快速、安全可靠的磁盤存儲系統(tǒng)。從容錯的角度講,RAID技術(shù)應(yīng)屬第二級容錯技術(shù),但其內(nèi)涵遠(yuǎn)遠(yuǎn)不止容錯。 RAID的構(gòu)成 一組可以并行工作的磁盤所構(gòu)成的磁盤陣列在磁盤子系統(tǒng)中執(zhí)行的或者在主機(jī)系統(tǒng)中執(zhí)行的磁盤陣列管理軟件。 磁盤陣列管理軟件把邏輯上連續(xù)的一組數(shù)據(jù)交叉分布存儲在磁盤陣列中的各個磁盤上,如圖物理磁盤0條帶15條帶14條帶13條帶12條帶11條帶10條帶9條帶8條帶7條帶6條帶5條帶4條帶3條帶2條帶1條帶0條帶12條帶8條帶4條帶0條帶13條帶9條帶5條帶1條帶14條帶10條帶6條帶2條帶15條
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 聯(lián)邦學(xué)習(xí)數(shù)據(jù)協(xié)作合同
- 出售叉車沖床合同范本
- 愛普生R230彩色噴墨打印機(jī)使用方法
- FIT-Choice 模型下初任中學(xué)體育教師職業(yè)選擇的影響因素分析-基于扎根理論的研究
- 2025年福建省建筑安全員-B證考試題庫及答案
- 賣煙花租賃合同范本
- 全部定制合同范本
- 南京小區(qū)園林養(yǎng)護(hù)合同范本
- 創(chuàng)作靈感法律合同范本
- (工裝)空調(diào)改造合同范本
- 稅收基礎(chǔ)知識考試題及答案
- 廣西海綿城市規(guī)劃設(shè)計(jì)導(dǎo)則征求意見稿
- 校園招聘活動策劃方案(6篇)
- 數(shù)字二維動畫課程設(shè)計(jì)
- 中國衛(wèi)生巾行業(yè)消費(fèi)形勢與競爭格局分析研究報(bào)告(2024-2030版)
- 醫(yī)院檢驗(yàn)科生物安全程序文件
- 統(tǒng)編版《道德與法治》六年級下冊第5課《應(yīng)對自然災(zāi)害》精美課件(第1課時)
- 新部編人教版五年級道德與法治下冊全冊完整課件
- 第12課 實(shí)現(xiàn)人生價值-【中職專用】2024年中職思想政治《哲學(xué)與人生》金牌課件(高教版2023·基礎(chǔ)模塊)
- 幼兒園教師資格考試面試2024年下半年試題及解答
- HG∕T 3792-2014 交聯(lián)型氟樹脂涂料
評論
0/150
提交評論