操作系統(tǒng)湯子英第6章課件_第1頁
操作系統(tǒng)湯子英第6章課件_第2頁
操作系統(tǒng)湯子英第6章課件_第3頁
操作系統(tǒng)湯子英第6章課件_第4頁
操作系統(tǒng)湯子英第6章課件_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第六章設(shè)備管理6.1I/O系統(tǒng)6.2I/O控制方式6.3緩沖管理6.4設(shè)備分配6.5設(shè)備處理6.6磁盤存儲器管理設(shè)備管理的對象:主要是I/O設(shè)備,還可能是I/O通道。設(shè)備管理的基本任務(wù):提高利用率,提高速度。設(shè)備管理的主要功能:緩沖區(qū)管理、設(shè)備分配、設(shè)備處理、虛擬設(shè)備、及實(shí)現(xiàn)設(shè)備獨(dú)立性。外設(shè)的特點(diǎn):種類多差異大(控制和速度)外設(shè)管理目的包括:外設(shè)資源的控制外設(shè)資源的共享提高外設(shè)資源的利用率。6.1I/O系統(tǒng)6.1.1I/O設(shè)備1.I/O設(shè)備的類型

1)按傳輸速率分類低速設(shè)備,這是指其傳輸速率僅為每秒鐘幾個字節(jié)至數(shù)百個字節(jié)的一類設(shè)備。典型設(shè)備有鍵盤、鼠標(biāo)器、語音的輸入和輸出等設(shè)備。中速設(shè)備,這是指其傳輸速率在每秒鐘數(shù)千個字節(jié)至數(shù)萬個字節(jié)的一類設(shè)備。典型設(shè)備有:行式打印機(jī)、激光打印機(jī)等。高速設(shè)備,這是指其傳輸速率在數(shù)百千個字節(jié)至數(shù)十兆字節(jié)的一類設(shè)備。典型的高速設(shè)備有磁帶機(jī)、磁盤機(jī)、光盤機(jī)等3)按設(shè)備的共享屬性分類這種分類方式可將I/O設(shè)備分為如下三類:獨(dú)占設(shè)備。它是指在一段時間內(nèi)只允許一個用戶(進(jìn)程)訪問的設(shè)備,即臨界資源;

因而,對多個并發(fā)進(jìn)程而言,應(yīng)互斥地訪問這類設(shè)備,系統(tǒng)一旦把這類設(shè)備分配給某進(jìn)程后,便由該進(jìn)程獨(dú)占,直至用完釋放,應(yīng)當(dāng)注意,獨(dú)占設(shè)備的分配有可能引起進(jìn)程死鎖;共享設(shè)備(磁盤)。它是指在一段時間內(nèi)允許多個進(jìn)程同時訪問的設(shè)備,當(dāng)然,對于每一時刻而言,該類設(shè)備仍然只允許一個進(jìn)程訪問,顯然,共享設(shè)備必須是可尋址的和可隨機(jī)訪問的虛擬設(shè)備。它是指通過虛擬技術(shù)將一臺獨(dú)占設(shè)備變換為若干臺邏輯設(shè)備,供若干個用戶(進(jìn)程)同時使用,通常把這種經(jīng)過虛擬技術(shù)處理后的設(shè)備,稱為虛擬設(shè)備從設(shè)備的管理角度看,設(shè)備可分為(獨(dú)占設(shè)備)、(共享設(shè)備)、(虛擬設(shè)備)。華中科大2.設(shè)備與控制器之間的接口圖6-1設(shè)備與控制器間的接口通常,設(shè)備并不是直接與CPU進(jìn)行通信,而是與設(shè)備控制器通信,因此,在設(shè)備與設(shè)備控制器之間應(yīng)有一接口,在該接口中有三種類型的信號。比如打印機(jī)的幾個按鈕發(fā)送的信息2.設(shè)備控制器的組成圖6-2設(shè)備控制器的組成6.1.3I/O通道***1.I/O通道(I/OChannel)設(shè)備的引入

實(shí)際上,I/O通道是一種特殊的處理機(jī)。它具有執(zhí)行I/O指令的能力,并通過執(zhí)行通道(I/O)程序來控制I/O操作。但I(xiàn)/O通道又與一般的處理機(jī)不同,主要表現(xiàn)在以下兩個方面:

一是其指令類型單一,這是由于通道硬件比較簡單,其所能執(zhí)行的命令,主要局限于與I/O操作有關(guān)的指令;

二是通道沒有自己的內(nèi)存,通道所執(zhí)行的通道程序是放在主機(jī)的內(nèi)存中的,換言之,是通道與CPU共享內(nèi)存。

2.通道類型1)字節(jié)多路通道(ByteMultiplexorChannel)圖5-3字節(jié)多路通道的工作原理以字節(jié)為傳送單位3)數(shù)組多路通道(BlockMultiplexorChannel)數(shù)組選擇通道雖有很高的傳輸速率,但它卻每次只允許一個設(shè)備傳輸數(shù)據(jù)。數(shù)組多路通道是將數(shù)組選擇通道傳輸速率高和字節(jié)多路通道能使各子通道(設(shè)備)分時并行操作的優(yōu)點(diǎn)相結(jié)合而形成的一種新通道。它含有多個非分配型子通道,因而這種通道既具有很高的數(shù)據(jù)傳輸速率,又能獲得令人滿意的通道利用率。也正因此,才使該通道能被廣泛地用于連接多臺高、中速的外圍設(shè)備,其數(shù)據(jù)傳送是按數(shù)組方式進(jìn)行的。以數(shù)組為傳送單位3.“瓶頸”問題圖5-4單通路I/O系統(tǒng)圖5-5多通路I/O系統(tǒng)6.2I/O控制方式

