第5章設(shè)備管理_第1頁
第5章設(shè)備管理_第2頁
第5章設(shè)備管理_第3頁
第5章設(shè)備管理_第4頁
第5章設(shè)備管理_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第5章設(shè)備管理

教學(xué)要點(diǎn)

本章主要內(nèi)容包括設(shè)備管理的任務(wù)和功能,設(shè)備管理的硬件組織與軟件組織,設(shè)備管理中的緩沖技術(shù),設(shè)備分配和設(shè)備驅(qū)動(dòng)程序的處理,磁盤存儲(chǔ)管理。應(yīng)重點(diǎn)掌握設(shè)備管理中的緩沖技術(shù),設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì),掌握設(shè)備無關(guān)性的概念,設(shè)備分配與回收算法。

第五章設(shè)備管理計(jì)算機(jī)系統(tǒng)中,“設(shè)備”是指除中央處理器和主存以外的所有設(shè)備。這些設(shè)備常稱為外部設(shè)備或I/O設(shè)備。設(shè)備管理的對(duì)象主要是I/O設(shè)備,還可能涉及到設(shè)備控制器和I/O通道。設(shè)備管理的基本任務(wù)是完成用戶提出的I/O請(qǐng)求,提高I/O速率以及提高I/O設(shè)備的利用率。設(shè)備管理的主要功能:緩沖區(qū)管理、設(shè)備分配、設(shè)備處理、虛擬設(shè)備及實(shí)現(xiàn)設(shè)備獨(dú)立性等。第五章設(shè)備管理5.1I/O系統(tǒng)5.2I/O控制方式5.3緩沖管理5.4設(shè)備分配5.5設(shè)備處理5.6磁盤存儲(chǔ)器管理5.1I/O系統(tǒng)I/O系統(tǒng)是用于實(shí)現(xiàn)數(shù)據(jù)輸入、輸出及數(shù)據(jù)存儲(chǔ)的系統(tǒng)。在I/O系統(tǒng)中,除了需要直接用于I/O和存儲(chǔ)信息的設(shè)備外,還需要有相應(yīng)的設(shè)備控制器和高速總線。有的大中型計(jì)算機(jī)系統(tǒng)中,還配置了I/O通道或I/O處理機(jī)。5.1I/O系統(tǒng)5.1.1I/O設(shè)備1.I/O設(shè)備的類型1)按傳輸速率分類按傳輸速度的高低,可將I/O設(shè)備分為三類。第一類是低速設(shè)備,這是指其傳輸速率僅為每秒鐘幾個(gè)字節(jié)至數(shù)百個(gè)字節(jié)的一類設(shè)備。屬于低速設(shè)備的典型設(shè)備有鍵盤、鼠標(biāo)器、語音的輸入和輸出等設(shè)備。第二類是中速設(shè)備,這是指其傳輸速率在每秒鐘數(shù)千個(gè)字節(jié)至數(shù)萬個(gè)字節(jié)的一類設(shè)備。典型的中速設(shè)備有行式打印機(jī)、激光打印機(jī)等。第三類是高速設(shè)備,這是指其傳輸速率在數(shù)百千個(gè)字節(jié)至數(shù)十兆字節(jié)的一類設(shè)備。典型的高速設(shè)備有磁帶機(jī)、磁盤機(jī)、光盤機(jī)等。2)按信息交換的單位分類

可將I/O設(shè)備分成兩類。第一類是塊設(shè)備(BlockDevice),這類設(shè)備用于存儲(chǔ)信息。由于信息的存取總是以數(shù)據(jù)塊為單位,故而得名。它屬于有結(jié)構(gòu)設(shè)備。典型的塊設(shè)備是磁盤,每個(gè)盤塊的大小為512B~4KB。磁盤設(shè)備的基本特征是其傳輸速率較高,通常每秒鐘為幾兆位;另一特征是可尋址,即對(duì)它可隨機(jī)地讀/寫任一塊;此外,磁盤設(shè)備的I/O常采用DMA方式。第二類是字符設(shè)備(CharacterDevice),用于數(shù)據(jù)的輸入和輸出。其基本單位是字符,故稱為字符設(shè)備。屬于無結(jié)構(gòu)類型。字符設(shè)備種類繁多,如交互式終端、打印機(jī)等。字符設(shè)備基本特征是其傳輸速率低,通常為幾個(gè)字節(jié)到幾千字節(jié);另一特征是不可尋址,即輸入輸出時(shí)不能制定數(shù)據(jù)的輸入源地址及輸出的目標(biāo)地址。此外,字符設(shè)備在輸入/輸出時(shí),常采用中斷驅(qū)動(dòng)方式。3)按設(shè)備的共享屬性分類這種分類方式可將I/O設(shè)備分為如下三類:獨(dú)占設(shè)備。(2)共享設(shè)備。(3)虛擬設(shè)備。2.設(shè)備與控制器之間的接口設(shè)備不是直接與CPU進(jìn)行通信,而是與設(shè)備控制器通信。圖5-1設(shè)備與控制器間的接口設(shè)備控制器主要職責(zé)是控制一個(gè)或多個(gè)I/O設(shè)備,以實(shí)現(xiàn)I/O設(shè)備和計(jì)算機(jī)之間的信息交換。它接收從CPU發(fā)來的命令,并去控制I/O設(shè)備工作,以使處理機(jī)從繁雜的設(shè)備控制事務(wù)中解脫出來。為了實(shí)現(xiàn)設(shè)備的通用性和互換性,控制器和設(shè)備之間應(yīng)采用標(biāo)準(zhǔn)接口,如SCSI(小型計(jì)算機(jī)系統(tǒng)接口)或IDE(集成設(shè)備電子器件)接口。設(shè)備控制器上一般都有一個(gè)接線器,可以通過電纜和標(biāo)準(zhǔn)接口相聯(lián)接,它可以控制2個(gè)、4個(gè)或8個(gè)同類設(shè)備。對(duì)于個(gè)人計(jì)算機(jī)和小型計(jì)算機(jī)系統(tǒng)來說,由于它們的I/O系統(tǒng)比較簡(jiǎn)單,所以CPU與控制器之間的通信采用單總線模型,而大型主機(jī)則采用通道模型。5.1.2設(shè)備控制器CPU存儲(chǔ)器磁盤控制器打印機(jī)控制器其它控制器磁盤驅(qū)動(dòng)器打印機(jī)系統(tǒng)總線……圖單總線型I/O系統(tǒng)結(jié)構(gòu)內(nèi)存I/O通道1I/O通道2控制器控制器控制器控制器設(shè)備設(shè)備圖5.2具有通道的I/O系統(tǒng)結(jié)構(gòu)5.1.2設(shè)備控制器1.設(shè)備控制器的基本功能1)接收和識(shí)別命令(控制寄存器)2)數(shù)據(jù)交換(數(shù)據(jù)寄存器)3)標(biāo)識(shí)和報(bào)告設(shè)備的狀態(tài)(狀態(tài)寄存器)4)地址識(shí)別(地址譯碼器)5)數(shù)據(jù)緩沖(緩沖器)6)差錯(cuò)控制⑴設(shè)備控制器與CPU的接口。該接口用于實(shí)現(xiàn)設(shè)備控制器與CPU之間的通信,其中有三類信號(hào)線:

