操作系統(tǒng)講義-第五章_第1頁
操作系統(tǒng)講義-第五章_第2頁
操作系統(tǒng)講義-第五章_第3頁
操作系統(tǒng)講義-第五章_第4頁
操作系統(tǒng)講義-第五章_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第五章設(shè)備管理2023年2月6日1操作系統(tǒng)講義主要內(nèi)容

5.1I/O系統(tǒng)

5.2I/O控制方式

5.3緩沖管理

5.4I/O軟件

5.5設(shè)備分配5.6磁盤存儲(chǔ)器的管理2023年2月6日2第五章設(shè)備管理設(shè)備管理概述在計(jì)算機(jī)系統(tǒng)中,除了需要一個(gè)或多個(gè)處理機(jī),一個(gè)或多個(gè)存儲(chǔ)器模塊外,還需要用于實(shí)現(xiàn)信息輸入、輸出和存儲(chǔ)的設(shè)備。設(shè)備管理程序便是用于對(duì)這類設(shè)備進(jìn)行控制和管理的一組程序。由于I/O設(shè)備不僅種類繁多,而且它們的特性和操作方式,往往相差甚大,所以使得設(shè)備管理成為操作系統(tǒng)中最繁雜且與硬件緊密相關(guān)的部分。主要對(duì)象:I/O設(shè)備,以及設(shè)備控制器和通道。

2023年2月6日3第五章設(shè)備管理設(shè)備管理概述緩沖管理設(shè)備分配設(shè)備處理虛擬設(shè)備實(shí)現(xiàn)設(shè)備獨(dú)立性設(shè)備管理的主要功能包括:設(shè)備管理的主要任務(wù):完成用戶提出的I/O請(qǐng)求,提高I/O

速率以及提高I/O設(shè)備的利用率。

2023年2月6日4第五章設(shè)備管理5.1I/O系統(tǒng)

