




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、chapter7設(shè)備管理課件5 5、緩沖技術(shù)實(shí)現(xiàn)的基本思想:、緩沖技術(shù)實(shí)現(xiàn)的基本思想:q進(jìn)程執(zhí)行寫操作輸出數(shù)據(jù)時(shí),向系統(tǒng)申請(qǐng)一個(gè)進(jìn)程執(zhí)行寫操作輸出數(shù)據(jù)時(shí),向系統(tǒng)申請(qǐng)一個(gè)緩沖區(qū),若為順序?qū)懻?qǐng)求,則不斷把數(shù)據(jù)填到緩沖區(qū),若為順序?qū)懻?qǐng)求,則不斷把數(shù)據(jù)填到緩沖區(qū),直到被裝滿。此后,進(jìn)程繼續(xù)它的計(jì)緩沖區(qū),直到被裝滿。此后,進(jìn)程繼續(xù)它的計(jì)算,系統(tǒng)將緩沖區(qū)內(nèi)容寫到算,系統(tǒng)將緩沖區(qū)內(nèi)容寫到I/OI/O設(shè)備上。設(shè)備上。q進(jìn)程執(zhí)行讀操作輸入數(shù)據(jù)時(shí),向系統(tǒng)申請(qǐng)一個(gè)進(jìn)程執(zhí)行讀操作輸入數(shù)據(jù)時(shí),向系統(tǒng)申請(qǐng)一個(gè)緩沖區(qū),系統(tǒng)將一個(gè)物理記錄的內(nèi)容讀到緩沖緩沖區(qū),系統(tǒng)將一個(gè)物理記錄的內(nèi)容讀到緩沖區(qū),根據(jù)進(jìn)程要求,把當(dāng)前需要的邏輯
2、記錄從區(qū),根據(jù)進(jìn)程要求,把當(dāng)前需要的邏輯記錄從緩沖區(qū)中選出并傳送給進(jìn)程緩沖區(qū)中選出并傳送給進(jìn)程7.3 7.3 緩沖管理(緩沖管理(3 3)chapter7設(shè)備管理課件5 5、緩沖技術(shù)實(shí)現(xiàn)的基本思想(續(xù)):、緩沖技術(shù)實(shí)現(xiàn)的基本思想(續(xù)):q在輸出數(shù)據(jù)時(shí),只有在系統(tǒng)還來不及騰空緩沖在輸出數(shù)據(jù)時(shí),只有在系統(tǒng)還來不及騰空緩沖區(qū)而進(jìn)程又要寫數(shù)據(jù)時(shí),它才需要等待;區(qū)而進(jìn)程又要寫數(shù)據(jù)時(shí),它才需要等待;q在輸入數(shù)據(jù)時(shí),僅當(dāng)緩沖區(qū)空而進(jìn)程又要從中在輸入數(shù)據(jù)時(shí),僅當(dāng)緩沖區(qū)空而進(jìn)程又要從中讀取數(shù)據(jù)時(shí),它才被迫等待讀取數(shù)據(jù)時(shí),它才被迫等待6 6、緩沖的實(shí)現(xiàn)方式:、緩沖的實(shí)現(xiàn)方式:q采用硬件緩沖器實(shí)現(xiàn);采用硬件緩沖器實(shí)
3、現(xiàn);q在內(nèi)存劃出一塊區(qū)域,專門用來存放臨時(shí)輸入在內(nèi)存劃出一塊區(qū)域,專門用來存放臨時(shí)輸入輸出的數(shù)據(jù),這個(gè)區(qū)域稱為緩沖區(qū)輸出的數(shù)據(jù),這個(gè)區(qū)域稱為緩沖區(qū)7.3 7.3 緩沖管理(緩沖管理(4 4)chapter7設(shè)備管理課件單緩沖單緩沖 在設(shè)備和處理機(jī)之間設(shè)置一個(gè)緩沖。設(shè)備與處理機(jī)交在設(shè)備和處理機(jī)之間設(shè)置一個(gè)緩沖。設(shè)備與處理機(jī)交換數(shù)據(jù)時(shí),先把交換的數(shù)據(jù)寫入緩沖區(qū),然后需要數(shù)據(jù)的換數(shù)據(jù)時(shí),先把交換的數(shù)據(jù)寫入緩沖區(qū),然后需要數(shù)據(jù)的設(shè)備設(shè)備/處理機(jī)再?gòu)木彌_區(qū)中取走數(shù)據(jù)。處理機(jī)再?gòu)木彌_區(qū)中取走數(shù)據(jù)。 特點(diǎn)特點(diǎn):緩沖區(qū)數(shù)只有一個(gè);設(shè)備與處理機(jī)對(duì)緩沖區(qū)的:緩沖區(qū)數(shù)只有一個(gè);設(shè)備與處理機(jī)對(duì)緩沖區(qū)的操作是串行的。操
4、作是串行的。 工作區(qū)工作區(qū)緩沖區(qū)緩沖區(qū)用戶進(jìn)程用戶進(jìn)程操作系統(tǒng)操作系統(tǒng)傳送傳送(M)(M)輸入輸入(T)(T)I/OI/O設(shè)備設(shè)備處理處理(C)(C)chapter7設(shè)備管理課件一塊數(shù)據(jù)的處理時(shí)間一塊數(shù)據(jù)的處理時(shí)間v 在某系統(tǒng)中,從磁盤將一塊數(shù)據(jù)輸入到緩沖區(qū)需要花費(fèi)的在某系統(tǒng)中,從磁盤將一塊數(shù)據(jù)輸入到緩沖區(qū)需要花費(fèi)的時(shí)間時(shí)間T T,CPUCPU對(duì)一塊數(shù)據(jù)進(jìn)行處理的時(shí)間為對(duì)一塊數(shù)據(jù)進(jìn)行處理的時(shí)間為C C,將緩沖區(qū)的數(shù),將緩沖區(qū)的數(shù)據(jù)傳送到用戶區(qū)所花時(shí)間為據(jù)傳送到用戶區(qū)所花時(shí)間為M M,那么在單緩沖情況下,系統(tǒng),那么在單緩沖情況下,系統(tǒng)處理大量數(shù)據(jù)時(shí),一塊數(shù)據(jù)的處理時(shí)間為多少?處理大量數(shù)據(jù)時(shí),一塊
5、數(shù)據(jù)的處理時(shí)間為多少?系統(tǒng)對(duì)每一塊數(shù)據(jù)的處理時(shí)間為:系統(tǒng)對(duì)每一塊數(shù)據(jù)的處理時(shí)間為:Max(T,C)+Mchapter7設(shè)備管理課件雙緩沖雙緩沖 在設(shè)備和處理機(jī)之間設(shè)置在設(shè)備和處理機(jī)之間設(shè)置2 2個(gè)緩沖。設(shè)備與處理機(jī)交個(gè)緩沖。設(shè)備與處理機(jī)交換數(shù)據(jù)時(shí),先把交換的數(shù)據(jù)寫入緩沖區(qū),然后需要數(shù)據(jù)的換數(shù)據(jù)時(shí),先把交換的數(shù)據(jù)寫入緩沖區(qū),然后需要數(shù)據(jù)的設(shè)備設(shè)備/ /處理機(jī)再?gòu)木彌_區(qū)中取走數(shù)據(jù)。因緩沖區(qū)有處理機(jī)再?gòu)木彌_區(qū)中取走數(shù)據(jù)。因緩沖區(qū)有2 2個(gè),提個(gè),提高了設(shè)備與處理機(jī)并行操作的程度,只有當(dāng)兩個(gè)均為空時(shí),高了設(shè)備與處理機(jī)并行操作的程度,只有當(dāng)兩個(gè)均為空時(shí),需數(shù)據(jù)的進(jìn)程才等待。需數(shù)據(jù)的進(jìn)程才等待。特點(diǎn)特點(diǎn):
6、緩沖區(qū)數(shù)有:緩沖區(qū)數(shù)有2 2個(gè);設(shè)備與處理機(jī)對(duì)緩沖區(qū)的操作可并個(gè);設(shè)備與處理機(jī)對(duì)緩沖區(qū)的操作可并行,提高了設(shè)備與處理機(jī)并行操作的程度。行,提高了設(shè)備與處理機(jī)并行操作的程度。工作區(qū)工作區(qū)緩沖區(qū)緩沖區(qū)1 1用戶進(jìn)程用戶進(jìn)程(處理(處理C C)操作系統(tǒng)操作系統(tǒng)傳送傳送M M輸入輸入T TI/OI/O設(shè)備設(shè)備緩沖區(qū)緩沖區(qū)2 2chapter7設(shè)備管理課件一塊數(shù)據(jù)的處理時(shí)間一塊數(shù)據(jù)的處理時(shí)間v 在某系統(tǒng)中,從磁盤將一塊數(shù)據(jù)輸入到緩沖區(qū)需要花費(fèi)的時(shí)在某系統(tǒng)中,從磁盤將一塊數(shù)據(jù)輸入到緩沖區(qū)需要花費(fèi)的時(shí)間間T T,CPUCPU對(duì)一塊數(shù)據(jù)進(jìn)行處理的時(shí)間為對(duì)一塊數(shù)據(jù)進(jìn)行處理的時(shí)間為C C,將緩沖區(qū)的數(shù)據(jù),將緩沖區(qū)
7、的數(shù)據(jù)傳送到用戶區(qū)所花時(shí)間為傳送到用戶區(qū)所花時(shí)間為M M,那么在雙緩沖情況下,系統(tǒng)處,那么在雙緩沖情況下,系統(tǒng)處理大量數(shù)據(jù)時(shí),一塊數(shù)據(jù)的處理時(shí)間為多少?理大量數(shù)據(jù)時(shí),一塊數(shù)據(jù)的處理時(shí)間為多少?系統(tǒng)對(duì)一塊數(shù)據(jù)的處理時(shí)間:系統(tǒng)對(duì)一塊數(shù)據(jù)的處理時(shí)間: MAX MAX(C+MC+M,T T)工作區(qū)工作區(qū)用戶進(jìn)程用戶進(jìn)程緩沖區(qū)緩沖區(qū) 1緩沖區(qū)緩沖區(qū) 2I/O 設(shè)備設(shè)備T1(緩沖緩沖1)M1C1M2C2M3C3T2(緩沖緩沖2)T3(緩沖緩沖3)M4C4T4(緩沖緩沖4)(a)(b)chapter7設(shè)備管理課件雙機(jī)通信時(shí)緩沖區(qū)的設(shè)置雙機(jī)通信時(shí)緩沖區(qū)的設(shè)置緩沖區(qū)緩沖區(qū)A機(jī)B機(jī)(a) 單緩沖發(fā)送緩沖區(qū)接收緩沖
8、區(qū)接收緩沖區(qū)發(fā)送緩沖區(qū)A機(jī)B機(jī)(b) 雙緩沖chapter7設(shè)備管理課件RGGGGR123456NextiNextgRGGGCR123456NexticurrentNextg循環(huán)緩沖循環(huán)緩沖 在設(shè)備和處理機(jī)之間設(shè)置多個(gè)大小相等的緩沖區(qū),這在設(shè)備和處理機(jī)之間設(shè)置多個(gè)大小相等的緩沖區(qū),這些緩沖區(qū)構(gòu)成環(huán)形,每一個(gè)緩沖區(qū)中含一指針指向下些緩沖區(qū)構(gòu)成環(huán)形,每一個(gè)緩沖區(qū)中含一指針指向下一個(gè)緩沖區(qū),最后一個(gè)指向第一個(gè)緩沖區(qū)。一個(gè)緩沖區(qū),最后一個(gè)指向第一個(gè)緩沖區(qū)。 chapter7設(shè)備管理課件循環(huán)緩沖的組成循環(huán)緩沖的組成多個(gè)緩沖區(qū):多個(gè)緩沖區(qū):v 用于裝輸入數(shù)據(jù)的空緩沖區(qū)用于裝輸入數(shù)據(jù)的空緩沖區(qū)R Rv 已裝
9、滿數(shù)據(jù)的緩沖區(qū)已裝滿數(shù)據(jù)的緩沖區(qū)G Gv 計(jì)算進(jìn)程正在使用的現(xiàn)行工作緩沖區(qū)計(jì)算進(jìn)程正在使用的現(xiàn)行工作緩沖區(qū)C C多個(gè)指針:多個(gè)指針:v 指示輸入進(jìn)程下次可用的空緩沖區(qū)指示輸入進(jìn)程下次可用的空緩沖區(qū)R R的指針的指針NextiNextiv 指示計(jì)算進(jìn)程下次可用緩沖區(qū)指示計(jì)算進(jìn)程下次可用緩沖區(qū)G G的指針的指針NextgNextgv 指示計(jì)算進(jìn)程正在使用的緩沖區(qū)指示計(jì)算進(jìn)程正在使用的緩沖區(qū)C C的指針的指針CurrentCurrent特點(diǎn):特點(diǎn):緩沖區(qū)的數(shù)量有多個(gè);設(shè)備與處理機(jī)對(duì)緩沖區(qū)的操作緩沖區(qū)的數(shù)量有多個(gè);設(shè)備與處理機(jī)對(duì)緩沖區(qū)的操作可并行,進(jìn)一步提高了設(shè)備與處理機(jī)并行操作的程度??刹⑿?,進(jìn)一步
10、提高了設(shè)備與處理機(jī)并行操作的程度。 chapter7設(shè)備管理課件循環(huán)緩沖循環(huán)緩沖緩沖區(qū)的使用緩沖區(qū)的使用GetbufGetbuf過程過程ReleasebufReleasebuf過程過程進(jìn)程同步進(jìn)程同步NextiNexti指針追趕上指針追趕上NextgNextg指針指針輸入進(jìn)輸入進(jìn)程阻塞程阻塞NextgNextg指針追趕上指針追趕上NextiNexti指針指針計(jì)算進(jìn)計(jì)算進(jìn)程阻塞程阻塞chapter7設(shè)備管理課件1、緩沖池緩沖池:將系統(tǒng)內(nèi)所有的緩沖區(qū)統(tǒng)一管理起來,就形:將系統(tǒng)內(nèi)所有的緩沖區(qū)統(tǒng)一管理起來,就形成了能用于輸入成了能用于輸入/輸出的緩沖池。緩沖池通常由若干大輸出的緩沖池。緩沖池通常由若干
11、大小相同的緩沖區(qū)組成,是系統(tǒng)的公用資源,任何進(jìn)程都小相同的緩沖區(qū)組成,是系統(tǒng)的公用資源,任何進(jìn)程都可以申請(qǐng)使用緩沖池中的各個(gè)緩沖區(qū)??梢陨暾?qǐng)使用緩沖池中的各個(gè)緩沖區(qū)。2、緩沖池的組成(數(shù)據(jù)結(jié)構(gòu))緩沖池的組成(數(shù)據(jù)結(jié)構(gòu)) 三個(gè)隊(duì)列三個(gè)隊(duì)列:空緩沖隊(duì)列:空緩沖隊(duì)列emq、裝滿輸入數(shù)據(jù)隊(duì)列、裝滿輸入數(shù)據(jù)隊(duì)列inq、裝滿輸出數(shù)據(jù)隊(duì)列裝滿輸出數(shù)據(jù)隊(duì)列outq 四個(gè)工作緩沖區(qū)四個(gè)工作緩沖區(qū): 收容輸入數(shù)據(jù)的緩沖區(qū)收容輸入數(shù)據(jù)的緩沖區(qū)hin、提取、提取輸入數(shù)據(jù)的緩沖區(qū)輸入數(shù)據(jù)的緩沖區(qū)sin、收容輸出數(shù)據(jù)的緩沖區(qū)、收容輸出數(shù)據(jù)的緩沖區(qū)hout、提取輸出數(shù)據(jù)的緩沖區(qū)提取輸出數(shù)據(jù)的緩沖區(qū)sout 緩沖池(緩沖池(
12、1)chapter7設(shè)備管理課件緩沖池(緩沖池(2) 三個(gè)隊(duì)列三個(gè)隊(duì)列:空緩沖隊(duì)列:空緩沖隊(duì)列emq、裝滿輸入數(shù)據(jù)隊(duì)列、裝滿輸入數(shù)據(jù)隊(duì)列inq、裝滿、裝滿輸出數(shù)據(jù)隊(duì)列輸出數(shù)據(jù)隊(duì)列outq 四個(gè)工作緩沖區(qū)四個(gè)工作緩沖區(qū): 收容輸入數(shù)據(jù)的緩沖區(qū)、提取輸入數(shù)據(jù)收容輸入數(shù)據(jù)的緩沖區(qū)、提取輸入數(shù)據(jù)的緩沖區(qū)、收容輸出數(shù)據(jù)的緩沖區(qū)、提取輸出數(shù)據(jù)的緩沖區(qū)的緩沖區(qū)、收容輸出數(shù)據(jù)的緩沖區(qū)、提取輸出數(shù)據(jù)的緩沖區(qū) chapter7設(shè)備管理課件3、GetbufGetbuf過程和過程和PutbufPutbuf過程過程 Procedure Getbuf(type) begin wait(rs(type); wait(ms(
13、type);B(number):=Takebuf(type); signal(ms(type); end緩沖池(緩沖池(3 3) Procedure Putbuf(type) begin wait(ms(type); Addbuf(type,number); signal(ms(type); signal(rs(type); end注:Takebuf(type)用于從用于從type所指的隊(duì)列的隊(duì)首摘下一緩沖區(qū)所指的隊(duì)列的隊(duì)首摘下一緩沖區(qū) Addbuf(type,number)用于將由用于將由number所指示的緩沖區(qū)所指示的緩沖區(qū)B掛在掛在type隊(duì)列上隊(duì)列上chapter7設(shè)備管理課件4 4
14、、操作系統(tǒng)對(duì)緩沖池的管理、操作系統(tǒng)對(duì)緩沖池的管理-工作方式工作方式hinhinsinsinsoutsouthouthout用用戶戶程程序序緩沖池緩沖池提取輸入提取輸入收容輸出收容輸出提取輸出提取輸出收容輸入收容輸入緩沖池的工作方式緩沖池的工作方式chapter7設(shè)備管理課件輸入進(jìn)程需要輸入數(shù)據(jù)時(shí)輸入進(jìn)程需要輸入數(shù)據(jù)時(shí):輸入設(shè)備:輸入設(shè)備 收容輸入收容輸入緩沖區(qū)緩沖區(qū)-Getbuf(emq)和和Putbuf(inq,hin) 1)從空緩沖隊(duì)列從空緩沖隊(duì)列emq的隊(duì)首取一空緩沖區(qū)用作收容輸入緩的隊(duì)首取一空緩沖區(qū)用作收容輸入緩沖區(qū)沖區(qū)hin 2)輸入設(shè)備將數(shù)據(jù)輸入收容輸入緩沖區(qū)并裝滿輸入設(shè)備將數(shù)據(jù)輸
15、入收容輸入緩沖區(qū)并裝滿 3)將此緩沖區(qū)掛到裝滿輸入數(shù)據(jù)隊(duì)列將此緩沖區(qū)掛到裝滿輸入數(shù)據(jù)隊(duì)列inq隊(duì)尾。隊(duì)尾。計(jì)算進(jìn)程需要輸入數(shù)據(jù)時(shí)計(jì)算進(jìn)程需要輸入數(shù)據(jù)時(shí):提取輸入提取輸入緩沖區(qū)緩沖區(qū) CPU -Getbuf(inq)和和Putbuf(emq,sin) 1)從裝滿輸入數(shù)據(jù)隊(duì)列從裝滿輸入數(shù)據(jù)隊(duì)列inq隊(duì)首取一滿緩沖區(qū)用作提取輸隊(duì)首取一滿緩沖區(qū)用作提取輸入緩沖區(qū)入緩沖區(qū)sin 2)CPU從提取輸入緩沖區(qū)中取出數(shù)據(jù)至用完從提取輸入緩沖區(qū)中取出數(shù)據(jù)至用完 3)將空緩沖區(qū)掛到空緩沖隊(duì)列將空緩沖區(qū)掛到空緩沖隊(duì)列emq隊(duì)尾。隊(duì)尾。4 4、操作系統(tǒng)對(duì)緩沖池的管理、操作系統(tǒng)對(duì)緩沖池的管理-工作方式工作方式chapt
16、er7設(shè)備管理課件計(jì)算進(jìn)程需要輸出數(shù)據(jù)時(shí)計(jì)算進(jìn)程需要輸出數(shù)據(jù)時(shí):CPU 收容輸出收容輸出緩沖區(qū)緩沖區(qū)-Getbuf(emq)和和Putbuf(outq,hout) 1)從空緩沖隊(duì)列從空緩沖隊(duì)列emq隊(duì)首取一空緩沖區(qū)用作收容輸出緩沖隊(duì)首取一空緩沖區(qū)用作收容輸出緩沖區(qū)區(qū)hout 2)CPU將數(shù)據(jù)輸入其中并裝滿將數(shù)據(jù)輸入其中并裝滿 3)將收容輸出緩沖區(qū)掛到裝滿輸出數(shù)據(jù)隊(duì)列將收容輸出緩沖區(qū)掛到裝滿輸出數(shù)據(jù)隊(duì)列outq隊(duì)尾。隊(duì)尾。輸出進(jìn)程需要輸出數(shù)據(jù)時(shí)輸出進(jìn)程需要輸出數(shù)據(jù)時(shí):提取輸出提取輸出緩沖區(qū)緩沖區(qū) 輸出設(shè)備輸出設(shè)備-Getbuf(outq)和和Putbuf(emq,sout) 1)從裝滿輸出數(shù)據(jù)隊(duì)
17、列從裝滿輸出數(shù)據(jù)隊(duì)列outq隊(duì)首取一滿緩沖區(qū)用作提取輸隊(duì)首取一滿緩沖區(qū)用作提取輸出緩沖區(qū)出緩沖區(qū)sout 2)輸出設(shè)備從中取出數(shù)據(jù)至用完輸出設(shè)備從中取出數(shù)據(jù)至用完 3)將空緩沖區(qū)掛到空緩沖隊(duì)列將空緩沖區(qū)掛到空緩沖隊(duì)列emq隊(duì)尾隊(duì)尾4 4、操作系統(tǒng)對(duì)緩沖池的管理、操作系統(tǒng)對(duì)緩沖池的管理-工作方式工作方式chapter7設(shè)備管理課件7.4 I/O 7.4 I/O 軟件軟件I/O I/O 軟件的設(shè)計(jì)目標(biāo)和原則軟件的設(shè)計(jì)目標(biāo)和原則中斷處理程序中斷處理程序設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件用戶層的用戶層的I/OI/O軟件軟件chapter7設(shè)備管理課件7.4.1 I/O7.4.1 I/
18、O軟件的設(shè)計(jì)目標(biāo)和原則軟件的設(shè)計(jì)目標(biāo)和原則v 總體設(shè)計(jì)目標(biāo)總體設(shè)計(jì)目標(biāo)n高效性高效性n確保確保I/OI/O設(shè)備和設(shè)備和CPUCPU并行執(zhí)行,提高資源利用率并行執(zhí)行,提高資源利用率n通用性通用性n提供簡(jiǎn)單抽象、清晰統(tǒng)一的接口,采用統(tǒng)一標(biāo)準(zhǔn)的提供簡(jiǎn)單抽象、清晰統(tǒng)一的接口,采用統(tǒng)一標(biāo)準(zhǔn)的方法,來管理所有的設(shè)備和所需的方法,來管理所有的設(shè)備和所需的I/OI/O操作操作v 采用層次結(jié)構(gòu)的采用層次結(jié)構(gòu)的I/OI/O軟件軟件n低層軟件低層軟件n實(shí)現(xiàn)與硬件相關(guān)的操作,屏蔽硬件的具體細(xì)節(jié)實(shí)現(xiàn)與硬件相關(guān)的操作,屏蔽硬件的具體細(xì)節(jié)n高層軟件高層軟件n向用戶提供一個(gè)簡(jiǎn)潔、友好、規(guī)范的接口向用戶提供一個(gè)簡(jiǎn)潔、友好、規(guī)范
19、的接口chapter7設(shè)備管理課件7.4.1 I/O7.4.1 I/O軟件的設(shè)計(jì)目標(biāo)和原則軟件的設(shè)計(jì)目標(biāo)和原則v I/OI/O軟件應(yīng)達(dá)到以下幾個(gè)目標(biāo)軟件應(yīng)達(dá)到以下幾個(gè)目標(biāo)n與具體設(shè)備無關(guān)與具體設(shè)備無關(guān)n屏蔽設(shè)備的具體細(xì)節(jié),向高層提供抽屏蔽設(shè)備的具體細(xì)節(jié),向高層提供抽象的邏輯設(shè)備,并完成邏輯設(shè)備和具象的邏輯設(shè)備,并完成邏輯設(shè)備和具體物理設(shè)備的映射體物理設(shè)備的映射n統(tǒng)一命名統(tǒng)一命名n所有軟件都以邏輯名稱訪問設(shè)備,與所有軟件都以邏輯名稱訪問設(shè)備,與具體設(shè)備無關(guān)具體設(shè)備無關(guān)chapter7設(shè)備管理課件7.4.1 I/O7.4.1 I/O軟件的設(shè)計(jì)目標(biāo)和原則軟件的設(shè)計(jì)目標(biāo)和原則v I/OI/O軟件應(yīng)達(dá)到
20、以下幾個(gè)目標(biāo)(續(xù))軟件應(yīng)達(dá)到以下幾個(gè)目標(biāo)(續(xù))n對(duì)錯(cuò)誤的處理對(duì)錯(cuò)誤的處理n盡可能在接近硬件的層面處理錯(cuò)誤盡可能在接近硬件的層面處理錯(cuò)誤n緩沖技術(shù)緩沖技術(shù)n設(shè)備的分配和釋放設(shè)備的分配和釋放nI/OI/O控制方式控制方式n合理選擇合理選擇I/OI/O控制方式,例打印機(jī)(中控制方式,例打印機(jī)(中斷驅(qū)動(dòng))、磁盤(斷驅(qū)動(dòng))、磁盤(DMADMA控制方式)控制方式)chapter7設(shè)備管理課件7.4.1 I/O7.4.1 I/O軟件的設(shè)計(jì)目標(biāo)和原則軟件的設(shè)計(jì)目標(biāo)和原則v 層次式結(jié)構(gòu)的層次式結(jié)構(gòu)的I/OI/O軟件(四個(gè)層次)軟件(四個(gè)層次)用戶層軟件用戶層軟件設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程
21、序中斷處理程序中斷處理程序硬件硬件I/OI/O請(qǐng)求請(qǐng)求I/OI/O應(yīng)答應(yīng)答執(zhí)行I/O操作產(chǎn)生I/O請(qǐng)求、格式化I/O、Spooling映射,保護(hù),分塊,緩沖,分配設(shè)置設(shè)備寄存器,檢查寄存器狀態(tài)當(dāng)I/O結(jié)束時(shí),喚醒驅(qū)動(dòng)程序chapter7設(shè)備管理課件7.4.1 I/O7.4.1 I/O軟件的設(shè)計(jì)目標(biāo)和原則軟件的設(shè)計(jì)目標(biāo)和原則v 層次式結(jié)構(gòu)的層次式結(jié)構(gòu)的I/OI/O軟件(四個(gè)層次)(續(xù))軟件(四個(gè)層次)(續(xù))n用戶層軟件用戶層軟件n實(shí)現(xiàn)與用戶交互的接口,用戶可直接調(diào)用在實(shí)現(xiàn)與用戶交互的接口,用戶可直接調(diào)用在用戶層提供的、與用戶層提供的、與I/OI/O操作有關(guān)的庫(kù)函數(shù),操作有關(guān)的庫(kù)函數(shù),對(duì)設(shè)備操作對(duì)
22、設(shè)備操作n設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件n負(fù)責(zé)實(shí)現(xiàn)與設(shè)備驅(qū)動(dòng)器的統(tǒng)一接口、設(shè)備命負(fù)責(zé)實(shí)現(xiàn)與設(shè)備驅(qū)動(dòng)器的統(tǒng)一接口、設(shè)備命名、設(shè)備保護(hù)以及設(shè)備的分配與釋放,提供名、設(shè)備保護(hù)以及設(shè)備的分配與釋放,提供存儲(chǔ)空間存儲(chǔ)空間chapter7設(shè)備管理課件7.4.1 I/O7.4.1 I/O軟件的設(shè)計(jì)目標(biāo)和原則軟件的設(shè)計(jì)目標(biāo)和原則v 層次式結(jié)構(gòu)的層次式結(jié)構(gòu)的I/OI/O軟件(四個(gè)層次)(續(xù))軟件(四個(gè)層次)(續(xù))n設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序n與硬件直接相關(guān),負(fù)責(zé)具體實(shí)現(xiàn)系統(tǒng)對(duì)設(shè)備與硬件直接相關(guān),負(fù)責(zé)具體實(shí)現(xiàn)系統(tǒng)對(duì)設(shè)備發(fā)出的操作指令,驅(qū)動(dòng)發(fā)出的操作指令,驅(qū)動(dòng)I/OI/O設(shè)備工作的驅(qū)動(dòng)設(shè)備工作的驅(qū)動(dòng)程序程序n中斷處理程
23、序中斷處理程序n用于保存被中斷進(jìn)程的用于保存被中斷進(jìn)程的CPUCPU環(huán)境,轉(zhuǎn)入相應(yīng)環(huán)境,轉(zhuǎn)入相應(yīng)的中斷處理程序進(jìn)行處理,處理完后再恢復(fù)的中斷處理程序進(jìn)行處理,處理完后再恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)后返回到被中斷進(jìn)程被中斷進(jìn)程的現(xiàn)場(chǎng)后返回到被中斷進(jìn)程chapter7設(shè)備管理課件7.4.2 7.4.2 中斷處理程序(中斷處理程序(1 1)中斷處理層的主要工作中斷處理層的主要工作v 進(jìn)行進(jìn)程上下文的切換進(jìn)行進(jìn)程上下文的切換v 對(duì)處理中斷信號(hào)源進(jìn)行測(cè)試對(duì)處理中斷信號(hào)源進(jìn)行測(cè)試v 讀取設(shè)備狀態(tài)讀取設(shè)備狀態(tài)v 修改進(jìn)程狀態(tài)修改進(jìn)程狀態(tài)中斷處理程序的處理過程中斷處理程序的處理過程v 喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程喚醒被阻
24、塞的驅(qū)動(dòng)程序進(jìn)程v 保護(hù)被中斷進(jìn)程的保護(hù)被中斷進(jìn)程的CPUCPU環(huán)境環(huán)境v 分析中斷原因,轉(zhuǎn)入相應(yīng)的設(shè)備處理程序分析中斷原因,轉(zhuǎn)入相應(yīng)的設(shè)備處理程序v 進(jìn)行中斷處理進(jìn)行中斷處理v 恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)chapter7設(shè)備管理課件7.4.2 7.4.2 中斷處理程序(中斷處理程序(2 2)chapter7設(shè)備管理課件7.4.3 7.4.3 設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序是是I/OI/O進(jìn)程與設(shè)備控制器之間的通信程序,常以進(jìn)程的進(jìn)程與設(shè)備控制器之間的通信程序,常以進(jìn)程的形式存在,主要任務(wù)形式存在,主要任務(wù)v 接收上層軟件發(fā)來的抽象接收上層軟件發(fā)來的抽象I/OI/O要求要求v 轉(zhuǎn)換為具
25、體要求后,發(fā)送給設(shè)備控制器,啟動(dòng)設(shè)備去轉(zhuǎn)換為具體要求后,發(fā)送給設(shè)備控制器,啟動(dòng)設(shè)備去執(zhí)行執(zhí)行v 將由設(shè)備控制器發(fā)來的信號(hào)傳送給上層軟件將由設(shè)備控制器發(fā)來的信號(hào)傳送給上層軟件v 修改進(jìn)程狀態(tài)修改進(jìn)程狀態(tài)設(shè)備驅(qū)動(dòng)程序的功能設(shè)備驅(qū)動(dòng)程序的功能設(shè)備處理方式設(shè)備處理方式設(shè)備驅(qū)動(dòng)程序的特點(diǎn)設(shè)備驅(qū)動(dòng)程序的特點(diǎn)設(shè)備驅(qū)動(dòng)程序的處理過程設(shè)備驅(qū)動(dòng)程序的處理過程chapter7設(shè)備管理課件設(shè)備驅(qū)動(dòng)程序的功能設(shè)備驅(qū)動(dòng)程序的功能v 將接收到的抽象要求轉(zhuǎn)換為具體要求。將接收到的抽象要求轉(zhuǎn)換為具體要求。v 檢查用戶檢查用戶I/OI/O請(qǐng)求的合法性,請(qǐng)求的合法性,I/OI/O設(shè)備狀態(tài),傳設(shè)備狀態(tài),傳參數(shù),設(shè)置設(shè)備的工作方式。參
26、數(shù),設(shè)置設(shè)備的工作方式。v 按處理機(jī)的按處理機(jī)的I/OI/O請(qǐng)求去啟動(dòng)指定的設(shè)備進(jìn)行請(qǐng)求去啟動(dòng)指定的設(shè)備進(jìn)行I/OI/O操作操作v 及時(shí)響應(yīng)由控制器或通道發(fā)來的中斷請(qǐng)求,并及時(shí)響應(yīng)由控制器或通道發(fā)來的中斷請(qǐng)求,并進(jìn)行相應(yīng)處理進(jìn)行相應(yīng)處理v 按按I/OI/O請(qǐng)求構(gòu)成相應(yīng)通道程序。請(qǐng)求構(gòu)成相應(yīng)通道程序。chapter7設(shè)備管理課件設(shè)備處理方式設(shè)備處理方式v 為每一類設(shè)備設(shè)置一進(jìn)程,專門執(zhí)行其為每一類設(shè)備設(shè)置一進(jìn)程,專門執(zhí)行其I/OI/O操作。操作。v 在整個(gè)系統(tǒng)中設(shè)置一個(gè)進(jìn)程,執(zhí)行所有的在整個(gè)系統(tǒng)中設(shè)置一個(gè)進(jìn)程,執(zhí)行所有的I/OI/O操操作。作。 v 不設(shè)置專門的設(shè)備處理進(jìn)程,而為各類設(shè)備設(shè)不設(shè)置
27、專門的設(shè)備處理進(jìn)程,而為各類設(shè)備設(shè)置相應(yīng)的設(shè)備驅(qū)動(dòng)程序。置相應(yīng)的設(shè)備驅(qū)動(dòng)程序。chapter7設(shè)備管理課件設(shè)備驅(qū)動(dòng)程序的特點(diǎn)設(shè)備驅(qū)動(dòng)程序的特點(diǎn)v 是請(qǐng)求是請(qǐng)求I/OI/O的進(jìn)程與設(shè)備控制器之間的一個(gè)通信的進(jìn)程與設(shè)備控制器之間的一個(gè)通信程序。程序。v 與設(shè)備控制器和與設(shè)備控制器和I/OI/O設(shè)備的硬件特性緊密相關(guān)設(shè)備的硬件特性緊密相關(guān)v 與與I/OI/O設(shè)備所采用的設(shè)備所采用的I/OI/O控制方式緊密相關(guān)控制方式緊密相關(guān)v 與硬件緊密相關(guān),因而其中一部分程序必須用與硬件緊密相關(guān),因而其中一部分程序必須用匯編語言編寫。匯編語言編寫。v 驅(qū)動(dòng)程序應(yīng)允許可重入驅(qū)動(dòng)程序應(yīng)允許可重入 v 驅(qū)動(dòng)程序不允許系
28、統(tǒng)調(diào)用,但可以允許對(duì)某些驅(qū)動(dòng)程序不允許系統(tǒng)調(diào)用,但可以允許對(duì)某些內(nèi)核過程的調(diào)用內(nèi)核過程的調(diào)用chapter7設(shè)備管理課件設(shè)備驅(qū)動(dòng)程序的的處理過程設(shè)備驅(qū)動(dòng)程序的的處理過程v 將接收到的抽象要求轉(zhuǎn)換為具體要求。將接收到的抽象要求轉(zhuǎn)換為具體要求。v 檢查用戶檢查用戶I/OI/O請(qǐng)求的合法性請(qǐng)求的合法性v 讀出和檢查讀出和檢查 I/OI/O設(shè)備狀態(tài)設(shè)備狀態(tài)v 傳送必要參數(shù)傳送必要參數(shù)v 設(shè)置設(shè)備的工作方式。設(shè)置設(shè)備的工作方式。v 按處理機(jī)的按處理機(jī)的I/OI/O請(qǐng)求去啟動(dòng)指定的設(shè)備進(jìn)行請(qǐng)求去啟動(dòng)指定的設(shè)備進(jìn)行I/OI/O操操作作chapter7設(shè)備管理課件7.4.4 7.4.4 設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立
29、性軟件v 設(shè)備獨(dú)立性概念(設(shè)備無關(guān)性)設(shè)備獨(dú)立性概念(設(shè)備無關(guān)性)v 設(shè)備獨(dú)立性的實(shí)現(xiàn)設(shè)備獨(dú)立性的實(shí)現(xiàn)n邏輯設(shè)備(應(yīng)用程序)和物理設(shè)備(執(zhí)行)邏輯設(shè)備(應(yīng)用程序)和物理設(shè)備(執(zhí)行)n設(shè)備分配時(shí)的靈活性設(shè)備分配時(shí)的靈活性n易于實(shí)現(xiàn)易于實(shí)現(xiàn)I/OI/O重定向重定向n設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件n執(zhí)行所有設(shè)備的公有操作執(zhí)行所有設(shè)備的公有操作n向用戶層(文件層)軟件提供統(tǒng)一的接口向用戶層(文件層)軟件提供統(tǒng)一的接口n邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)n邏輯設(shè)備表邏輯設(shè)備表LUT(Logical Unit Table)LUT(Logical Unit Table)nLUTL
30、UT設(shè)置問題設(shè)置問題 整個(gè)系統(tǒng)設(shè)置一張整個(gè)系統(tǒng)設(shè)置一張LUT LUT ;每個(gè)用戶設(shè)一;每個(gè)用戶設(shè)一張張LUT LUT 用于單用戶系統(tǒng)用于單用戶系統(tǒng)用于多用戶系統(tǒng)用于多用戶系統(tǒng)chapter7設(shè)備管理課件設(shè)備獨(dú)立性相關(guān)概念設(shè)備獨(dú)立性相關(guān)概念v 設(shè)備獨(dú)立性概念(設(shè)備無關(guān)性)設(shè)備獨(dú)立性概念(設(shè)備無關(guān)性) 為提高為提高OSOS的可適應(yīng)性和可擴(kuò)展性,而將的可適應(yīng)性和可擴(kuò)展性,而將應(yīng)用應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備程序獨(dú)立于具體使用的物理設(shè)備。v I/OI/O重定向重定向 指用于指用于I/OI/O操作的設(shè)備可以更換,即重定向,操作的設(shè)備可以更換,即重定向,而不必改變應(yīng)用程序。而不必改變應(yīng)用程序。v 所有
31、設(shè)備的公有操作所有設(shè)備的公有操作 獨(dú)立設(shè)備的分配與回收;將邏輯設(shè)備名映射獨(dú)立設(shè)備的分配與回收;將邏輯設(shè)備名映射為物理設(shè)備名;對(duì)設(shè)備進(jìn)行保護(hù)(禁止直接訪為物理設(shè)備名;對(duì)設(shè)備進(jìn)行保護(hù)(禁止直接訪問);緩沖管理;差錯(cuò)控制。問);緩沖管理;差錯(cuò)控制。chapter7設(shè)備管理課件邏輯設(shè)備表邏輯設(shè)備表LUT(Logical Unit Table)邏輯設(shè)備名邏輯設(shè)備名物理設(shè)備名物理設(shè)備名驅(qū)動(dòng)程序入口地址驅(qū)動(dòng)程序入口地址/dev/tty31024/dev/print52046邏輯設(shè)備名邏輯設(shè)備名系統(tǒng)設(shè)備表指針系統(tǒng)設(shè)備表指針/dev/tty/dev/tty3 3/dev/print/dev/print5 5(a
32、)(b)chapter7設(shè)備管理課件7.4.5 7.4.5 用戶層的用戶層的I/OI/O軟件軟件大部分大部分I/OI/O軟件都軟件都在操作系統(tǒng)內(nèi)在操作系統(tǒng)內(nèi)部,仍有一小部,仍有一小部分在用戶層部分在用戶層v 與用戶程序鏈與用戶程序鏈接在一起的庫(kù)接在一起的庫(kù)函數(shù)函數(shù)v 完全運(yùn)行在內(nèi)完全運(yùn)行在內(nèi)核之外的一些核之外的一些程序(如程序(如SpoolingSpooling系統(tǒng))系統(tǒng))用戶層軟件用戶層軟件設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序中斷處理程序中斷處理程序硬件硬件I/OI/O請(qǐng)求請(qǐng)求I/OI/O應(yīng)答應(yīng)答執(zhí)行I/O操作產(chǎn)生I/O請(qǐng)求、格式化I/O、Spooling映射,保護(hù),分塊,緩
33、沖,分配設(shè)置設(shè)備寄存器,檢查寄存器狀態(tài)I/OI/O系統(tǒng)的層次及功能系統(tǒng)的層次及功能I/O操作結(jié)束時(shí),喚醒驅(qū)動(dòng)程序chapter7設(shè)備管理課件7.5 7.5 設(shè)備分配設(shè)備分配設(shè)備分配中的設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)設(shè)備分配的策略設(shè)備分配的策略/ /應(yīng)考慮的因素應(yīng)考慮的因素獨(dú)占獨(dú)占設(shè)備的分配程序設(shè)備的分配程序SPOOLINGSPOOLING技術(shù)技術(shù) chapter7設(shè)備管理課件7.5.1 7.5.1 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備控制表設(shè)備控制表DCT (Device Control Table)DCT (Device Control Table)控制器控制表控制器控制表COCT (
34、COntroller Control Table)COCT (COntroller Control Table)通道控制表通道控制表CHCTCHCT(CHannel Control TableCHannel Control Table)系統(tǒng)設(shè)備表系統(tǒng)設(shè)備表SDT (System Device Table)SDT (System Device Table)chapter7設(shè)備管理課件DCT表目表目1表目表目i設(shè)備類型設(shè)備類型 設(shè)備標(biāo)識(shí)符設(shè)備標(biāo)識(shí)符DCT指針指針獲得設(shè)備的進(jìn)程獲得設(shè)備的進(jìn)程控制器標(biāo)識(shí)符控制器標(biāo)識(shí)符 控制器狀態(tài):忙控制器狀態(tài):忙/閑閑CHCT指針指針控制器等待隊(duì)列指針控制器等待隊(duì)列指針通道標(biāo)識(shí)符通道標(biāo)識(shí)符通道狀態(tài):忙通道狀態(tài):忙/閑閑通道等待隊(duì)列指針通道等待隊(duì)列指針SDTCOCTCHCT設(shè)備類型設(shè)備類型 設(shè)備標(biāo)識(shí)符設(shè)備標(biāo)識(shí)符設(shè)備狀態(tài):忙設(shè)備狀態(tài):忙/閑閑COCT指針指針設(shè)備等待隊(duì)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 項(xiàng)目管理培訓(xùn)心得(15篇)
- 采購(gòu)批量制作方案(3篇)
- 油庫(kù)節(jié)電措施方案(3篇)
- 鋼板樁支護(hù)方案(3篇)
- 服裝整改方案模板(3篇)
- 小區(qū)鐵門改裝方案(3篇)
- 施工組織公路方案(3篇)
- 小區(qū)強(qiáng)電安裝方案(3篇)
- 廣州民航職業(yè)技術(shù)學(xué)院《商務(wù)溝通綜合能力訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 客戶合伙方案(3篇)
- 吸脂術(shù)護(hù)理查房
- 國(guó)家開放大學(xué)《幼兒園課程與活動(dòng)設(shè)計(jì)》期末大作業(yè)參考答案
- 2024年中英城市更新白皮書
- NB/T 11127-2023在用鋼絲繩芯輸送帶報(bào)廢檢測(cè)技術(shù)規(guī)范
- 鐵路網(wǎng)絡(luò)安全概述
- 南京信息工程大學(xué)《數(shù)據(jù)庫(kù)原理與應(yīng)用Ⅱ》2022-2023學(xué)年期末試卷
- 雨水回收系統(tǒng)技術(shù)規(guī)格書
- DB11T 1946-2021 智慧工地評(píng)價(jià)標(biāo)準(zhǔn)
- 大廈物業(yè)移交接收方案(標(biāo)準(zhǔn)版)
- 卅鋪初級(jí)中學(xué)食品安全存在問題整改方案
- 職業(yè)技術(shù)學(xué)院《數(shù)控編程與加工》課程標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論