數(shù)據(jù)線、地址線、控制線。數(shù)據(jù)線通常與兩類寄存器相連接:

①數(shù)據(jù)寄存器。②控制/狀態(tài)寄存器。

⑵設(shè)備控制器與設(shè)備的接口。在一個(gè)設(shè)備控制器上可以連接一臺(tái)或多臺(tái)設(shè)備。相應(yīng)地,在控制器中就有一個(gè)或多個(gè)設(shè)備接口,一個(gè)接口連接一臺(tái)設(shè)備,在每個(gè)接口中都有數(shù)據(jù)、控制和狀態(tài)三種類型的信號(hào):

①數(shù)據(jù)信號(hào)。②控制信號(hào)。③狀態(tài)信號(hào)。

2.設(shè)備控制器的組成圖5-2設(shè)備控制器的組成(3)I/O邏輯用于對(duì)I/O的控制.通過一組控制線與CPU交互。CPU利用該邏輯向控制器發(fā)送I/O命令;I/O邏輯對(duì)接收到的命令進(jìn)行譯碼。每當(dāng)CPU要啟動(dòng)一個(gè)設(shè)備時(shí),一方面要將啟動(dòng)命令送給控制器;另一方面又同時(shí)通過地址線把地址送給控制器。由控制器的I/O邏輯對(duì)收到的地址進(jìn)行譯碼,再根據(jù)譯出的命令對(duì)所選的設(shè)備進(jìn)行控制。1.通道及通道與CPU間的通信在CPU與設(shè)備控制器之間增設(shè)通道,主要目的是為建立獨(dú)立的I/O操作,把CPU從繁雜的I/O任務(wù)中解脫出來。通道又稱I/O處理機(jī),是一個(gè)獨(dú)立于CPU的專管輸入/輸出控制的處理機(jī),它具有執(zhí)行I/O指令的能力,并通過執(zhí)行通道(I/O)程序來控制設(shè)備與內(nèi)存直接進(jìn)行數(shù)據(jù)交換。有了通道之后,CPU與通道之間的關(guān)系是主從關(guān)系,CPU是主設(shè)備,通道是從設(shè)備,這樣采用通道方式實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)倪^程如下:當(dāng)運(yùn)行的程序要求傳輸數(shù)據(jù)時(shí),CPU向通道發(fā)I/O指令,命令通道開始工作,CPU就可以進(jìn)行其它數(shù)據(jù)處理;通道接收到CPU的I/O指令后,從內(nèi)存中取出相應(yīng)的通道程序,通過執(zhí)行通道程序完成I/O操作;當(dāng)I/O操作完成(或出錯(cuò))時(shí),通道以中斷方式中斷CPU正在執(zhí)行的程序,請(qǐng)求CPU的處理。5.1.3I/O通道2.通道類型按信息交換方式可分為以下三種類型:⑴字節(jié)多路通道它含有多個(gè)非分配型子通道,每個(gè)子通道連接一臺(tái)I/O設(shè)備,這些子通道以字節(jié)為單位按時(shí)間片輪轉(zhuǎn)方式共享主通道。每次子通道控制外設(shè)交換完一個(gè)字節(jié)后,便立即讓出字節(jié)多路通道,以便讓另一個(gè)子通道使用。當(dāng)所有子通道輪轉(zhuǎn)一周后,就又返回來由第一個(gè)子通道去使用字節(jié)多路通道。字節(jié)多路通道不適于連接高速設(shè)備。1)字節(jié)多路通道(ByteMultiplexorChannel)圖5-3字節(jié)多路通道的工作原理(2)

數(shù)組選擇通道(BlockSelectorChannel)它按成組方式進(jìn)行數(shù)據(jù)傳送,每次以塊為單位傳送一批數(shù)據(jù),所以傳輸速度很快,主要用于連接高速外圍設(shè)備,如磁盤等。但由于它只含一個(gè)分配型子通道,在一段時(shí)間內(nèi)只能執(zhí)行一個(gè)通道程序,控制一臺(tái)設(shè)備進(jìn)行數(shù)據(jù)傳送,致使當(dāng)某臺(tái)設(shè)備占用了該通道后,便一直獨(dú)占,直至它傳送完畢釋放該通道,其它設(shè)備才可使用。通道利用率低。(3)數(shù)組多路通道(BlockMultiplexorChannel)

數(shù)組選擇通道雖有很高的傳輸速率,但它卻每次只允許一個(gè)設(shè)備傳輸數(shù)據(jù)。

數(shù)組多路通道是將數(shù)組選擇通道傳輸速率高和字節(jié)多路通道能使各子通道(設(shè)備)分時(shí)并行操作的優(yōu)點(diǎn)相結(jié)合而形成的一種新通道。它含有多個(gè)非分配型子通道,因而這種通道既具有很高的數(shù)據(jù)傳輸速率,又能獲得令人滿意的通道利用率。也正因此,才使該通道能被廣泛地用于連接多臺(tái)高、中速的外圍設(shè)備,其數(shù)據(jù)傳送是按數(shù)組方式進(jìn)行的。20以字節(jié)交叉方式控制設(shè)備傳輸信息慢速設(shè)備2慢速設(shè)備3字節(jié)多路通道慢速設(shè)備1成組多路通道快速設(shè)備1快速設(shè)備2快速設(shè)備3快速設(shè)備i以數(shù)據(jù)塊分時(shí)方式控制設(shè)備傳輸信息數(shù)據(jù)選擇通道快速設(shè)備1快速設(shè)備2快速設(shè)備j以數(shù)據(jù)塊獨(dú)占方式控制設(shè)備3.通道的類型圖5-5多通路I/O系統(tǒng)3.“瓶頸”問題圖5-4單通路I/O系統(tǒng)由于通道價(jià)格昂貴,機(jī)器中所設(shè)置的通道數(shù)量必然較少,這就使通道成了I/O的瓶頸,造成整個(gè)系統(tǒng)吞吐量的下降。5.2I/O控制方式5.2.1程序I/O方式