I/O系統(tǒng)是用于實(shí)現(xiàn)數(shù)據(jù)輸入、輸出及數(shù)據(jù)存儲(chǔ)的系統(tǒng)。1.I/O設(shè)備按設(shè)備的使用特性可以分成:存儲(chǔ)設(shè)備,如外存;輸入/輸出設(shè)備,如鍵盤、鼠標(biāo)、掃描儀和打印機(jī)等等。按傳輸速率可以分成:低速設(shè)備:每秒幾個(gè)字節(jié)到數(shù)百個(gè)字節(jié),如鍵盤、鼠標(biāo)等;中速設(shè)備:每秒數(shù)千個(gè)字節(jié)到數(shù)十萬個(gè)字節(jié),如打印機(jī);高速設(shè)備,每秒數(shù)十萬字節(jié)到千兆字節(jié),如磁帶機(jī)、磁盤機(jī)等。2023年2月6日5第五章設(shè)備管理5.1I/O系統(tǒng)1.I/O設(shè)備按信息交換的單位可以分成:塊設(shè)備,如磁盤;字符設(shè)備,如打印機(jī)。按設(shè)備的共享屬性可以分成:獨(dú)占設(shè)備:一段時(shí)間只允許一個(gè)用戶訪問,如打印機(jī);共享設(shè)備:一段時(shí)間內(nèi)允許多個(gè)進(jìn)程同時(shí)訪問,如磁盤;虛擬設(shè)備:將一臺(tái)獨(dú)占設(shè)備變成若干臺(tái)邏輯設(shè)備,如虛擬內(nèi)存。2023年2月6日6第五章設(shè)備管理5.1I/O系統(tǒng)1.I/O設(shè)備設(shè)備與控制器的接口:設(shè)備不直接與CPU進(jìn)行通信,而是與設(shè)備控制器通信,有三種類型的信號(hào):數(shù)據(jù)信號(hào)線:用于在設(shè)備和設(shè)備控制器之間傳送數(shù)據(jù)信號(hào);控制信號(hào)線:作為由設(shè)備控制器向I/O設(shè)備發(fā)送控制信號(hào)時(shí)的通路;狀態(tài)信號(hào)線:用于傳送指示設(shè)備當(dāng)前狀態(tài)的信號(hào)。I/O設(shè)備緩沖轉(zhuǎn)換器控制邏輯信號(hào)數(shù)據(jù)至設(shè)備控制器數(shù)據(jù)信號(hào)線狀態(tài)信號(hào)線控制信號(hào)線2023年2月6日7第五章設(shè)備管理5.1I/O系統(tǒng)2.設(shè)備控制器設(shè)備控制器的基本功能接收和識(shí)別命令:CPU可以向控制器發(fā)送不同的命令,設(shè)備控制器負(fù)責(zé)接收并識(shí)別這些命令;數(shù)據(jù)交換:實(shí)現(xiàn)CPU與控制器間、控制器與設(shè)備間的數(shù)據(jù)交換;標(biāo)識(shí)和報(bào)告設(shè)備狀態(tài):控制器應(yīng)記下設(shè)備的狀態(tài)供CPU了解;地址識(shí)別:系統(tǒng)中的每個(gè)設(shè)備也有一個(gè)地址,設(shè)備控制器必須能夠識(shí)別它所控制的每個(gè)設(shè)備的地址;數(shù)據(jù)緩沖:I/O設(shè)備的速率較低而CPU和內(nèi)存的速率很高,所以控制器中必須設(shè)置緩沖器,輸出時(shí),緩沖器暫存由主機(jī)高速傳來的數(shù)據(jù),然后以I/O設(shè)備具有的速率將緩沖器中的數(shù)據(jù)傳送給I/O設(shè)備,輸入時(shí)相反;差錯(cuò)控制:對(duì)由I/O設(shè)備傳送來的數(shù)據(jù)進(jìn)行差錯(cuò)檢測(cè),若發(fā)現(xiàn)傳送中出現(xiàn)了錯(cuò)誤,通常還要向CPU報(bào)告,CPU將本次傳送來的數(shù)據(jù)作廢,重新進(jìn)行傳送。主要職責(zé)是控制I/O設(shè)備,以實(shí)現(xiàn)I/O設(shè)備和計(jì)算機(jī)之間的數(shù)據(jù)交換。2023年2月6日8第五章設(shè)備管理5.1I/O系統(tǒng)2.設(shè)備控制器設(shè)備控制器的組成設(shè)備控制器與處理機(jī)的接口:實(shí)現(xiàn)CPU與設(shè)備控制器之間的通信;設(shè)備控制器與設(shè)備的接口:控制器中有一個(gè)或者多個(gè)設(shè)備接口,每個(gè)接口連接一個(gè)設(shè)備;I/O邏輯:用于實(shí)現(xiàn)對(duì)設(shè)備的控制。CPU與控制器接口數(shù)據(jù)寄存器控制/狀態(tài)寄存器數(shù)據(jù)狀態(tài)控制數(shù)據(jù)線地址線控制線I/O邏輯控制器與設(shè)備接口1控制器與設(shè)備接口i……數(shù)據(jù)狀態(tài)控制控制器與設(shè)備接口2023年2月6日9第五章設(shè)備管理5.1I/O系統(tǒng)3.I/O通道I/O通道設(shè)備的引入設(shè)備控制器能大大減少CPU對(duì)I/O的干預(yù),但是當(dāng)主機(jī)配置的外設(shè)很多時(shí),CPU的負(fù)擔(dān)仍然很重,所以在CPU和設(shè)備控制器之間設(shè)置通道,其目的是為了建立獨(dú)立的I/O操作,不僅使數(shù)據(jù)的傳送能獨(dú)立于CPU,而且能對(duì)I/O操作的組織、管理和結(jié)束處理盡量獨(dú)立,使得CPU有更多的時(shí)間去進(jìn)行數(shù)據(jù)處理。2023年2月6日10第五章設(shè)備管理5.1I/O系統(tǒng)3.I/O通道通道的類型字節(jié)多路通道:按字節(jié)交叉方式工作的通道,其數(shù)量在幾十到數(shù)百個(gè),每個(gè)子通道連接一臺(tái)I/O設(shè)備,并控制該設(shè)備的I/O操作;數(shù)組選擇通道:字節(jié)多路通道不適于連接高速設(shè)備,這推動(dòng)了按數(shù)組方式進(jìn)行數(shù)據(jù)傳送的數(shù)組選擇通道,這種通道可以連接多臺(tái)高速設(shè)備,但是它只含有一個(gè)分配型子通道,一段時(shí)間只能控制一臺(tái)設(shè)備,所以通道利用率仍然很低;數(shù)組多路通道:將數(shù)組選擇通道傳輸速率高和字節(jié)多路通道能使各子通道分時(shí)并行操作的優(yōu)點(diǎn)結(jié)合形成,既具有很高的數(shù)據(jù)傳輸速率,又能獲得令人滿意的通道利用率。2023年2月6日11第五章設(shè)備管理5.1I/O系統(tǒng)3.I/O通道瓶頸問題

存儲(chǔ)器通道1通道2控制器1控制器2控制器3控制器4設(shè)備1設(shè)備2設(shè)備3設(shè)備4設(shè)備5設(shè)備6設(shè)備7存儲(chǔ)器通道1通道2控制器1控制器2I/O設(shè)備I/O設(shè)備I/O設(shè)備I/O設(shè)備2023年2月6日12第五章設(shè)備管理5.1I/O系統(tǒng)4.總線系統(tǒng)ISA和EISA總線ISA總線:1984年推出的80286型微機(jī)的總線結(jié)構(gòu),帶寬8位,最高傳輸速率2Mb/s。EISA總線:20世紀(jì)80年代末推出,帶寬32位,傳輸速率32Mb/s,可連接12臺(tái)外部設(shè)備。局部總線(LocalBus)VESA總線;低價(jià)位占領(lǐng)市場(chǎng),帶寬32位,最高傳輸速率132Mb/s,廣泛應(yīng)用于486微機(jī);缺點(diǎn):只能連接2-4臺(tái)設(shè)備,無緩沖;PCI總線:支持Pentium系列芯片,1992和1995分別提出PCI總線的V1.0和V2.1規(guī)范,后者支持64位系統(tǒng),有數(shù)據(jù)緩沖,能連接10種外設(shè),最大傳輸速率132Mb/s。CPU磁盤控制器存儲(chǔ)器打印機(jī)控制器其它控制器…磁盤控制器打印機(jī)系統(tǒng)總線2023年2月6日13第五章設(shè)備管理5.2