DMA控制器的出現(xiàn),使I/O方式在傳輸單位上發(fā)生了變化,即從以”字節(jié)”為單位的傳輸擴(kuò)大到以“數(shù)據(jù)快”為單位進(jìn)行傳輸,從而大大的改善了塊設(shè)備的I/O性能。而通道的引入,又使對I/O操作的組織和數(shù)據(jù)的傳送,都能獨(dú)立的進(jìn)行而無須CPU干涉。1、程序I/O方式

在程序I/O方式中,由于CPU的高速性和I/O設(shè)備的低速性,致使CPU的絕大部分時間都處于等待I/O設(shè)備完成數(shù)據(jù)I/O的循環(huán)測試中,造成對CPU的極大浪費(fèi)。在該方式中,CPU之所以要不斷地測試I/O設(shè)備的狀態(tài),就是因?yàn)樵贑PU中無中斷機(jī)構(gòu),使I/O設(shè)備無法向CPU報(bào)告它已完成了一個字符的輸入操作。I/O操作由程序發(fā)起,并等待操作完成。數(shù)據(jù)的每次讀寫通過CPU。缺點(diǎn):在外設(shè)進(jìn)行數(shù)據(jù)處理時,CPU只能等待。圖6-7程序I/O和中斷驅(qū)動方式的流程3、直接存儲器訪問DMAI/O控制方式該方式的特點(diǎn)是:①數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊,即在CPU與I/O設(shè)備之間,每次傳送至少一個數(shù)據(jù)塊;②所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存的,或者相反;③僅在傳送一個或多個數(shù)據(jù)塊的開始和結(jié)束時,才需CPU干預(yù),整塊數(shù)據(jù)的傳送是在控制器的控制下完成的??梢?,DMA方式較之中斷驅(qū)動方式,又是成百倍地減少了CPU對I/O的干預(yù),進(jìn)一步提高了CPU與I/O設(shè)備的并行操作程度。DMA控制器的組成(了解)

圖6-8DMA控制器的組成DMA控制器也有三部分組成:(1)主機(jī)與DMA控制器的接口;(2)DMA控制器與塊設(shè)備的接口;(3)I/O控制邏輯;3.DMA工作過程

圖6-9DMA方式的工作流程4、I/O通道控制方式

I/O通道方式是DMA方式的發(fā)展,它可進(jìn)一步減少CPU的干預(yù),即把對一個數(shù)據(jù)塊的讀(或?qū)?為單位的干預(yù),減少為對一組數(shù)據(jù)塊的讀(或?qū)?及有關(guān)的控制和管理為單位的干預(yù)。同時,又可實(shí)現(xiàn)CPU、通道和I/O設(shè)備三者的并行操作,從而更有效地提高整個系統(tǒng)的資源利用率。例如,當(dāng)CPU要完成一組相關(guān)的讀(或?qū)?操作及有關(guān)控制時,只需向I/O通道發(fā)送一條I/O指令,以給出其所要執(zhí)行的通道程序的首址和要訪問的I/O設(shè)備,通道接到該指令后,通過執(zhí)行通道程序便可完成CPU指定的I/O任務(wù)。2.通道程序cpu告訴通道做什么和怎樣去做

操作碼。它規(guī)定了指令所執(zhí)行的操作,如讀。(2)內(nèi)存地址。標(biāo)明字符送入內(nèi)存和從內(nèi)存取出時的內(nèi)存首址。(3)計(jì)數(shù)。表示本條指令所要讀(或?qū)?數(shù)據(jù)的字節(jié)數(shù)。(4)通道程序結(jié)束位P。用于表示通道程序是否結(jié)束。P=1表示本條指令是通道程序的最后一條指令。

(5)記錄結(jié)束標(biāo)志R。R=0表示本通道指令與下一條通道指令所處理的數(shù)據(jù)同屬一個記錄,R=1表示這是處理某記錄的最后一條指令。

通道是通過執(zhí)行通道程序,并與設(shè)備控制器共同實(shí)現(xiàn)對I/O設(shè)備控制的。