在程序I/O方式中,由于CPU的高速性和I/O設(shè)備的低速性,致使CPU的絕大部分時(shí)間都處于等待I/O設(shè)備完成數(shù)據(jù)I/O的循環(huán)測(cè)試中,造成對(duì)CPU的極大浪費(fèi)。在該方式中,CPU之所以要不斷地測(cè)試I/O設(shè)備的狀態(tài),就是因?yàn)樵贑PU中無中斷機(jī)構(gòu),使I/O設(shè)備無法向CPU報(bào)告它已完成了一個(gè)字符的輸入操作。圖5-7程序I/O和中斷驅(qū)動(dòng)方式的流程5.2.2中斷驅(qū)動(dòng)I/O控制方式在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è)備都處于忙碌狀態(tài),從而提高了整個(gè)系統(tǒng)的資源利用率及吞吐量。例如,從終端輸入一個(gè)字符的時(shí)間約為100ms,而將字符送入終端緩沖區(qū)的時(shí)間小于0.1ms。若采用程序I/O方式,CPU約有99.9ms的時(shí)間處于忙—等待中。采用中斷驅(qū)動(dòng)方式后,CPU可利用這99.9ms的時(shí)間去做其它事情,而僅用0.1ms的時(shí)間來處理由控制器發(fā)來的中斷請(qǐng)求??梢姡袛囹?qū)動(dòng)方式可以成百倍地提高CPU的利用率。5.2.3直接存儲(chǔ)器訪問DMAI/O控制方式該方式的特點(diǎn)是:①數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊,即在CPU與I/O設(shè)備之間,每次傳送至少一個(gè)數(shù)據(jù)塊;②所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存的,或者相反;③僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí),才需CPU干預(yù),整塊數(shù)據(jù)的傳送是在控制器的控制下完成的??梢姡珼MA方式較之中斷驅(qū)動(dòng)方式,又是成百倍地減少了CPU對(duì)I/O的干預(yù),進(jìn)一步提高了CPU與I/O設(shè)備的并行操作程度。5.2.4I/O通道控制方式1.I/O通道控制方式的引入I/O通道方式是DMA方式的發(fā)展,它可進(jìn)一步減少CPU的干預(yù),即把對(duì)一個(gè)數(shù)據(jù)塊的讀(或?qū)?為單位的干預(yù),減少為對(duì)一組數(shù)據(jù)塊的讀(或?qū)?及有關(guān)的控制和管理為單位的干預(yù)。同時(shí),又可實(shí)現(xiàn)CPU、通道和I/O設(shè)備三者的并行操作,從而更有效地提高整個(gè)系統(tǒng)的資源利用率。例如,當(dāng)CPU要完成一組相關(guān)的讀(或?qū)?操作及有關(guān)控制時(shí),只需向I/O通道發(fā)送一條I/O指令,以給出其所要執(zhí)行的通道程序的首址和要訪問的I/O設(shè)備,通道接到該指令后,通過執(zhí)行通道程序便可完成CPU指定的I/O任務(wù)。2.通道程序通道通過執(zhí)行通道程序,與設(shè)備控制器共同實(shí)現(xiàn)對(duì)I/O設(shè)備的控制。通道程序由一系列通道指令構(gòu)成。通道指令與一般的機(jī)器指令不同,在它的每條指令中都包含如下信息:操作碼。(2)內(nèi)存地址。(3)計(jì)數(shù)。(4)通道程序結(jié)束位P。(5)記錄結(jié)束標(biāo)志R。操作PR計(jì)數(shù)內(nèi)存地址WRITE0080813WRITE001401034WRITE01605830WRITE013002000WRITE002501850WRITE11250720下圖是由6條通道指令所構(gòu)成的簡(jiǎn)單的通道程序。該程序的功能是將內(nèi)存中不同地址的數(shù)據(jù),寫成多個(gè)記錄。5.3緩沖管理5.3.1緩沖的引入緩和CPU與I/O設(shè)備間速度不匹配的矛盾。(2)減少對(duì)CPU的中斷頻率,放寬對(duì)CPU中斷響應(yīng)時(shí)間的

限制。(3)提高CPU和I/O設(shè)備之間的并行性。圖5-10利用緩沖寄存器實(shí)現(xiàn)緩沖僅有一位緩沖區(qū)CPU每100μs內(nèi)就得予以響應(yīng)加一個(gè)8位緩沖器CPU被中斷頻率會(huì)降低1/8再加一個(gè)8位緩沖器CPU被中斷頻率又降低1/85.3.2單緩沖和雙緩沖1.單緩沖(SingleBuffer)操作系統(tǒng)提供的一種最簡(jiǎn)單的緩沖形式。單緩沖指當(dāng)一個(gè)進(jìn)程發(fā)出一I/O請(qǐng)求時(shí),操作系統(tǒng)便在主存中為之分配一個(gè)緩沖區(qū),用來臨時(shí)存放輸入/輸出數(shù)據(jù)。由于單緩沖只設(shè)置一個(gè)緩沖區(qū),那么在某一時(shí)刻該緩沖區(qū)只能存放輸入數(shù)據(jù)或輸出數(shù)據(jù),而不能既是輸入數(shù)據(jù)又是輸出數(shù)據(jù),否則會(huì)引起緩沖區(qū)中數(shù)據(jù)的混亂。2雙緩沖

雙緩沖指在操作系統(tǒng)中為某一設(shè)備設(shè)置兩個(gè)緩沖區(qū),當(dāng)一個(gè)緩沖區(qū)中的數(shù)據(jù)尚未被處理時(shí)可使用另一個(gè)緩沖區(qū)存放從設(shè)備讀入的數(shù)據(jù),以此來進(jìn)一步提高CPU和外設(shè)的并行程度。如下圖(a)所示為雙緩沖示意圖。A、B為兩個(gè)緩沖區(qū)。AB用戶進(jìn)程操作系統(tǒng)I/O設(shè)備圖