I/O控制方式用于早期的計(jì)算機(jī)系統(tǒng),無中斷機(jī)構(gòu),處理機(jī)對(duì)設(shè)備的控制采取忙-等待方式,由于CPU的高速性和I/O設(shè)備的低速性,致使CPU的絕大部分時(shí)間都處于等待I/O設(shè)備完成數(shù)據(jù)I/O的循環(huán)測(cè)試中,造成對(duì)CPU的極大浪費(fèi),造成這種浪費(fèi)的原因就是CPU無中斷機(jī)構(gòu)。1.程序I/O方式在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,毫無例外地引入了中斷機(jī)構(gòu),當(dāng)某進(jìn)程要啟動(dòng)某個(gè)I/O設(shè)備時(shí),便由CPU向相應(yīng)的設(shè)備控制器發(fā)出一條I/O命令,然后立即返回執(zhí)行原來的任務(wù),此時(shí)設(shè)備控制器按照該命令的要求去控制指定的I/O設(shè)備,CPU和I/O設(shè)備并行地工作。在I/O設(shè)備輸入每個(gè)數(shù)據(jù)的過程中,由于無需CPU干預(yù),因而可使CPU與I/O設(shè)備并行工作,僅當(dāng)輸完一個(gè)數(shù)據(jù)時(shí),才需要CPU花費(fèi)極短的時(shí)間去做些中斷處理,所以這種方式可以使CPU和I/O設(shè)備同時(shí)處于忙碌狀態(tài),從而提高了整個(gè)系統(tǒng)的資源利用率和吞吐量。2.中斷驅(qū)動(dòng)I/O方式2023年2月6日14第五章設(shè)備管理5.2

I/O控制方式程序I/O方式中斷驅(qū)動(dòng)I/O方式向I/O控制器發(fā)讀指令讀I/O控制器的狀態(tài)從I/O控制器中讀入字向存儲(chǔ)器中寫字檢查狀態(tài)?傳送完成?下一條指令完成CPU->內(nèi)存I/O->CPU出錯(cuò)I/O->CPUCPU->I/O就緒未就緒未完向I/O控制器發(fā)讀指令讀I/O控制器的狀態(tài)從I/O控制器中讀入字向存儲(chǔ)器中寫字檢查狀態(tài)?傳送完成?下一條指令完成CPU->內(nèi)存I/O->CPU出錯(cuò)I/O->CPUCPU->I/O就緒未完CPU做其它事中斷2023年2月6日15第五章設(shè)備管理5.2I/O控制方式DMA方式(DirectMemoryAccess)的引入針對(duì)中斷驅(qū)動(dòng)I/O方式以字(節(jié))為單位進(jìn)行I/O的,每當(dāng)完成一個(gè)字(節(jié))的I/O時(shí),控制器就要向CPU請(qǐng)求一次中斷,這種方式應(yīng)用于塊設(shè)備是極其低效的。

3.直接存儲(chǔ)器訪問(DMA)I/O控制方式DMA方式的特點(diǎn)數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊;所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存的,或者相反;僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí),才需CPU干預(yù),整塊數(shù)據(jù)的傳送是在控制器的控制下完成的。DMA方式的優(yōu)點(diǎn)較之中斷驅(qū)動(dòng)方式,成百倍地減少了CPU對(duì)I/O的干預(yù),進(jìn)一步提高了CPU和I/O設(shè)備的并行操作度。向I/O控制器發(fā)布讀塊命令下一條指令讀DMA控制器的狀態(tài)DMA->CPUCPU->DMACPU做其它事中斷2023年2月6日16第五章設(shè)備管理5.2I/O控制方式DMA控制器的組成主機(jī)與DMA控制器的接口DMA控制器與塊設(shè)備的接口I/O控制邏輯

3.直接存儲(chǔ)器訪問DMA方式DMA控制器設(shè)置如下四類寄存器:

命令/狀態(tài)寄存器CR

內(nèi)存地址寄存器MAR

數(shù)據(jù)寄存器DR

數(shù)據(jù)計(jì)數(shù)器DC系統(tǒng)總線CPU內(nèi)存主機(jī)-控制器接口命令DRMARDCCRI/O控制邏輯…控制器-塊設(shè)備接口countDMA控制器2023年2月6日17第五章設(shè)備管理5.2I/O控制方式DMA的工作過程當(dāng)CPU從磁盤讀入一個(gè)數(shù)據(jù)塊時(shí),便向磁盤控制器發(fā)送讀指令,該命令被送到其中的命令寄存器,同時(shí),還須發(fā)送本次要將數(shù)據(jù)讀入的內(nèi)存起始地址,將地址讀入內(nèi)存地址寄存器MAR中,本次要讀數(shù)據(jù)的字節(jié)數(shù)讀入數(shù)據(jù)計(jì)數(shù)器DC,將磁盤中的源地址送到DMA控制器的I/O控制邏輯上,啟動(dòng)DMA控制器進(jìn)行數(shù)據(jù)傳送,CPU可以去處理其他任務(wù)。