通道程序是由一系列的通道指令(或稱為通道命令)所構(gòu)成。通道指令與一般的機(jī)器指令不同,它的每條指令中包含下列諸信息;DMA1、C6000系列DMA有4個獨(dú)立的傳輸通道。2、每一個DMA通道都有一套寄存器完成傳輸控制,啟動DMA之前,必須對它們進(jìn)行初始化。(含使用的通道、數(shù)據(jù)源地址、數(shù)據(jù)傳輸?shù)哪康牡刂返龋?、配置寄存器實(shí)現(xiàn)啟動。EDMA1)DM642共有64個EDMA通道。每個通道都有一個事件與之關(guān)聯(lián),由這些事件來觸發(fā)相應(yīng)通道的傳輸。映射的地址縮寫寄存器名字01A0FFBCESRH事件置位高位寄存器01A0FFDCESRL事件置位低位寄存器EDMA控制寄存器該事件能觸發(fā)EDMA通道開始傳輸2)、通道地址給出通道各參數(shù)的地址通道地址通道參數(shù)01A00000h-01A00017h通道0參數(shù)地址(6word)01A00018h-01A0002Fh通道1參數(shù)地址(6word)01A00030h-01A00047h通道2參數(shù)地址(6word)01A00060h-01A00077h通道3參數(shù)地址(6word)01A00078h-01A0008Fh通道4參數(shù)地址(6word)。。。。。。3)、EDMA的傳輸參數(shù)1組EDMA傳輸參數(shù)的內(nèi)部結(jié)構(gòu),總共有6個字,存儲結(jié)構(gòu)如下:OPTSRCAddressFRMCNTELECNTDSTAddressFRMIDXELEIDXELERLDLINKOPTSRCCNTDSTIDXLINK01A00000h通道0的各字地址01A00004h01A00008h01A0000eh01A00010h01A00014hOPT參數(shù)地址01A00000hPRIESIZE2DSSUM2DDDUMTCINTTCC16192021232225242726282931優(yōu)先級000表緊急優(yōu)先權(quán)數(shù)據(jù)單元字長00表32位,01表16位目的數(shù)據(jù)維數(shù)0表一維1表二維源地址更新模式00表源地址不更改01增加10減少源數(shù)據(jù)維數(shù)0表一維1表二維目的地址更新模式00表源地址不更改01增加10減少傳輸結(jié)束代碼SRC/DST均為32位長度SRC要搬移數(shù)據(jù)的源地址DST要搬移數(shù)據(jù)的目的地址地址應(yīng)該由程序員指定#defineCH8_SRC*(unsignedint*)0x01a000c4#defineCH8_DST*(unsignedint*)0x01a000ccCNTELECNT數(shù)據(jù)單元計(jì)數(shù)16bit無符號數(shù)該單元存放一幀(一維傳輸)或一個陣列(2-D)中的單元個數(shù)OPTSRCAddressFRMCNTELECNTDSTAddressFRMIDXELEIDXELERLDLINKFRMCNT幀數(shù)計(jì)數(shù)一次傳輸多少幀CH8_CNT=

0x00010010;

一幀含有16個字節(jié)一次傳送一幀IDX32位長確定偏移量FRMIDX確定下一幀的偏移地址,或者說相鄰2幀之間的步幅(間距)單位:字節(jié)ELEIDX確定下一陣列(可以理解為數(shù)組)的偏移地址CH8_IDX=0x00200000相鄰2幀之間步幅為32由于采用1維傳輸,而此項(xiàng)是控制二維傳輸?shù)模圆辉O(shè)置此項(xiàng)其實(shí)配置EDMA就是通道參數(shù)初始化,然后啟動通道開始傳輸見下面案例:#defineESRL*(unsignedint*)0x01a0fffc#defineESRH*(unsignedint*)0x01a0ffbc#defineCCER*(unsignedint*)0x01a0ffec//通道連接使能寄存器#defineCH8_OPT*(unsignedint*)0x01a000c0#defineCH8_SRC*(unsignedint*)0x01a000c4#defineCH8_CNT*(unsignedint*)0x01a000c8#defineCH8_DST*(unsignedint*)0x01a000cc#defineCH8_IDX*(unsignedint*)0x01a000d0#defineCH8_RELOAD_LINK*(unsignedint*)0x01a000d4TEST_edma(){//////////////////////////////////CH8_SRC=(unsignedint)src;//in;//(0x80019220);CH8_DST=(unsignedint)dst;//(unsignedint)dst;0x80000b60);CH8_CNT=0x00010010;//最后一位數(shù)是幾,一次便傳送幾個單元的數(shù)據(jù)CH8_IDX=0x00200000;CH8_OPT=0x0da01100;//0da01100;//ESRL=ESRL|0x00000100;CCER=CCER|0x00000100;/////////////////////////////////////////////}QDMA使用2組寄存器進(jìn)行控制。第一組定義了QDMA傳輸所需參數(shù);第二組定義了5個寄存器,是第一組寄存器的“偽映射”1、I/O控制可用哪幾種方式實(shí)現(xiàn)?各有何優(yōu)缺點(diǎn)?清華2、通過硬件和軟件的擴(kuò)充功能,把原來的獨(dú)立設(shè)備改造成能為若干用戶共享的設(shè)備,這種設(shè)備稱為()。

A、存儲設(shè)備b、系統(tǒng)設(shè)備c、用戶設(shè)備 d、虛擬設(shè)備3、如果I/O設(shè)備與存儲設(shè)備進(jìn)行數(shù)據(jù)交換不經(jīng)過CPU來完成,這種數(shù)據(jù)交換方式是()A、程序查詢b、中斷方式c、DMA方式d、無條件存取方式4、大多數(shù)低速設(shè)備都屬于()設(shè)備。A、獨(dú)占設(shè)備b共享設(shè)備c虛擬設(shè)備dspooldca6.3緩沖管理