雙緩沖示意圖圖5-13雙機(jī)通信時(shí)緩沖區(qū)的設(shè)置任何時(shí)候只能單向傳送雙向傳送時(shí),每機(jī)必備兩個(gè)緩沖區(qū)5.3.3循環(huán)緩沖

當(dāng)輸入與輸出的速度基本相配時(shí),采用雙緩沖能獲得較好的效果。但若兩者的速度相差較大,雙緩沖效果則不夠理想。由此引入多緩沖機(jī)制,可將多個(gè)緩沖組織成循環(huán)緩沖形式。循環(huán)緩沖的組成:(1)多個(gè)緩沖區(qū)。作為輸入的緩沖區(qū)分三種:裝輸入數(shù)據(jù)的空緩沖區(qū)R、已裝滿數(shù)據(jù)的緩沖區(qū)G以及計(jì)算進(jìn)程正在使用的緩沖區(qū)C。(2)多個(gè)指針。作為輸入的緩沖區(qū)設(shè)置3個(gè)指針:指示計(jì)算進(jìn)程下一個(gè)可用緩沖區(qū)Nextg、指示輸入進(jìn)程下次可用空緩沖區(qū)R指針Nexti,計(jì)算進(jìn)程正在使用的緩沖區(qū)C的指針Current。圖5-14循環(huán)緩沖5.3.4緩沖池(BufferPool)循環(huán)緩沖僅適用于某特定的I/O進(jìn)程和計(jì)算進(jìn)程,它們屬于專用緩沖。當(dāng)系統(tǒng)較大時(shí),會(huì)有許多這樣的循環(huán)緩沖,當(dāng)緩沖區(qū)到達(dá)一定數(shù)量時(shí),對(duì)系統(tǒng)性能的提高微乎其微,甚至?xí)瓜到y(tǒng)性能下降。

為了提高緩沖區(qū)的利用率,目前廣泛流行公用緩沖池,在池中設(shè)置多個(gè)可供若干進(jìn)程共享的緩沖區(qū)。即緩沖池是將多個(gè)大小相同的緩沖區(qū)連接起來統(tǒng)一進(jìn)行管理。操作系統(tǒng)與用戶進(jìn)程將輪流地使用各個(gè)緩沖區(qū),以改善系統(tǒng)性能。5.3.4緩沖池(BufferPool)1.緩沖池的組成對(duì)于既可用于輸入又可用于輸出的公用緩沖池,其中至少應(yīng)含有以下三種類型的緩沖區(qū):

①空閑緩沖區(qū);②裝滿輸入數(shù)據(jù)的緩沖區(qū);③裝滿輸出數(shù)據(jù)的緩沖區(qū)。

為了管理上的方便,可將相同類型的緩沖區(qū)鏈成一個(gè)隊(duì)列,形成以下三個(gè)隊(duì)列:(1)空緩沖隊(duì)列emq.(2)輸入隊(duì)列inq。(3)輸出隊(duì)列outq。除了上述三個(gè)隊(duì)列外,還具有四種工作緩沖區(qū):用于收容輸入數(shù)據(jù)的工作緩沖區(qū)。

用于提取輸入數(shù)據(jù)的工作緩沖區(qū)。

用于收容輸出數(shù)據(jù)的工作緩沖區(qū)。

用于提取輸出數(shù)據(jù)的工作緩沖區(qū)。2.緩沖池管理的基本操作Getbuf過程和Putbuf過程Getbuf(type):

用于從type所制定的隊(duì)列的隊(duì)首摘下一個(gè)緩沖區(qū)。Putbuf(type,number):用于將由參數(shù)number所指示的緩沖區(qū)掛在type隊(duì)列上。3.緩沖池的工作方式圖5-15緩沖區(qū)的工作方式