3.直接存儲(chǔ)器訪問DMA方式設(shè)置MAR和DC初值啟動(dòng)DMA傳送命令挪用存儲(chǔ)器周期傳送數(shù)據(jù)字存儲(chǔ)器地址增1字計(jì)數(shù)寄存器減1DC=0?請(qǐng)求中斷否是在繼續(xù)執(zhí)行用戶程序的同時(shí),準(zhǔn)備下一次傳送2023年2月6日18第五章設(shè)備管理5.2I/O控制方式I/O通道控制方式的引入

DMA方式相比中斷方式顯著減少了CPU的干預(yù),并且以數(shù)據(jù)塊為傳送單位,但CPU每發(fā)出一條I/O指令,也只能讀/寫一個(gè)連續(xù)的數(shù)據(jù)塊,如果需要一次去讀多個(gè)數(shù)據(jù)塊,并且分別傳送到不同的內(nèi)存區(qū),必須由CPU分別發(fā)出多條I/O指令,并且進(jìn)行多次中斷處理才能完成。為此,引入通道方式,可以進(jìn)一步減少CPU的干預(yù),可以實(shí)現(xiàn)CPU、通道和I/O設(shè)備的并行操作,從而更有效地提高整個(gè)系統(tǒng)的資源利用率。

4.I/O通道控制方式2023年2月6日19第五章設(shè)備管理5.2I/O控制方式

4.I/O通道控制方式通道程序通道通過執(zhí)行通道程序,并與設(shè)備控制器共同實(shí)現(xiàn)對(duì)I/O設(shè)備的控制。通道程序是由一系列通道指令(通道命令)所構(gòu)成,通道指令包含以下信息:操作碼:規(guī)定了指令所執(zhí)行的操作,如讀、寫、控制等等;內(nèi)存地址:標(biāo)明字符送入內(nèi)存(讀操作)和從內(nèi)存取出(寫操作)時(shí)的內(nèi)存首址;計(jì)數(shù):表示本條指令所要讀(或?qū)懀?shù)據(jù)的字節(jié)數(shù);通道程序結(jié)束位P:表示通道程序是否結(jié)束,P=1表示本條指令是通道程序的最后一條指令;記錄結(jié)束標(biāo)志R:R=0表示本通道指令與下一條指令所處理的數(shù)據(jù)是同屬于一條記錄。2023年2月6日20第五章設(shè)備管理5.3

緩沖管理

1.緩沖的引入緩和CPU與I/O設(shè)備間速度不匹配的矛盾凡是數(shù)據(jù)到達(dá)速率與其離去速率不同的地方,都可以設(shè)置緩沖區(qū)。減少對(duì)CPU的中斷頻率,放寬對(duì)CPU中斷響應(yīng)時(shí)間的限制提高CPU和I/O設(shè)備之間的并行性緩沖的引入可顯著地提高CPU和I/O設(shè)備間的并行操作度,提高系統(tǒng)的吞吐量和設(shè)備的利用率。9.6kb/s1位緩沖(a)(a)9.6kb/s送內(nèi)存(b)8位緩沖寄存器9.6kb/s送內(nèi)存(c)8位緩沖寄存器2023年2月6日21第五章設(shè)備管理5.3

緩沖管理

2.單緩沖和雙緩沖單緩沖凡是數(shù)據(jù)到達(dá)速率與其離去速率不同的地方,都可以設(shè)置緩沖區(qū)。雙緩沖設(shè)備輸入時(shí),先將數(shù)據(jù)送入第一個(gè)緩沖區(qū),裝滿后再轉(zhuǎn)向第二個(gè)緩沖區(qū),此時(shí)操作系統(tǒng)可以從第一個(gè)緩沖區(qū)移出數(shù)據(jù),送入用戶進(jìn)程,接著由CPU對(duì)數(shù)據(jù)進(jìn)行計(jì)算。工作區(qū)用戶進(jìn)程緩沖區(qū)1操作系統(tǒng)緩沖區(qū)2I/O設(shè)備工作區(qū)用戶進(jìn)程緩沖區(qū)I/O設(shè)備輸入(T)傳送(M)處理(C)2023年2月6日22第五章設(shè)備管理5.3

緩沖管理