6.3.1緩沖的引入***緩和CPU與I/O設(shè)備間速度不匹配的矛盾。(2)減少對CPU的中斷頻率,放寬對CPU中斷響應(yīng)時間的限制。(見下圖)(3)提高CPU和I/O設(shè)備之間的并行性。設(shè)備管理中引入緩沖機(jī)制的主要原因是為了(1)(2)(3)。中科院計(jì)算所圖6-10利用緩沖寄存器實(shí)現(xiàn)緩沖100微秒刷新一次6.3.2單緩沖和雙緩沖1.單緩沖(SingleBuffer)圖6-11單緩沖工作示意圖單緩沖,為什么對一塊數(shù)據(jù)的處理時間為max(T,C)+M?必須等這段時間需要CPU和緩沖區(qū)同時參與2.雙緩沖(DoubleBuffer)圖6-12雙緩沖工作示意圖另一個緩沖區(qū)CPU和緩沖1只CPU參與雙緩沖,為什么對一塊數(shù)據(jù)的處理時間為max(T,C)?圖6-13雙機(jī)通信時緩沖區(qū)的設(shè)置案例攝像頭數(shù)字圖像視頻壓縮Internet個人計(jì)算機(jī)模擬圖像A/D轉(zhuǎn)換個人計(jì)算機(jī)RTP、UDPTCP\IPD1:720x576x2案例攝像頭數(shù)字圖像2視頻壓縮Internet個人計(jì)算機(jī)模擬圖像個人計(jì)算機(jī)RTP、UDPTCP\IP數(shù)字圖像1數(shù)字圖像3壓縮后代碼1壓縮后代碼26.3.3循環(huán)緩沖1.循環(huán)緩沖的組成(多個緩沖區(qū),三個指針)圖6-14循環(huán)緩沖計(jì)算進(jìn)程下一個可用的緩沖區(qū),相當(dāng)于消費(fèi)者進(jìn)程空緩沖區(qū),相當(dāng)于生產(chǎn)者進(jìn)程滿當(dāng)前正在運(yùn)行的進(jìn)程2.循環(huán)緩沖區(qū)的使用(了解)Getbuf過程。計(jì)算進(jìn)程調(diào)用,Nextg供使用,然后下移,同時變C

輸入進(jìn)程調(diào)用,Nexti供調(diào)用,然后下移(2)Releasebuf過程。計(jì)算進(jìn)程調(diào)用完,C——R

輸入進(jìn)程調(diào)用完,R——G計(jì)算進(jìn)程和輸入進(jìn)程可利用下面2個過程使用緩沖區(qū)3.進(jìn)程同步(并行運(yùn)行)Nexti指針追趕上Nextg指針。(2)Nextg指針追趕上Nexti指針。6.3.4緩沖池(BufferPool)

1.緩沖池的組成

對于既可用于輸入又可用于輸出的公用緩沖池,其中至少應(yīng)含有以下三種類型的緩沖區(qū):①空(閑)緩沖區(qū);②裝滿輸入數(shù)據(jù)的緩沖區(qū);③裝滿輸出數(shù)據(jù)的緩沖區(qū)。為了管理上的方便,可將相同類型的緩沖區(qū)鏈成一個隊(duì)列,于是可形成以下三個隊(duì)列:(1)空緩沖隊(duì)列emq。(2)輸入隊(duì)列inq。(3)輸出隊(duì)列outq。還需四種工作緩沖區(qū):收容輸入數(shù)據(jù)、提取輸入數(shù)據(jù)、收容輸出數(shù)據(jù)、提取輸出數(shù)據(jù)的工作緩沖區(qū)2.Getbuf過程和Putbuf過程ProcedureGetbuf(type)beginWait(RS(type));Wait(MS(type));B(number):=Takebuf(type);Signal(MS(type));endProcedurePutbuf(type,number)beginWait(MS(type));Addbuf(type,number);Signal(MS(type));Signal(RS(type));end申請緩沖區(qū)資源釋放緩沖區(qū)資源,加1操作保證只有一個進(jìn)程訪問緩沖區(qū)隊(duì)列保證只有一個進(jìn)程訪問緩沖區(qū)隊(duì)列3.緩沖區(qū)的工作方式(了解)圖6-15緩沖區(qū)的工作方式緩沖技術(shù)是借用外存儲器的一部分區(qū)域做為緩沖池。判斷對錯緩沖技術(shù)中的緩沖池在()中。為了使多個進(jìn)程能有效的同時處理輸入輸出,最好使用()結(jié)構(gòu)的緩沖技術(shù)。 a、緩沖池 b閉緩沖區(qū)環(huán) c單緩沖區(qū) d雙緩沖區(qū)主存a6.4設(shè)備分配6.4.1設(shè)備分配數(shù)據(jù)結(jié)構(gòu)6.4.2設(shè)備分配原則6.4.3假脫機(jī)技術(shù)返回由于外設(shè)資源的有限,需解決進(jìn)程間的外設(shè)共享問題,以提高外設(shè)資源的利用率。設(shè)備分配是對進(jìn)程使用外設(shè)過程的管理。這里有兩種作法:1)在進(jìn)程間切換使用外設(shè),如鍵盤和鼠標(biāo);2)通過一個虛擬設(shè)備把外設(shè)與應(yīng)用進(jìn)程隔開,只由虛擬設(shè)備來使用設(shè)備。6.4.1設(shè)備分配數(shù)據(jù)結(jié)構(gòu)設(shè)備控制表(DCT,DeviceControlTable):每個設(shè)備一張,描述設(shè)備特性和狀態(tài)。反映設(shè)備的特性、設(shè)備和控制器的連接情況。DCT的內(nèi)容主要包括:設(shè)備標(biāo)識:用來區(qū)別不同的設(shè)備;設(shè)備類型:反映設(shè)備的特性;如:塊設(shè)備或字符設(shè)備;設(shè)備配置:I/O地址等;設(shè)備狀態(tài):工作或空閑狀態(tài);等待隊(duì)列:等待使用該設(shè)備的進(jìn)程隊(duì)列;返回6.4.1設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)1.設(shè)備控制表DCT