緩沖池工作在收容輸入、提取輸入、收容輸出和提取輸出四種方式下:①收容輸入工作方式(輸入進(jìn)程需要輸入數(shù)據(jù)時(shí))②提取輸入工作方式(計(jì)算進(jìn)程需要輸入數(shù)據(jù)時(shí))③收容輸出工作方式(計(jì)算進(jìn)程需要輸出數(shù)據(jù)時(shí))④提取輸出工作方式(輸出進(jìn)程需要輸出數(shù)據(jù)時(shí))5.4設(shè)備分配5.4.1設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)在進(jìn)行設(shè)備分配時(shí)所需的數(shù)據(jù)結(jié)構(gòu)主要有:設(shè)備控制表DCT(DeviceControlTable)控制器控制表COCT(ControllerControlTable)通道控制表CHCT(ChannelControlTable)系統(tǒng)設(shè)備表SDT(SystemDeviceTable)5.4設(shè)備分配5.4.1設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)系統(tǒng)為每一個(gè)設(shè)備都配置了一張?jiān)O(shè)備控制表DCT,用來記錄設(shè)備的特性、設(shè)備和I/O控制器的連接情況以及設(shè)備的分配和使用情況。它主要包括以下內(nèi)容:①設(shè)備標(biāo)識(shí)符。②設(shè)備類型。③設(shè)備地址。④設(shè)備狀態(tài)。⑤與設(shè)備連接的控制器表指針。⑥等待該設(shè)備的進(jìn)程隊(duì)列。⑦重復(fù)執(zhí)行次數(shù)或時(shí)間。⑧其它信息,如一些釋放信息等。1.設(shè)備控制表DCT5.4設(shè)備分配5.4.1設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)1.設(shè)備控制表DCT設(shè)備類型設(shè)備標(biāo)識(shí)符設(shè)備狀態(tài):忙/閑等待/不等待與此設(shè)備連接的控制器控制表指針等待此設(shè)備的進(jìn)程表指針重復(fù)執(zhí)行的次數(shù)和時(shí)間其他DCT1DCT2……DCTi……設(shè)備控制表集合與此設(shè)備連接的COCT與此控制器連接的CHCT0與此控制器連接的CHCT0設(shè)備A的DCT控制器B的COCT通道D的CHCT通道E的CHCT控制器C的COCT圖DCT和COCT、CHCT的連接正在使用該設(shè)備的進(jìn)程等待該設(shè)備的進(jìn)程表BCD設(shè)備A的DCTPCBB-PCBC-PCBD-PCB圖DCT和PCB的連接2.控制器控制表、通道控制表和系統(tǒng)設(shè)備表圖COCT、CHCT和SDT表5.4.2設(shè)備分配時(shí)應(yīng)考慮的因素系統(tǒng)在分配設(shè)備時(shí),應(yīng)考慮的因素有:設(shè)備的固有屬性。設(shè)備分配算法。設(shè)備分配的安全性。設(shè)備獨(dú)立性491.設(shè)備的屬性設(shè)備的屬性是指該設(shè)備是適合某進(jìn)程獨(dú)占使用,還是適合幾個(gè)進(jìn)程共享使用。(1)獨(dú)占設(shè)備的分配在該進(jìn)程占用這個(gè)設(shè)備期間,即使設(shè)備空置不用,也不能再讓別的進(jìn)程使用。對(duì)于獨(dú)占設(shè)備應(yīng)該采用獨(dú)占分配策略,即在將一臺(tái)設(shè)備分配給某個(gè)進(jìn)程后,便一直由該進(jìn)程獨(dú)占,直至該進(jìn)程完成并釋放設(shè)備為止。按照獨(dú)占分配的策略,對(duì)獨(dú)占設(shè)備有兩種分配方式:一種是靜態(tài)分配方式一種是動(dòng)態(tài)分配方式50靜態(tài)分配方式安全性好,不會(huì)出現(xiàn)死鎖,但設(shè)備的利用率低。靜態(tài)分配方式動(dòng)態(tài)分配方式靜態(tài)分配方式是用戶作業(yè)開始運(yùn)行之前,由系統(tǒng)一次分配該作業(yè)所要求的全部設(shè)備、控制器和通道。一旦分配之后,這些資源就一直為該作業(yè)占用,直到該作業(yè)被撤消。動(dòng)態(tài)分配方式是指在進(jìn)程運(yùn)行過程中根據(jù)需要進(jìn)行分配。當(dāng)進(jìn)程需要使用設(shè)備時(shí),通過系統(tǒng)調(diào)用向操作系統(tǒng)提出設(shè)備請(qǐng)求,再由系統(tǒng)按規(guī)定的策略進(jìn)行分配。一旦傳送完成,便立即釋放。動(dòng)態(tài)分配有利于提高設(shè)備的利用率,但是在分配策略不好時(shí)有可能造成進(jìn)程死鎖。51(2)共享設(shè)備的使用共享設(shè)備大多是高速、大容量的直接存取存儲(chǔ)設(shè)備。這類設(shè)備不必分配,采用共享的策略,由若干個(gè)用戶進(jìn)程同時(shí)使用。用戶對(duì)共享設(shè)備的使用,一般以文件方式存取。通過文件系統(tǒng)可以實(shí)現(xiàn)按文件名來存取共享設(shè)備上的信息。(3)虛擬設(shè)備的使用因?yàn)樘摂M設(shè)備已屬于共享設(shè)備,因而也可采用共享策略,讓多個(gè)進(jìn)程同時(shí)使用。通過快速的共享方式的設(shè)備,把一臺(tái)低速物理獨(dú)占設(shè)備改造成為若干臺(tái)虛擬的同類設(shè)備。從用戶觀點(diǎn)看,每個(gè)用戶都感到是系統(tǒng)為自己提供了一臺(tái)物理設(shè)備似的。節(jié)目錄522.設(shè)備分配算法設(shè)備的分配原則,除了與設(shè)備的屬性有關(guān)外,還與系統(tǒng)采用的算法有關(guān)。一般采用兩種算法:先請(qǐng)求先服務(wù)優(yōu)先級(jí)高者優(yōu)先這就是先來先服務(wù)的方法。當(dāng)有多個(gè)進(jìn)程對(duì)同一個(gè)設(shè)備提出I/O請(qǐng)求時(shí),或者是在同一設(shè)備上進(jìn)行多次傳送時(shí),系統(tǒng)按進(jìn)程提出I/O請(qǐng)求的先后順序,將進(jìn)程的I/O請(qǐng)求命令排成I/O請(qǐng)求隊(duì)列。當(dāng)該設(shè)備空閑時(shí),系統(tǒng)從隊(duì)首取下一個(gè)I/O請(qǐng)求消息,將設(shè)備分配給發(fā)出這個(gè)請(qǐng)求命令的進(jìn)程。53這種算法將I/O請(qǐng)求隊(duì)列中的I/O請(qǐng)求按照發(fā)出此I/O請(qǐng)求的進(jìn)程的優(yōu)先級(jí)由高至低進(jìn)行排序。系統(tǒng)在設(shè)備空閑時(shí),總是從隊(duì)首取下最高優(yōu)先級(jí)進(jìn)程發(fā)出的I/O請(qǐng)求進(jìn)行設(shè)備分配。這與進(jìn)程調(diào)度的優(yōu)先算法是一致的。即進(jìn)程的優(yōu)先級(jí)高,它的I/O請(qǐng)求優(yōu)先級(jí)也優(yōu)先予以滿足,顯然有助于該進(jìn)程盡快完成,從而盡早釋放它所占有的系統(tǒng)資源。對(duì)于優(yōu)先級(jí)相同的I/O請(qǐng)求,則按先請(qǐng)求先服務(wù)的原則排隊(duì)。設(shè)備的分配原則,除了與設(shè)備的屬性有關(guān)外,還與系統(tǒng)采用的算法有關(guān)。一般采用兩種算法:先請(qǐng)求先服務(wù)優(yōu)先級(jí)高者優(yōu)先和進(jìn)程調(diào)度算法比較少了什么?為什么?和進(jìn)程調(diào)度比較少了輪轉(zhuǎn)法。獨(dú)占設(shè)備不能被中斷呀!2.設(shè)備分配算法543.設(shè)備分配的安全性為了提高設(shè)備的利用率,現(xiàn)代操作系統(tǒng)的設(shè)備分配大都采用了動(dòng)態(tài)分配方式。從進(jìn)程運(yùn)行的安全性出發(fā)產(chǎn)生了兩種設(shè)備分配方式:(1)安全的分配方式在這種分配方式中,每當(dāng)進(jìn)程以命令形式發(fā)出I/O請(qǐng)后,便進(jìn)入阻塞狀態(tài),直到其I/O操作完成時(shí)才被喚醒。在采用這種分配方式時(shí),一個(gè)進(jìn)程只能提出一個(gè)I/O請(qǐng)求,一旦進(jìn)程獲得某個(gè)設(shè)備后便阻塞、使它不可能再請(qǐng)求其它任何資源,而它運(yùn)行時(shí)又不保持任何資源。因此,這種分配方式使得死鎖產(chǎn)生的四個(gè)必要條件之一的“請(qǐng)求和保持”條件就不會(huì)成立,因而分配是安全的。55這種分配方式的優(yōu)點(diǎn)是程序的編制更為方便。另一個(gè)優(yōu)點(diǎn)是設(shè)備分配安全,不會(huì)產(chǎn)生死鎖現(xiàn)象。其缺點(diǎn)是進(jìn)程和I/O設(shè)備之間是串行工作,進(jìn)程推進(jìn)緩慢。(2)不安全的分配方式為了加快推進(jìn)速度,使CPU和I/O設(shè)備能并行工作,應(yīng)使某些進(jìn)程以命令形式發(fā)出I/O請(qǐng)求之后,仍可繼續(xù)進(jìn)行,需要時(shí)又可發(fā)出第二個(gè)I/O請(qǐng)求、第三個(gè)I/O請(qǐng)求。僅當(dāng)進(jìn)程所請(qǐng)求的設(shè)備已被另一進(jìn)程占用時(shí),進(jìn)程才進(jìn)入阻塞狀態(tài)。這種分配方式的優(yōu)點(diǎn)是一個(gè)進(jìn)程可同時(shí)操作多個(gè)設(shè)備,從而使進(jìn)程推進(jìn)迅速。缺點(diǎn)是分配不安全,有可能產(chǎn)生死鎖現(xiàn)象。節(jié)目錄5.4.3設(shè)備獨(dú)立性