3.循環(huán)緩沖循環(huán)緩沖的組成(1)多個(gè)緩沖區(qū):用于裝輸入數(shù)據(jù)的空緩沖區(qū)R,已裝滿數(shù)據(jù)的緩沖區(qū)G以及計(jì)算進(jìn)程正在使用的現(xiàn)行工作緩沖區(qū)C。(2)多個(gè)指針:用于指示計(jì)算進(jìn)程下一個(gè)可用緩沖區(qū)的指針Nextg,指示輸入進(jìn)程下次可用的空緩沖區(qū)R的指針Nexti,以及用于指示計(jì)算進(jìn)程正在使用的緩沖區(qū)C的指針Current。循環(huán)緩沖的使用(1)Getbuf過程:將指針Nextg所指示的緩沖區(qū)給進(jìn)程,把它改為現(xiàn)行工作緩沖區(qū),Nextg移向下一個(gè)G緩沖區(qū);(2)Releasebuf過程:計(jì)算進(jìn)程把C緩沖區(qū)中的數(shù)據(jù)提取完畢時(shí),調(diào)用Releasebuf釋放緩沖區(qū),將當(dāng)前工作緩沖區(qū)C改為空緩沖區(qū)。進(jìn)程同步(1)Nexti指針追上Nextg:輸入進(jìn)程輸入數(shù)據(jù)速度大于計(jì)算進(jìn)程處理數(shù)據(jù)速度,緩沖區(qū)已裝滿,輸入進(jìn)程應(yīng)阻塞,直到計(jì)算進(jìn)程把某個(gè)緩沖區(qū)數(shù)據(jù)全部提取完;(2)Nextg指針追趕上Nexti指針:意味著輸入進(jìn)程的速度低于計(jì)算進(jìn)程處理數(shù)據(jù)的速度,緩沖區(qū)都被抽空,計(jì)算進(jìn)程應(yīng)阻塞,直至輸入進(jìn)程又裝滿某個(gè)緩沖區(qū)。2023年2月6日23第五章設(shè)備管理5.3

緩沖管理

4.緩沖池緩沖池的組成緩沖池包括三種類型的緩沖區(qū):空緩沖區(qū)、裝滿輸入數(shù)據(jù)的緩沖區(qū)以及裝滿輸出數(shù)據(jù)的緩沖區(qū);三個(gè)隊(duì)列:空緩沖隊(duì)列emq,輸入隊(duì)列inq,輸出隊(duì)列outg;四個(gè)工作緩沖區(qū):用于收容輸入數(shù)據(jù)的工作緩沖區(qū)hin,用于提取輸入數(shù)據(jù)的工作緩沖區(qū)sin,用于收容輸出數(shù)據(jù)的工作緩沖區(qū)hout,用于提取輸出數(shù)據(jù)的工作緩沖區(qū)sout。Getbuf過程和Putbuf過程

ProcedureGetbuf(type)beginWait(RS(type));Wait(MS(type));B(number)=Takebuf(type);Signal(MS(type));end

ProcedurePutbuf(type,number)beginWait(MS(type));

Addbuf(type,number);Signal(MS(type));Signal(RS(type));end2023年2月6日24第五章設(shè)備管理5.3

緩沖管理

4.緩沖池緩沖區(qū)的工作方式(1)收容輸入:當(dāng)輸入進(jìn)程需要輸入數(shù)據(jù)時(shí),調(diào)用Getbuf(emq)過程,把空緩沖隊(duì)列emq的隊(duì)首摘下一空緩沖區(qū),作為收容輸入的工作緩沖區(qū)hin,裝滿后調(diào)用Putbuf(inq,hin),將緩沖區(qū)掛在輸入隊(duì)列inq上;(2)提取輸入:計(jì)算進(jìn)程需要輸入數(shù)據(jù)時(shí),調(diào)用Getbuf(inq)過程,從輸入隊(duì)列inq隊(duì)首取得一個(gè)緩沖區(qū),作為提取輸入的緩沖區(qū);(3)收容輸出:計(jì)算進(jìn)程需要輸出數(shù)據(jù)時(shí),調(diào)用Getbuf(emq)過程從空緩沖區(qū)emq的隊(duì)首取得空緩沖區(qū);(4)提取輸出:由輸出進(jìn)程調(diào)用Getbuf(outq)過程,從輸出隊(duì)列隊(duì)首取得一裝滿輸出數(shù)據(jù)的緩沖區(qū),作為提取輸出工作緩沖區(qū)sout。用戶程序收容輸入緩沖池hinsoutsinhout提取輸出收容輸出收容輸出提取輸入2023年2月6日25第五章設(shè)備管理5.4

I/O軟件

1.I/O軟件的設(shè)計(jì)目標(biāo)和原則與具體設(shè)備無關(guān)

I/O軟件應(yīng)該屏蔽設(shè)備的具體細(xì)節(jié),其功能不受具體I/O設(shè)備的影響。緩沖技術(shù)

I/O軟件應(yīng)能屏蔽塊設(shè)備與字符設(shè)備的緩沖差異??傮w設(shè)計(jì)目標(biāo)是高效率和通用性,前者是確保I/O設(shè)備與CPU的并發(fā)性,以提高資源的利用率;后者是指盡可能地提供簡單抽象、清晰而統(tǒng)一的接口,采用標(biāo)準(zhǔn)的方法,來管理所有設(shè)備以及所需的I/O操作。統(tǒng)一命名對(duì)各類設(shè)備采取預(yù)先設(shè)計(jì)的、統(tǒng)一的邏輯名稱進(jìn)行命名,所有軟件都以邏輯名稱訪問設(shè)備。對(duì)錯(cuò)誤的處理對(duì)于錯(cuò)誤的處理,盡量在接近硬件的層面處理。設(shè)備的分配和釋放