圖6-16設(shè)備控制表系統(tǒng)設(shè)備表(SDT,SystemDeviceTable):系統(tǒng)內(nèi)一張,反映系統(tǒng)中設(shè)備資源的狀態(tài),記錄所有設(shè)備的狀態(tài)及其設(shè)備控制表的入口。SDT表項(xiàng)的主要組成:DCT指針:指向相應(yīng)設(shè)備的DCT;設(shè)備使用進(jìn)程標(biāo)識:正在使用該設(shè)備的進(jìn)程標(biāo)識;DCT信息:為引用方便而保存的DCT信息,如:設(shè)備標(biāo)識、設(shè)備類型等;控制器控制表(COCT,COntrollerControlTable):每個設(shè)備控制器一張,描述I/O控制器的配置和狀態(tài)。如DMA控制器所占用的中斷號、DMA數(shù)據(jù)通道的分配。通道控制表(CHCT,CHannelControlTable):每個通道一張,描述通道工作狀態(tài)。返回8.3.2設(shè)備分配原則與設(shè)備分配有關(guān)的設(shè)備屬性:獨(dú)享設(shè)備:打印機(jī)等(一直使用完才釋放)。;共享設(shè)備:磁盤、網(wǎng)卡等;虛擬設(shè)備:一臺物理設(shè)備虛擬成多臺虛擬設(shè)備,合理調(diào)用設(shè)備分配方式:各有優(yōu)缺點(diǎn)靜態(tài)分配:在進(jìn)程剛創(chuàng)建時分配,在進(jìn)程退出時釋放;不會出現(xiàn)死鎖;設(shè)備利用率不高;動態(tài)分配:在進(jìn)程執(zhí)行過程中根據(jù)需要分配,使用結(jié)束后釋放;需要考慮死鎖問題有利于提高設(shè)備利用率返回設(shè)備分配的原則是合理使用外設(shè)(公平和避免死鎖),提高設(shè)備利用率。動態(tài)分配策略:針對特定的設(shè)備采用特定的分配策略。先來先服務(wù)(FCFS):按I/O請求的先后順序,排成I/O請求命令隊(duì)列;按FCFS分配設(shè)備;基于優(yōu)先級:依據(jù)進(jìn)程的優(yōu)先級,指定I/O請求的優(yōu)先級,排成不同優(yōu)先級隊(duì)列;按優(yōu)先級高低分配設(shè)備;6.4.3設(shè)備獨(dú)立性1.設(shè)備獨(dú)立性(DeviceIndependence)的概念設(shè)備獨(dú)立性,也稱為設(shè)備無關(guān)性***。其基本含義是:應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。為了實(shí)現(xiàn)設(shè)備獨(dú)立性而引入了邏輯設(shè)備和物理設(shè)備這兩個概念。在應(yīng)用程序中,使用邏輯設(shè)備名稱來請求使用某類設(shè)備;而系統(tǒng)在實(shí)際執(zhí)行時,還必須使用物理設(shè)備名稱。因此,系統(tǒng)須具有將邏輯設(shè)備名稱轉(zhuǎn)換為某物理設(shè)備名稱的功能,這非常類似于存儲器管理中所介紹的邏輯地址和物理地址的概念。在實(shí)現(xiàn)了設(shè)備獨(dú)立性的功能后,可帶來以下兩方面的好處。1)設(shè)備分配時的靈活性2)易于實(shí)現(xiàn)I/O重定向2.設(shè)備獨(dú)立性軟件1)執(zhí)行所有設(shè)備的公有操作這些公有操作包括:①對獨(dú)立設(shè)備的分配與回收;②將邏輯設(shè)備名映射為物理設(shè)備名,進(jìn)一步可以找到相應(yīng)物理設(shè)備的驅(qū)動程序;③對設(shè)備進(jìn)行保護(hù),禁止用戶直接訪問設(shè)備;④緩沖管理,即對字符設(shè)備和塊設(shè)備的緩沖區(qū)進(jìn)行有效的管理,以提高I/O的效率;⑤差錯控制。由于在I/O操作中的絕大多數(shù)錯誤都與設(shè)備無關(guān),故主要由設(shè)備驅(qū)動程序處理,而設(shè)備獨(dú)立性軟件只處理那些設(shè)備驅(qū)動程序無法處理的錯誤。2)向用戶層(或文件層)軟件提供統(tǒng)一接口無論何種設(shè)備,它們向用戶所提供的接口應(yīng)該是相同的。例如,對各種設(shè)備的讀操作,在應(yīng)用程序中都使用read;而對各種設(shè)備的寫操作,也都使用write。6.4.5SPOOLing技術(shù)***