1.設(shè)備獨(dú)立性(DeviceIndependence)的概念為了提高操作系統(tǒng)的可擴(kuò)展性和適應(yīng)性,人們提出了設(shè)備獨(dú)立性(即設(shè)備無關(guān)性)的概念。其含義是:用戶編寫的

應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備,即使設(shè)備更換了,

應(yīng)用程序也不用改變。為了實(shí)現(xiàn)設(shè)備獨(dú)立性而引入了邏輯設(shè)備和物理設(shè)備的概念。

所謂邏輯設(shè)備是實(shí)際物理設(shè)備屬性的抽象,它并不局限于

某個(gè)具體設(shè)備。在應(yīng)用程序中,使用邏輯設(shè)備名稱來請(qǐng)

求使用某類設(shè)備;而系統(tǒng)在實(shí)際執(zhí)行時(shí),還必須使用物理

設(shè)備名稱。因此,系統(tǒng)須具有將邏輯設(shè)備名稱轉(zhuǎn)換為某物

理設(shè)備名稱的功能。設(shè)備獨(dú)立性的功能可帶來以下兩方面的好處:

1)設(shè)備分配時(shí)的靈活性

當(dāng)應(yīng)用程序(進(jìn)程)以物理設(shè)備名稱來請(qǐng)求使用指定的某臺(tái)設(shè)備時(shí),如果該設(shè)備已經(jīng)被占用,而此時(shí)盡管還有幾臺(tái)其它相同的設(shè)備正在空閑,該進(jìn)程仍然阻塞。但如進(jìn)程以邏輯設(shè)備名稱請(qǐng)求某類設(shè)備時(shí),系統(tǒng)可立即將該類設(shè)備中的任一臺(tái)分配給進(jìn)程,僅當(dāng)所有此類設(shè)備已全部分配完畢時(shí),進(jìn)程才會(huì)阻塞。

2)易于實(shí)現(xiàn)I/O重定向

當(dāng)調(diào)試一個(gè)程序時(shí),可將程序的輸出送屏幕顯示;而在調(diào)試完成后,如需要打印程序的輸出結(jié)果,系統(tǒng)只要將邏輯設(shè)備對(duì)應(yīng)的物理輸出設(shè)備由顯示器改為打印機(jī)即可,而不必修改應(yīng)用程序。5.4.4SPOOLing技術(shù)1.什么是SPOOLing為了緩和CPU的高速性與I/O設(shè)備低速性間的矛盾而引入了脫機(jī)輸入、脫機(jī)輸出技術(shù)。該技術(shù)是利用專門的外圍控制機(jī),將低速I/O設(shè)備上的數(shù)據(jù)傳送到高速磁盤上;或者相反。

5.4.5SPOOLing技術(shù)1.什么是SPOOLing在多道程序的環(huán)境下,利用多道程序中的一道或兩道程序來模擬外圍控制機(jī),把低速I/O設(shè)備上的數(shù)據(jù)傳送到高速磁盤上或把數(shù)據(jù)從磁盤傳送到低速輸出設(shè)備上。這樣,便可在主機(jī)的直接控制下,實(shí)現(xiàn)脫機(jī)輸入、輸出功能。此時(shí)的外圍操作與CPU對(duì)數(shù)據(jù)的處理同時(shí)進(jìn)行,我們把這種在聯(lián)機(jī)情況下實(shí)現(xiàn)的同時(shí)外圍操作稱為SPOOLing(SimultaneausPeriphernalOperatingOn-Line),或稱為假脫機(jī)操作。2.SPOOLing系統(tǒng)的組成輸入井和輸出井。是在磁盤上開辟的兩個(gè)大存儲(chǔ)空間,輸入井是模擬脫機(jī)輸入時(shí)的磁盤,用于暫存I/O設(shè)備輸入的數(shù)據(jù);輸出井是模擬脫機(jī)輸出時(shí)的磁盤,用于暫存用戶程序的輸出數(shù)據(jù)。輸入緩沖區(qū)和輸出緩沖區(qū)。在內(nèi)存中開辟的兩個(gè)緩沖區(qū)。輸入緩沖區(qū)用于暫存由輸入設(shè)備送來的數(shù)據(jù),以后再傳送到輸入井。輸出緩沖區(qū)用于暫存從輸出井送來的數(shù)據(jù),以后再傳送給輸出設(shè)備。輸入進(jìn)程SPi和輸出進(jìn)程SPo。Spi模擬脫機(jī)輸入時(shí)的外圍控制機(jī),將用戶要求的數(shù)據(jù)從輸入機(jī)通過輸入緩沖區(qū)再送到輸入井,當(dāng)CPU需要輸入數(shù)據(jù)時(shí),直接從輸入井讀入內(nèi)存;Spo模擬脫機(jī)輸出時(shí)的外圍控制機(jī),把用戶要求輸出的數(shù)據(jù),先從內(nèi)存送到輸出井,待輸出設(shè)備空閑,再將輸出井中的數(shù)據(jù)經(jīng)過輸出緩沖區(qū)送到輸出設(shè)備上。2.SPOOLing系統(tǒng)的組成圖5-19SPOOLing系統(tǒng)的組成3.共享打印機(jī)將一臺(tái)獨(dú)享打印機(jī)改造為可供多個(gè)用戶共享的打印機(jī),是應(yīng)用SPOOLing技術(shù)的典型實(shí)例。共享打印機(jī)技術(shù)已被廣泛地用于多用戶系統(tǒng)和局域網(wǎng)絡(luò)中。當(dāng)用戶進(jìn)程請(qǐng)求打印輸出時(shí),SPOOLing系統(tǒng)同意為它打印輸出,但并不真正立即把打印機(jī)分配給該用戶進(jìn)程,而只為它做兩件事:①由輸出進(jìn)程在輸出井中為之申請(qǐng)一個(gè)空閑磁盤塊區(qū),并將要打印的數(shù)據(jù)送入其中;②輸出進(jìn)程再為用戶進(jìn)程申請(qǐng)一張空白的用戶請(qǐng)求打印表,并將用戶的打印要求填入其中,再將該表掛到請(qǐng)求打印隊(duì)列上。若打印機(jī)空閑,輸出程序從請(qǐng)求打印隊(duì)首取表,將要打印的數(shù)據(jù)從輸出井傳送到內(nèi)存緩沖區(qū),再進(jìn)行打印,直到打印隊(duì)列為空。633、共享打印機(jī)4.SPOOLing系統(tǒng)的特點(diǎn)提高了I/O的速度。從對(duì)低速I/O設(shè)備進(jìn)行的I/O操作變?yōu)閷?duì)輸入井或輸出井的操作,如同脫機(jī)操作一樣,提高了I/O速度,緩和了CPU與低速I/O設(shè)備速度不匹配的矛盾.