I/O軟件必須能夠同時(shí)妥善解決獨(dú)占設(shè)備和共享設(shè)備帶來的問題。I/O控制方式針對(duì)不同傳輸速率的設(shè)備,綜合系統(tǒng)效率和系統(tǒng)代價(jià)因素,合理選擇I/O控制方式。2023年2月6日26第五章設(shè)備管理5.4

I/O軟件

1.I/O軟件的設(shè)計(jì)目標(biāo)和原則用戶層軟件:實(shí)現(xiàn)和用戶交互的接口。設(shè)備獨(dú)立性軟件:負(fù)責(zé)實(shí)現(xiàn)與設(shè)備驅(qū)動(dòng)器的統(tǒng)一接口、設(shè)備命名、保護(hù)以及設(shè)備的分配和釋放。設(shè)備驅(qū)動(dòng)程序:與硬件直接相關(guān),實(shí)現(xiàn)系統(tǒng)指令,驅(qū)動(dòng)I/O設(shè)備工作。中斷處理程序:保存被中斷進(jìn)程的CPU環(huán)境,轉(zhuǎn)入相應(yīng)的中斷處理程序,處理完再恢復(fù)現(xiàn)場(chǎng)并返回被中斷進(jìn)程。

層次結(jié)構(gòu)的I/O軟件通??梢园凑账膫€(gè)層次組織:用戶層軟件設(shè)備獨(dú)立性軟件設(shè)備驅(qū)動(dòng)程序中斷處理程序硬件I/O應(yīng)答I/O請(qǐng)求產(chǎn)生I/O請(qǐng)求、格式化I/O、Spooling映射、保護(hù)、分塊、緩沖、分配設(shè)置設(shè)備寄存器,檢查寄存器狀態(tài)執(zhí)行I/O操作2023年2月6日27第五章設(shè)備管理5.4

I/O軟件

2.中斷處理程序喚醒被阻塞的驅(qū)動(dòng)(程序)進(jìn)程保護(hù)被中斷進(jìn)程的CPU環(huán)境轉(zhuǎn)入相應(yīng)的設(shè)備處理程序中斷處理恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)

中斷處理程序的主要工作包括進(jìn)行進(jìn)程上下文切換,對(duì)處理中斷信號(hào)源進(jìn)行測(cè)試,讀取設(shè)備狀態(tài)和修改進(jìn)程狀態(tài),它包括如下步驟:喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程中斷請(qǐng)求信號(hào)對(duì)被中斷進(jìn)程的CPU環(huán)境進(jìn)行保護(hù)分析中斷原因,轉(zhuǎn)入相應(yīng)的中斷處理程序終端中斷處理程序打印機(jī)中斷處理程序磁盤中斷處理程序…恢復(fù)被中斷進(jìn)程的CPU現(xiàn)場(chǎng)返回被中斷的進(jìn)程,繼續(xù)執(zhí)行2023年2月6日28第五章設(shè)備管理5.4

I/O軟件

3.設(shè)備驅(qū)動(dòng)程序

設(shè)備驅(qū)動(dòng)程序又稱為設(shè)備處理程序,它是I/O進(jìn)程與設(shè)備控制器之間的通信程序,其主要任務(wù)是接受上層軟件發(fā)來的抽象I/O請(qǐng)求,把它轉(zhuǎn)換為具體要求,發(fā)給設(shè)備控制器,啟動(dòng)設(shè)備執(zhí)行。設(shè)備處理方式根據(jù)在設(shè)備處理時(shí)是否設(shè)置進(jìn)程及設(shè)置什么樣的進(jìn)程,把設(shè)備處理方式分成:(1)為每一類設(shè)備設(shè)置一個(gè)進(jìn)程,專門用于執(zhí)行這類設(shè)備的I/O操作;(2)在整個(gè)系統(tǒng)設(shè)置一個(gè)I/O進(jìn)程,專門用于執(zhí)行系統(tǒng)中所有設(shè)備的I/O操作;(3)不設(shè)置專門的設(shè)備處理進(jìn)程,只為各類設(shè)備設(shè)置相應(yīng)的設(shè)備處理程序(模塊)供用戶進(jìn)程或系統(tǒng)進(jìn)程調(diào)用。2023年2月6日29第五章設(shè)備管理5.4

I/O軟件

3.設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序的功能(1)接收由設(shè)備獨(dú)立性軟件發(fā)來的命令和參數(shù),并且將其轉(zhuǎn)化為具體需求;(2)檢查用戶I/O請(qǐng)求的合法性;(3)發(fā)出I/O命令,若I/O設(shè)備空閑,啟動(dòng);若I/O設(shè)備忙碌,將請(qǐng)求掛在設(shè)備隊(duì)列;(4)及時(shí)響應(yīng)控制器或通道發(fā)來的中斷請(qǐng)求;(5)應(yīng)能夠根據(jù)用戶的I/O請(qǐng)求,自動(dòng)地構(gòu)成通道程序。2023年2月6日30第五章設(shè)備管理5.4

I/O軟件