通過SPOOLing技術(shù)可將一臺物理I/O設(shè)備虛擬為多臺I/O設(shè)備,同樣允許多個用戶共享一臺物理I/O設(shè)備。SPOOLing假脫機(jī)技術(shù)引入:在多道批處理系統(tǒng)中,專門利用一道程序(SPOOLing程序)來完成對設(shè)備的I/O操作。無需使用外圍I/O處理機(jī)。返回利用假脫機(jī)技術(shù)(SPOOLing,SimultaneousPeripheralOperationOnLine,也稱為虛擬設(shè)備技術(shù))可把獨(dú)享設(shè)備轉(zhuǎn)變成具有共享特征的虛擬設(shè)備,從而提高設(shè)備利用率。假脫機(jī)的原理:SPOOLing程序和外設(shè)進(jìn)行數(shù)據(jù)交換,可以稱為“實(shí)際I/O”。一方面,SPOOLing程序預(yù)先從外設(shè)輸入數(shù)據(jù)并加以緩沖,在以后需要的時候輸入到應(yīng)用程序;另一方面,SPOOLing程序接受應(yīng)用程序的輸出數(shù)據(jù)并加以緩沖,在以后適當(dāng)?shù)臅r候輸出到外設(shè)。在SPOOLing程序中,需要管理兩級緩沖區(qū):內(nèi)存緩沖區(qū)和快速外存上的緩沖池,后者可以暫存多批I/O操作的較多數(shù)據(jù)。應(yīng)用程序進(jìn)行I/O操作時,只是和SPOOLing程序交換數(shù)據(jù),可以稱為“虛擬I/O”。這時虛擬I/O實(shí)際上是從SPOOLing程序的緩沖池中讀出數(shù)據(jù)或把數(shù)據(jù)送入緩沖池,而不是跟實(shí)際的外設(shè)進(jìn)行I/O操作。2.SPOOLing系統(tǒng)的組成1、輸入井和輸出井這是在磁盤上開辟的兩個大存儲空間。輸入井是模擬脫機(jī)輸入時的磁盤,用于收容I/O設(shè)備輸入的數(shù)據(jù)。輸出井是模擬脫機(jī)輸出時的磁盤,用于收容用戶程序的輸出數(shù)據(jù)。2、輸入緩沖區(qū)和輸出緩沖區(qū)

在內(nèi)存中要開辟兩個緩沖區(qū):輸入緩沖區(qū)和輸出緩沖區(qū);輸入緩沖區(qū)用于暫存由輸入設(shè)備送來的數(shù)據(jù),以后再傳送到輸入井;輸出緩沖區(qū)用于暫存從輸出井送來的數(shù)據(jù),以后再傳送給輸出設(shè)備。3、輸入進(jìn)程SPi和輸出進(jìn)程SPo:進(jìn)程SPi模擬脫機(jī)輸入時的外圍控制機(jī),將用戶要求的數(shù)據(jù)從輸入機(jī),通過輸入緩沖區(qū)再送到輸入井;當(dāng)CPU需要輸入數(shù)據(jù)時,直接從輸入井讀入內(nèi)存。

SPo進(jìn)程模擬脫機(jī)輸出時的外圍控制機(jī),把用戶要求輸出的數(shù)據(jù),先從內(nèi)存送到輸出井,待輸出設(shè)備空閑時,再將輸出井中的數(shù)據(jù),經(jīng)過輸出緩沖區(qū)送到輸出設(shè)備上。圖6-19SPOOLing系統(tǒng)的組成3.共享打印機(jī)

共享打印機(jī)技術(shù)已被廣泛地用于多用戶系統(tǒng)和局域網(wǎng)絡(luò)中。當(dāng)用戶進(jìn)程請求打印輸出時,SPOOLing系統(tǒng)同意為它打印輸出,但并不真正立即把打印機(jī)分配給該用戶進(jìn)程,而只為它做兩件事:①由輸出進(jìn)程在輸出井中為之申請一個空閑磁盤塊區(qū),并將要打印的數(shù)據(jù)送入其中;②輸出進(jìn)程再為用戶進(jìn)程申請一張空白的用戶請求打印表,并將用戶的打印要求填入其中,再將該表掛到請求打印隊(duì)列上。4.SPOOLing系統(tǒng)的特點(diǎn)***