(2)將獨(dú)占設(shè)備改造為共享設(shè)備。設(shè)備并沒有分配給任何進(jìn)程.在輸入井或輸出井中,分配給進(jìn)程的是一個(gè)存儲(chǔ)區(qū)和建立一張I/O請(qǐng)求表.(3)實(shí)現(xiàn)了虛擬設(shè)備功能。多個(gè)進(jìn)程同時(shí)使用一獨(dú)享設(shè)備,而對(duì)每一進(jìn)程而言,都認(rèn)為自己獨(dú)占這一設(shè)備,不過,該設(shè)備是邏輯上的設(shè)備.5.5設(shè)備處理設(shè)備處理程序通常又稱為設(shè)備驅(qū)動(dòng)程序,它是I/O進(jìn)程與設(shè)備控制器之間的通信程序。其主要任務(wù)是接收上層軟件發(fā)來的抽象要求,如read或write命令,再把他轉(zhuǎn)換為具體要求后,發(fā)送給設(shè)備控制器,啟動(dòng)設(shè)備去執(zhí)行;此外,它也將設(shè)備控制器發(fā)來的信號(hào)傳送給上層軟件。由于驅(qū)動(dòng)程序與硬件密切相關(guān),每一類設(shè)備都應(yīng)配置一種驅(qū)動(dòng)程序,也可為功能類似的多類設(shè)備配置一個(gè)驅(qū)動(dòng)程序。5.5設(shè)備處理5.5.1設(shè)備驅(qū)動(dòng)程序的功能和特點(diǎn)1.設(shè)備驅(qū)動(dòng)程序的功能(1)接收由I/O進(jìn)程發(fā)來的命令和參數(shù),并將命令中的抽象要求轉(zhuǎn)換為具體要求,例如,將磁盤塊號(hào)轉(zhuǎn)換為磁盤的盤面、磁道號(hào)及扇區(qū)號(hào)。

(2)檢查用戶I/O請(qǐng)求的合法性,了解I/O設(shè)備的狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備的工作方式。(3)發(fā)出I/O命令,如果設(shè)備空閑,便立即啟動(dòng)I/O設(shè)備去完成指定的I/O操作;如果設(shè)備處于忙碌狀態(tài),則將請(qǐng)求者的請(qǐng)求塊掛在設(shè)備隊(duì)列上等待。(4)及時(shí)響應(yīng)由控制器或通道發(fā)來的中斷請(qǐng)求,并根據(jù)其中斷類型調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理。

(5)對(duì)于設(shè)置有通道的計(jì)算機(jī)系統(tǒng),驅(qū)動(dòng)程序還應(yīng)能夠根據(jù)用戶的I/O請(qǐng)求,自動(dòng)地構(gòu)成通道程序。2.設(shè)備驅(qū)動(dòng)程序的特點(diǎn)(1)驅(qū)動(dòng)程序主要是指在請(qǐng)求I/O的進(jìn)程與設(shè)備控制器之間的一個(gè)通信和轉(zhuǎn)換程序。(2)驅(qū)動(dòng)程序與設(shè)備控制器和I/O設(shè)備的硬件特性緊密相關(guān),因而對(duì)不同類型的設(shè)備應(yīng)配置不同的驅(qū)動(dòng)程序。(3)驅(qū)動(dòng)程序與I/O設(shè)備所采用的I/O控制方式緊密相關(guān)。常用的I/O控制方式是中斷驅(qū)動(dòng)和DMA方式,兩種控制方式下的驅(qū)動(dòng)程序也不同。(4)由于驅(qū)動(dòng)程序與硬件緊密相關(guān),因而其中一部分必須用匯編語言書寫。目前許多驅(qū)動(dòng)程序的基本部分已固化在ROM中。5.5.2設(shè)備驅(qū)動(dòng)程序的處理過程不同類型的設(shè)備有不同的設(shè)備驅(qū)動(dòng)程序,但大體可分成兩部分,除了有能夠驅(qū)動(dòng)I/O設(shè)備工作的驅(qū)動(dòng)程序外,還需設(shè)備中斷處理程序,以處理I/O完成后的工作。啟動(dòng)設(shè)備之前,設(shè)備驅(qū)動(dòng)程序的處理過程如下:將抽象要求轉(zhuǎn)換為具體要求2.檢查I/O請(qǐng)求的合法性3.讀出和檢查設(shè)備的狀態(tài)4.傳送必要的參數(shù)5.工作方式的設(shè)置6.啟動(dòng)I/O設(shè)備5.5.3中斷處理程序的處理過程處理過程如下:?jiǎn)拘驯蛔枞尿?qū)動(dòng)(程序)進(jìn)程2.保護(hù)被中斷進(jìn)程的CPU環(huán)境3.轉(zhuǎn)入相應(yīng)的設(shè)備處理程序4.中斷處理恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)圖5-20中斷現(xiàn)場(chǎng)保護(hù)示意圖圖5-21中斷處理流程I/O操作完成后,驅(qū)動(dòng)程序必須檢查本次I/O操作中是否發(fā)生了錯(cuò)誤,并向上層軟件匯報(bào),最終向調(diào)用者報(bào)告本次I/O的執(zhí)行情況。I/O軟件5.6磁盤存儲(chǔ)器管理5.6.1磁盤性能簡(jiǎn)述數(shù)據(jù)的組織和格式包括一個(gè)或多個(gè)盤片,每個(gè)盤片分兩面,每面分成若干磁道(500~2000),每條磁道上存儲(chǔ)相同數(shù)目的二進(jìn)制位,每條磁道又分成若干小扇區(qū)(10~100)。為在磁盤上存儲(chǔ)數(shù)據(jù),必須先將磁盤格式化。圖5-22磁盤的格式化2.磁盤的類型常見分類:硬盤和軟盤、單片盤和多片盤、固定頭磁盤和移動(dòng)頭磁盤。1)固定頭磁盤這種磁盤在每條磁道上都有一讀/寫磁頭,所有的磁頭都被裝在一剛性磁臂中。通過這些磁頭可訪問所有各磁道,并進(jìn)行并行讀/寫,有效地提高了磁盤的I/O速度。這種結(jié)構(gòu)的磁盤主要用于大容量磁盤上。