3.設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序的特點(diǎn)(1)它是在請(qǐng)求I/O的進(jìn)程和設(shè)備控制器之間的一個(gè)通信和轉(zhuǎn)換程序;(2)它與設(shè)備控制器和I/O設(shè)備的硬件特性緊密相關(guān),對(duì)不同類的設(shè)備要配置不同的驅(qū)動(dòng)程序;(3)與I/O設(shè)備所采用的I/O控制方式緊密相關(guān);(4)與硬件緊密相關(guān),其中的一部分必須用匯編語言書寫;(5)它應(yīng)該允許可重入;(6)它不允許系統(tǒng)調(diào)用,但可以允許對(duì)某些內(nèi)核過程的調(diào)用。2023年2月6日31第五章設(shè)備管理5.4

I/O軟件

3.設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序的處理過程1)將抽象的要求轉(zhuǎn)換為具體要求;

2)檢查I/O請(qǐng)求的合法性;

3)讀出和檢查設(shè)備的狀態(tài);

4)傳送必要的參數(shù);

5)工作方式的設(shè)置;

6)啟動(dòng)I/O設(shè)備。2023年2月6日32第五章設(shè)備管理5.4

I/O軟件

4.設(shè)備獨(dú)立性設(shè)備分配時(shí)的靈活性當(dāng)程序(進(jìn)程)以物理設(shè)備名稱來請(qǐng)求指定設(shè)備時(shí),如果設(shè)備已經(jīng)分配或正在檢修,則會(huì)阻塞進(jìn)程;如果采用邏輯設(shè)備名稱來訪問,系統(tǒng)會(huì)給它分配另一臺(tái)設(shè)備。易于實(shí)現(xiàn)I/O重定向是指用于I/O操作的設(shè)備可以更換(即重定向),而不必改變應(yīng)用程序。又稱為設(shè)備無關(guān)性,其含義:應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。2023年2月6日33第五章設(shè)備管理5.4

I/O軟件

4.設(shè)備獨(dú)立性設(shè)備獨(dú)立性軟件的功能(1)執(zhí)行所有設(shè)備公有操作:對(duì)獨(dú)立設(shè)備的分配和回收;邏輯設(shè)備到物理設(shè)備的映射;設(shè)備保護(hù);緩沖管理;差錯(cuò)控制;提供獨(dú)立于設(shè)備的邏輯塊。(2)向用戶層(文件層)軟件提供統(tǒng)一的接口。

5.設(shè)備獨(dú)立性軟件邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)通過邏輯設(shè)備表LUT的設(shè)置來實(shí)現(xiàn)。是指在用戶層的一小部分I/O軟件,包括與用戶程序鏈接在一起的庫函數(shù),以及完全運(yùn)行于內(nèi)核之外的一些程序。2023年2月6日34第五章設(shè)備管理5.5

設(shè)備分配

1.設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)控制器控制表、通道控制表和系統(tǒng)設(shè)備表設(shè)備控制表DCTDCT1設(shè)備控制表集合DCT2DCTn設(shè)備類型:type設(shè)備標(biāo)志符:deviceid設(shè)備狀態(tài):等待/不等待忙/閑指向控制器表的指針重復(fù)執(zhí)行次數(shù)或時(shí)間設(shè)備隊(duì)列的隊(duì)首指針控制器標(biāo)識(shí)符:controllerid控制器狀態(tài):忙/閑與控制器連接的通道表指針控制器隊(duì)列的隊(duì)首指針控制器隊(duì)列的隊(duì)尾指針(a)控制器表COCT通道標(biāo)識(shí)符:channelid通道狀態(tài):忙/閑與通道連接的控制器表指針通道隊(duì)列的隊(duì)首指針通道隊(duì)列的隊(duì)尾指針(b)通道表CHCT設(shè)備類設(shè)備標(biāo)識(shí)符DCT驅(qū)動(dòng)程序入口表目1…表目i…(c)系統(tǒng)設(shè)備表SDT2023年2月6日35第五章設(shè)備管理5.5

設(shè)備分配

2.設(shè)備分配時(shí)應(yīng)考慮的因素三種設(shè)備分配策略獨(dú)占設(shè)備:采用獨(dú)享分配策略,即將一個(gè)設(shè)備分配給某進(jìn)程后,便由該進(jìn)程獨(dú)占,直到該進(jìn)程完成或釋放該設(shè)備;共享設(shè)備:可同時(shí)分配給多個(gè)進(jìn)程使用,但必須合理調(diào)度;可虛擬設(shè)備:一臺(tái)可虛擬設(shè)備是可共享的,可以把它同時(shí)分配給多個(gè)進(jìn)程使用,并且對(duì)訪問該物理設(shè)備的先后次序進(jìn)行控制。2023年2月6日36第五章設(shè)備管理5.5

設(shè)備分配