提高了I/O的速度。應(yīng)用程序的虛擬I/O比實(shí)際I/O速度提高,縮短應(yīng)用程序的執(zhí)行時間。另一方面,程序的虛擬I/O操作時間和實(shí)際I/O操作時間分離開來。(2)將獨(dú)占設(shè)備改造為共享設(shè)備。(3)實(shí)現(xiàn)了虛擬設(shè)備功能。舉例:打印機(jī)設(shè)備和可由打印機(jī)管理器管理的打印作業(yè)隊(duì)列。如:WindowsNT中,應(yīng)用程序直接向針式打印機(jī)輸出需要15分鐘,而向打印作業(yè)隊(duì)列輸出只需要1分鐘,此后用戶可以關(guān)閉應(yīng)用程序而轉(zhuǎn)入其他工作,在以后適當(dāng)?shù)臅r候由打印機(jī)管理器完成15分鐘的打印輸出而無需用戶干預(yù)。什么是虛擬設(shè)備?實(shí)現(xiàn)虛擬設(shè)備的關(guān)鍵技術(shù)是什么?虛擬設(shè)備是通過某種虛擬技術(shù),將一臺物理設(shè)備變換成若干臺邏輯設(shè)備,從而實(shí)現(xiàn)多個用戶對該物理設(shè)備的同時共享。由于多臺邏輯設(shè)備事實(shí)上不存在,而只是給用戶的一種感覺,因此被稱作虛擬設(shè)備。常通過在可共享的、高速的磁盤上開辟兩個大的存儲空間(即輸入井和輸出井)以及預(yù)輸入、緩沖輸出技術(shù)來實(shí)現(xiàn)。預(yù)輸入和緩輸出可通過脫機(jī)和假脫機(jī)技術(shù)實(shí)現(xiàn),假脫機(jī)是目前使用最廣泛的虛擬設(shè)備技術(shù)。習(xí)題1、Spooling技術(shù)提高了()利用率。A、獨(dú)占設(shè)備b、共享設(shè)備c。文件d、主存儲器2、在操作系統(tǒng)中,()指的是一種硬件機(jī)制。A、通道技術(shù)b、緩沖池c、Spooling技術(shù)d、內(nèi)存覆蓋技術(shù)3、在操作系統(tǒng)中,用戶在使用I/O設(shè)備時,通常采用()。A、物理設(shè)備名b、邏輯設(shè)備名c、虛擬設(shè)備名d設(shè)備牌號、aab6.5設(shè)備控制6.5.1設(shè)備的控制過程6.5.2設(shè)備控制過程的實(shí)現(xiàn)方式6.5.3設(shè)備驅(qū)動程序返回6.5.1設(shè)備的控制過程轉(zhuǎn)換:將抽象的命令轉(zhuǎn)換為具體的一定次序的指令合法性檢查:檢查I/O操作請求的合法性可用性檢查:檢查控制器和設(shè)備的狀態(tài),判斷是否可用參數(shù)設(shè)置:設(shè)置控制器和設(shè)備的參數(shù),包括構(gòu)造必要的通道程序啟動I/O:向控制器或設(shè)備發(fā)起I/O操作中斷處理:提供必要的中斷處理例程,以便I/O完成時調(diào)用返回依據(jù)用戶的控制命令對外設(shè)進(jìn)行控制,并返回結(jié)果??刂七^程可分為以下6步:6.5.2設(shè)備控制過程的實(shí)現(xiàn)方式作為應(yīng)用進(jìn)程的一部分執(zhí)行:與程序控制I/O相對應(yīng),難以對外設(shè)發(fā)出的中斷作實(shí)時響應(yīng)作為系統(tǒng)進(jìn)程執(zhí)行:每類設(shè)備一個進(jìn)程,或整個系統(tǒng)一個進(jìn)程處理各類設(shè)備不設(shè)進(jìn)程,作為OS核心中的設(shè)備驅(qū)動程序返回6.5.3設(shè)備驅(qū)動程序中轉(zhuǎn)數(shù)據(jù)和控制:不是數(shù)據(jù)和控制的源端和目的端(應(yīng)用程序和設(shè)備)與硬件特性密切相關(guān):通常由硬件廠商提供。向上屏蔽設(shè)備細(xì)節(jié):不同類型設(shè)備通常其設(shè)備驅(qū)動程序接口不同,同類設(shè)備的接口相同。因此,同類設(shè)備的不同型號,只要更換設(shè)備驅(qū)動程序則可由OS使用。返回驅(qū)動程序是I/O處理功能的低級系統(tǒng)例程。它具有如下特征:設(shè)備驅(qū)動程序的處理過程主要任務(wù)是啟動設(shè)備將抽象要求轉(zhuǎn)換為具體要求2.檢查I/O請求的合法性3.讀出和檢查設(shè)備的狀態(tài)4.傳送必要的參數(shù)5.工作方式的設(shè)置6.啟動I/O設(shè)備

6.6磁盤設(shè)備管理6.6.1磁盤I/O訪問時間的組成6.6.2磁盤I/O調(diào)度策略6.6.3磁盤緩存置換算法返回CPU和內(nèi)存的訪問速度比磁盤要快若干個數(shù)量級,磁盤系統(tǒng)的性能對整個系統(tǒng)的性能有重要影響,磁盤設(shè)備管理的目標(biāo)就是提高磁盤系統(tǒng)的性能。6.6.1磁盤I/O訪問時間的組成柱面定位時間:磁頭移動到指定柱面的機(jī)械運(yùn)動時間;旋轉(zhuǎn)延遲時間:磁盤旋轉(zhuǎn)到指定扇區(qū)的機(jī)械運(yùn)動時間;它與磁盤轉(zhuǎn)速相關(guān),如:軟盤轉(zhuǎn)速可為600rpm(每分鐘轉(zhuǎn)速),硬盤可為7200rpm。數(shù)據(jù)傳送時間:從指定扇區(qū)讀寫數(shù)據(jù)的時間。返回由于柱面定位時間在訪問時間中占主要部分,合理組成磁盤數(shù)據(jù)的存儲位置可提高磁盤I/O性能。例子:讀一個128KB大小的文件:(1)文件由8個連續(xù)磁道(每個磁道32個扇區(qū))上的256個扇區(qū)構(gòu)成:20ms+(8.3ms+16.7ms)*8=220ms;其中,柱面定位時間為20ms,旋轉(zhuǎn)延遲時間為8.3ms,32扇區(qū)數(shù)據(jù)傳送時間為16.7ms;(2)文件由256個隨機(jī)分布的扇區(qū)構(gòu)成:(20ms+8.3ms+0.5ms)*256=7373ms;其中,1扇區(qū)數(shù)據(jù)傳送時間為0.5ms;隨機(jī)分布時的訪問時間為連續(xù)分布時的33.5倍。6.6.2磁盤I/O調(diào)度策略先進(jìn)先出算法最短尋道時間優(yōu)先算法后進(jìn)先出算法掃描(SCAN)算法循環(huán)掃描(C-SCAN)算法N步掃描(N-step-SCAN)算法雙隊(duì)列掃描(FSCAN)算法返回來自不同進(jìn)程的磁盤I/O請求構(gòu)成一個隨機(jī)分布的請求隊(duì)列。磁盤I/O調(diào)度的主要目標(biāo)就是減少請求隊(duì)列對應(yīng)的平均柱面定位時間。1.先來先服務(wù)FCFS(First-Come,FirstServed)