2)移動(dòng)頭磁盤每一個(gè)盤面僅配有一個(gè)磁頭,也被裝入磁臂中。為能訪問該盤面上的所有磁道,該磁頭必須能移動(dòng)以進(jìn)行尋道??梢?,移動(dòng)磁頭僅能以串行方式讀/寫,致使其I/O速度較慢;但由于其結(jié)構(gòu)簡(jiǎn)單,故仍廣泛應(yīng)用于中小型磁盤設(shè)備中。3.磁盤訪問時(shí)間磁盤設(shè)備工作時(shí),以恒定速率旋轉(zhuǎn)。為了讀或?qū)?,磁頭必須移動(dòng)到所要求的磁道上,并等待所要求的扇區(qū)的開始位置旋轉(zhuǎn)到磁頭下,然后開始讀寫數(shù)據(jù)。

1)尋道時(shí)間Ts這是指把磁臂(磁頭)移動(dòng)到指定磁道上所經(jīng)歷的時(shí)間。該時(shí)間是啟動(dòng)磁臂的時(shí)間s與磁頭移動(dòng)n條磁道所花費(fèi)的時(shí)間之和,即Ts=m×n+s其中,m是一常數(shù),與磁盤驅(qū)動(dòng)器的速度有關(guān),對(duì)一般磁盤,m=0.2;對(duì)高速磁盤,m≤0.1,磁臂的啟動(dòng)時(shí)間約為2ms。這樣,對(duì)一般的溫盤(溫切斯特),其尋道時(shí)間將隨尋道距離的增加而增大,大體上是5~30ms。2)旋轉(zhuǎn)延遲時(shí)間Tτ這是指定扇區(qū)移動(dòng)到磁頭下面所經(jīng)歷的時(shí)間。對(duì)于硬盤,典型的旋轉(zhuǎn)速度大多為5400r/min,每轉(zhuǎn)需時(shí)11.1ms,平均旋轉(zhuǎn)延遲時(shí)間Tτ為5.55ms;對(duì)于軟盤,其旋轉(zhuǎn)速度為300r/min或600r/min,這樣,平均Tτ為50~100ms。3)傳輸時(shí)間Tt

這是指把數(shù)據(jù)從磁盤讀出或向磁盤寫入數(shù)據(jù)所經(jīng)歷的時(shí)間。Tt的大小與每次所讀/寫的字節(jié)數(shù)b和旋轉(zhuǎn)速度有關(guān):其中,r為磁盤每秒鐘的轉(zhuǎn)數(shù);N為一條磁道上的字節(jié)數(shù),當(dāng)一次讀/寫的字節(jié)數(shù)相當(dāng)于半條磁道上的字節(jié)數(shù)時(shí),Tt與Tτ相同,因此,可將訪問時(shí)間Ta表示為:5.6.2磁盤調(diào)度1.先來先服務(wù)FCFS(First-Come,FirstServed)圖5-23FCFS調(diào)度算法優(yōu)點(diǎn):公平、簡(jiǎn)單,每個(gè)進(jìn)程的請(qǐng)求都能依次得到處理。缺點(diǎn):未對(duì)尋道進(jìn)行優(yōu)化,平均尋道時(shí)間可能較長(zhǎng)。FCFS算法僅適用于請(qǐng)求磁盤I/O的進(jìn)程數(shù)目較少的場(chǎng)合。2.最短尋道時(shí)間優(yōu)先SSTF(ShortestSeekTimeFirst)圖5-24SSTF調(diào)度算法3.掃描(SCAN)算法1)進(jìn)程“饑餓”現(xiàn)象SSTF算法雖然能獲得較好的尋道性能,但卻可能導(dǎo)致某個(gè)進(jìn)程發(fā)生“饑餓”(Starvation)現(xiàn)象。因?yàn)橹灰粩嘤行逻M(jìn)程的請(qǐng)求到達(dá),且其所要訪問的磁道與磁頭當(dāng)前所在磁道的距離較近,這種新進(jìn)程的I/O請(qǐng)求必須優(yōu)先滿足。對(duì)SSTF算法略加修改后所形成的SCAN算法,即可防止老進(jìn)程出現(xiàn)“饑餓”現(xiàn)象。2)SCAN算法(電梯調(diào)度算法)圖5-25SCAN調(diào)度算法示例4.循環(huán)掃描(CSCAN)算法圖5-26CSCAN調(diào)度算法示例5.6.3磁盤高速緩存(DiskCache)1.磁盤高速緩存的形式

是指利用內(nèi)存中的存儲(chǔ)空間,來暫存從磁盤中讀出的一系列盤塊中的信息。因此,這里的高速緩存是一

溫馨提示

  • 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)論