2.設(shè)備分配時(shí)應(yīng)考慮的因素設(shè)備分配算法(1)先來先服務(wù):根據(jù)諸進(jìn)程對(duì)某設(shè)備提出請(qǐng)求的先后順序。(2)優(yōu)先級(jí)高者優(yōu)先:優(yōu)先滿足進(jìn)程提出的優(yōu)先權(quán)高的I/O請(qǐng)求。設(shè)備分配的安全性(1)安全分配方式這種分配方式中,每當(dāng)進(jìn)程發(fā)出I/O請(qǐng)求后,便進(jìn)入阻塞狀態(tài),直到I/O操作完成時(shí)才被喚醒,這樣就摒棄了死鎖的四個(gè)必要條件之一“請(qǐng)求和保持”條件,從而使得設(shè)備分配是安全的;(2)不安全分配方式這種分配方式中,進(jìn)程發(fā)出I/O請(qǐng)求后繼續(xù)運(yùn)行,需要時(shí)又發(fā)出第二個(gè)I/O請(qǐng)求、第三個(gè)I/O請(qǐng)求等等,只有當(dāng)請(qǐng)求的設(shè)備被其它進(jìn)程占用時(shí)才會(huì)阻塞。2023年2月6日37第五章設(shè)備管理5.5

設(shè)備分配

3.獨(dú)占設(shè)備的分配程序設(shè)備分配程序的改進(jìn)(1)增加設(shè)備的獨(dú)立性為了獲得設(shè)備獨(dú)立性,進(jìn)程應(yīng)使用邏輯設(shè)備名請(qǐng)求I/O;(2)考慮多通路情況為了防止I/O系統(tǒng)中出現(xiàn)“瓶頸”現(xiàn)象,采用多通路的I/O系統(tǒng)結(jié)構(gòu)?;镜脑O(shè)備分配程序分配設(shè)備:根據(jù)I/O請(qǐng)求中的物理設(shè)備名,通過查找系統(tǒng)設(shè)備表SDT,找到該設(shè)備的DCT,選擇空閑的同時(shí)不會(huì)使系統(tǒng)進(jìn)入不安全狀態(tài)的設(shè)備分配給請(qǐng)求進(jìn)程;分配控制器:在DCT中找出與該設(shè)備連接的控制器的COCT,如不忙,則分配;分配通道:在COCT中找到與該控制器連接的通道的CHCT,如不忙,則分配。2023年2月6日38第五章設(shè)備管理5.5

設(shè)備分配

4.SPOOLING技術(shù)為了緩和CPU的高速性與I/O設(shè)備的低速性間的矛盾引入的脫機(jī)輸入、脫機(jī)輸出技術(shù)。該技術(shù)利用專門的外圍控制機(jī),實(shí)現(xiàn)數(shù)據(jù)在低速I/O設(shè)備和高速磁盤之間的數(shù)據(jù)傳送,此時(shí)外圍操作可以與CPU對(duì)數(shù)據(jù)的處理同時(shí)進(jìn)行,這種聯(lián)機(jī)情況下的同時(shí)外圍操作稱作SPOOLING(SimultaneousPeriphernalOperatingOnLine),或稱為假脫機(jī)操作。SPOOLING系統(tǒng)的特點(diǎn)(1)提高了I/O的速度;(2)將獨(dú)占設(shè)備改造成共享設(shè)備;(3)實(shí)現(xiàn)了虛擬設(shè)備功能。2023年2月6日39第五章設(shè)備管理5.5

設(shè)備分配SPOOLING系統(tǒng)的組成(1)輸入井和輸出井;(2)輸入緩沖區(qū)和輸出緩沖區(qū);(3)輸入進(jìn)程SPi和輸出進(jìn)程SPo。磁盤輸入緩沖區(qū)Bi輸出緩沖區(qū)Bo輸入井輸出井輸入進(jìn)程SPi輸出進(jìn)程SPo輸入設(shè)備輸出設(shè)備

4.SPOOLING技術(shù)2023年2月6日40第五章設(shè)備管理5.6

磁盤存儲(chǔ)器的管理數(shù)據(jù)的組織和格式磁盤設(shè)備可包括一或多個(gè)物理盤片;每個(gè)盤片分一個(gè)或兩個(gè)存儲(chǔ)面;每個(gè)存儲(chǔ)面分成若干個(gè)磁道;每條磁道被劃分成若干個(gè)扇區(qū)。磁盤的類型(1)固定頭磁盤:每條磁道上都有一讀/寫磁頭,所有磁頭裝在一個(gè)剛性磁臂中。(2)移動(dòng)頭磁盤:每個(gè)盤面僅配有一個(gè)磁頭,也被裝入磁臂中。

1.磁盤的概述磁盤的訪問時(shí)間(1)尋道時(shí)間Ts=m×n+s,其中s為啟動(dòng)磁臂的時(shí)間,m是常數(shù);(2)旋轉(zhuǎn)延遲時(shí)間:指定扇區(qū)移動(dòng)到磁頭下面所經(jīng)歷的時(shí)間;(3)傳輸時(shí)間(了解):從磁盤讀出數(shù)據(jù)或向磁盤寫入數(shù)據(jù)所經(jīng)歷的時(shí)間;扇區(qū)磁道磁道間隔扇區(qū)間隔2023年2月6日41第五章設(shè)備管理5.6

磁盤存儲(chǔ)器的管理先來先服務(wù)FCFS

2.磁盤調(diào)度最短尋道時(shí)間優(yōu)先SSTF(從100號(hào)磁道開始)被訪問的下一個(gè)磁道號(hào)移動(dòng)距離(磁道數(shù))5545583391918219072160701501038112184146

溫馨提示

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

評(píng)論

0/150

提交評(píng)論