圖6-23FCFS調(diào)度算法下列請求序列等待訪問磁盤:55、58、39、18、90、160、150、38、1842.最短尋道時間優(yōu)先SSTF(ShortestSeekTimeFirst)圖6-24SSTF調(diào)度算法下列請求序列等待訪問磁盤:55、58、39、18、90、160、150、38、1843.掃描(SCAN)算法1)進(jìn)程“饑餓”現(xiàn)象

SSTF算法雖然能獲得較好的尋道性能,但卻可能導(dǎo)致某個進(jìn)程發(fā)生“饑餓”(Starvation)現(xiàn)象。因?yàn)橹灰粩嘤行逻M(jìn)程的請求到達(dá),且其所要訪問的磁道與磁頭當(dāng)前所在磁道的距離較近,這種新進(jìn)程的I/O請求必須優(yōu)先滿足。對SSTF算法略加修改后所形成的SCAN算法,即可防止老進(jìn)程出現(xiàn)“饑餓”現(xiàn)象。2)SCAN算法

圖6-25SCAN調(diào)度算法示例本算法不僅考慮到預(yù)訪問磁道和當(dāng)前磁道之間的距離,更優(yōu)先考慮的是磁頭當(dāng)前的移動方向。又稱電梯調(diào)度算法下列請求序列等待訪問磁盤:55、58、39、18、90、160、150、38、1844.循環(huán)掃描(CSCAN)算法圖6-26CSCAN調(diào)度算法示例只按一個方向走下列請求序列等待訪問磁盤:55、58、39、18、90、160、150、38、184假定在某移動臂磁盤上,剛剛處理了訪問75號柱面的請求,目前正在80號柱面上讀信息,并有下列請求序列等待訪問磁盤:請求序列:12345678預(yù)訪問的柱面號:16040190188905832102試用;FCFS、最短查找時間優(yōu)先算法,電梯調(diào)度算法(掃描算法),循環(huán)掃描算法,分別排出實(shí)際處理上述請求的次序。電梯調(diào)度算法SCAN:5、8、1、4、3、6、2、7最短查找時間優(yōu)先算法:5、8、6、2、7、1、4、3先來先:1、2、3、4、5、6、7、8循環(huán)掃描算法CSCAN:5、8、1、4、3、7、2、6算一下平均尋道長度。6.6.3磁盤高速緩存(DiskCache)***1.磁盤高速緩存的形式是指利用內(nèi)存中的存儲空間,來暫存從磁盤中讀出的一系列盤塊中的信息。因此,這里的高速緩存是一組在邏輯上屬于磁盤,而物理上是駐留在內(nèi)存中的盤塊。高速緩存在內(nèi)存中可分成兩種形式。第一種是在內(nèi)存中開辟一個單獨(dú)的存儲空間來作為磁盤高速緩存,其大小是固定的,不會受應(yīng)用程序多少的影響;第二種是把所有未利用的內(nèi)存空間變?yōu)橐粋€緩沖池,供請求分頁系統(tǒng)和磁盤I/O時(作為磁盤高速緩存)共享。此時高速緩存的大小,顯然不再是固定的。當(dāng)磁盤I/O的頻繁程度較高時,該緩沖池可能包含更多的內(nèi)存空間;而在應(yīng)用程序運(yùn)行得較多時,該緩沖池可能只剩下較少的內(nèi)存空間。2.數(shù)據(jù)交付方式系統(tǒng)可以采取兩種方式,將數(shù)據(jù)交付給請求進(jìn)程:(1)數(shù)據(jù)交付。這是直接將高速緩存中的數(shù)據(jù),傳送到請求者進(jìn)程的內(nèi)存工作區(qū)中。(2)指針交付。只將指向高速緩存中某區(qū)域的指針,交付給請求者進(jìn)程。后一種方式由于所傳送的數(shù)據(jù)量少,因而節(jié)省了數(shù)據(jù)從磁盤高速緩存存儲空間到進(jìn)程的內(nèi)存工作區(qū)的時間。3.置換算法由于請求調(diào)頁中的聯(lián)想存儲器與高速緩存(磁盤I/O中)的工作情況不同,因而使得在置換算法中所應(yīng)考慮的問題也有所差異。因此,現(xiàn)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論