計(jì)算機(jī)操作系統(tǒng)輸入輸出設(shè)備管理.ppt
《計(jì)算機(jī)操作系統(tǒng)輸入輸出設(shè)備管理.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《計(jì)算機(jī)操作系統(tǒng)輸入輸出設(shè)備管理.ppt(90頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1 第五章設(shè)備管理 5 1I O系統(tǒng)5 2I O控制方式5 3緩沖管理5 4設(shè)備分配5 5設(shè)備處理5 6磁盤存儲(chǔ)器管理 E Mail lchxu QQ 531305157 2 引言 計(jì)算機(jī)系統(tǒng)的一個(gè)重要組成部分是I O系統(tǒng) 在該系統(tǒng)中包括有用于實(shí)現(xiàn)信息輸入 輸出和存儲(chǔ)功能的設(shè)備和相應(yīng)的設(shè)備控制器 在有的大中型機(jī)中 還有I O通道或I O處理機(jī) 設(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ú)立性等 由于I O設(shè)備不僅種類繁多 而且它們的特點(diǎn)和操作方式往往相差甚大 這就使得設(shè)備管理成為操作系統(tǒng)最繁雜且與硬件最緊密相關(guān)的部分 3 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ī) 本節(jié)將介紹 一 I O設(shè)備二 設(shè)備控制器三 I O通道四 總線結(jié)構(gòu) 4 一 I O設(shè)備 1 I O設(shè)備的類型2 設(shè)備與控制器之間的接口 5 1 I O設(shè)備的類型 I O設(shè)備的類型繁多 從OS觀點(diǎn)看 其重要的性能指標(biāo)有 數(shù)據(jù)傳輸速率 數(shù)據(jù)的傳輸單位 設(shè)備共享屬性等 因而可以從不同角度對(duì)它們進(jìn)行分類 1 按傳輸速率分類2 按信息交換的單位分類3 按設(shè)備的共享屬性分類 6 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ī)等 7 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é)至數(shù)千字節(jié) 另一特征是不可尋址 即輸入 輸出時(shí)不能指定數(shù)據(jù)的輸入源地址及輸出的目標(biāo)地址 此外 字符設(shè)備在輸入 輸出時(shí) 通常采用終端驅(qū)動(dòng)方式 8 3 按設(shè)備的共享屬性分類 這種分類方式可將I O設(shè)備分為如下三類 1 獨(dú)占設(shè)備 2 共享設(shè)備 3 虛擬設(shè)備 9 2 設(shè)備與控制器之間的接口 數(shù)據(jù)信號(hào)線控制信號(hào)線狀態(tài)信號(hào)線 10 二 設(shè)備控制器 設(shè)備控制器是計(jì)算機(jī)中的一個(gè)實(shí)體 其主要職責(zé)是控制一個(gè)或多個(gè) 同類 I O設(shè)備 以實(shí)現(xiàn)I O設(shè)備和計(jì)算機(jī)之間的數(shù)據(jù)交換 它是CPU和I O設(shè)備之間的接口 它接收從CPU發(fā)來的命令 并去控制I O設(shè)備工作 以使處理機(jī)從繁雜的設(shè)備控制事務(wù)中解脫出來 設(shè)備控制器是一個(gè)可編址的設(shè)備 當(dāng)它僅控制一個(gè)設(shè)備時(shí) 它只有一個(gè)唯一的設(shè)備地址 若控制器可連接多個(gè)設(shè)備時(shí) 則應(yīng)含有多個(gè)設(shè)備地址 并使每一個(gè)設(shè)備地址對(duì)應(yīng)一個(gè)設(shè)備 設(shè)備控制器的復(fù)雜性因不同設(shè)備而異 相差甚大 于是可把設(shè)備控制器分成兩類 一類用于控制字符設(shè)備的控制器 一類用于控制塊設(shè)備的控制器 在微型機(jī)和小型機(jī)中的控制器 常做成印刷電路卡形式 因而也成接口卡 可將它插入計(jì)算機(jī) 插槽中 本小節(jié)介紹 1 設(shè)備控制器的基本功能2 設(shè)備控制器的組成 11 1 設(shè)備控制器的基本功能 1 接收和識(shí)別命令2 數(shù)據(jù)交換3 標(biāo)識(shí)和報(bào)告設(shè)備的狀態(tài)4 地址識(shí)別5 數(shù)據(jù)緩沖6 差錯(cuò)控制 12 2 設(shè)備控制器的組成 1 設(shè)備控制器與處理機(jī)的接口2 設(shè)備控制器與設(shè)備的接口3 I O邏輯 13 三 I O通道 1 I O通道 I OChannel 設(shè)備的引入2 通道類型3 瓶頸 問題 14 1 I O通道 I OChannel 設(shè)備的引入 設(shè)備控制器雖然已大大減少CPU對(duì)I O設(shè)備的干預(yù) 但當(dāng)主機(jī)所配置的外設(shè)很多是 CPU的負(fù)擔(dān)仍然很重 為此 在CPU和設(shè)備控制器之間有增設(shè)了通道 其主要目的是為了建立獨(dú)立的I O操作 不僅是數(shù)據(jù)的傳輸能獨(dú)立于CPU 而且也希望有關(guān)對(duì)I O操作的組織 管理及其結(jié)束處理也盡量獨(dú)立 以保證CPU有更多的時(shí)間去進(jìn)行數(shù)據(jù)處理 或者說其目的是使一些原來由CPU處理的I O任務(wù)轉(zhuǎn)由通道來承擔(dān) 從而把CPU從繁雜的I O任務(wù)中解脫出來 在設(shè)置了通道后 CPU只需要向通道發(fā)送一條I O指令 通道在接收到該指令后 便從內(nèi)存中取出本次要執(zhí)行的通道程序 然后執(zhí)行該通道程序 僅當(dāng)通道完成了規(guī)定的I O任務(wù)后 才向CPU發(fā)中斷信號(hào) 實(shí)際上 I O通道是一種特殊的處理機(jī) 它具有執(zhí)行I O指令的能力 并通過執(zhí)行通道 I O 程序來控制I O操作 但I(xiàn) O通道又與一般的處理機(jī)不同 主要表現(xiàn)在以下兩個(gè)方面 一是其指令類型單一 這是由于通道硬件比較簡(jiǎn)單 其所能執(zhí)行的命令 主要局限于與I O操作有關(guān)的指令 再就是通道沒有自己的內(nèi)存 通道所執(zhí)行的通道程序是放在主機(jī)的內(nèi)存中的 換言之 是通道與CPU共享內(nèi)存 15 2 通道類型 1 字節(jié)多路通道 ByteMultiplexorChannel 2 數(shù)組選擇通道 BlockSelectorChannel 3 數(shù)組多路通道 BlockMultiplexorChannel 16 1 字節(jié)多路通道 17 2 數(shù)組選擇通道 字節(jié)多路通道不適于連接高速設(shè)備 這推動(dòng)了按數(shù)組方式進(jìn)行數(shù)據(jù)傳送的數(shù)組選擇通道的形成 這種通道雖然可以連接多臺(tái)高速設(shè)備 但由于它只含有一個(gè)分配型子通道 在一段時(shí)間內(nèi)只能執(zhí)行一道通道程序 控制一臺(tái)設(shè)備進(jìn)行數(shù)據(jù)傳送 致使當(dāng)某臺(tái)設(shè)備占用了該通道后 便一直由它獨(dú)占 即使是它無數(shù)據(jù)傳送 通道被閑置 也不允許其它設(shè)備使用該通道 直至該設(shè)備傳送完畢釋放該通道 可見 這種通道的利用率很低 18 3 數(shù)組多路通道 數(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)行的 19 3 瓶頸 問題 20 四 總線結(jié)構(gòu) 總線型I O系統(tǒng)結(jié)構(gòu)中 系統(tǒng)各部件如CPU 存儲(chǔ)器及各種I O設(shè)備之間是通過總線實(shí)現(xiàn)聯(lián)系的 總線的性能是用總線的時(shí)鐘頻率 帶寬和相應(yīng)的總線傳輸速率來衡量的 總線隨著要求的不斷提高從早期的ISA總線發(fā)展到EISA VESA 直到當(dāng)今廣為流行的PCI總線 21 1 ISA和EISA總線 1 ISA IndustryStandardArchitecture 總線 這是為了1984年推出的80286型微機(jī)而設(shè)計(jì)的總線結(jié)構(gòu) 其總線的帶寬為8位 最高傳輸速率為2Mb s 之后不久又推出了16位的 EISA 總線 其最高傳輸速率為8Mb s 后又升至16Mb s 能連接12臺(tái)設(shè)備 2 EISA ExtendedISA 總線 到80年代末期 ISA總線已難于滿足帶寬和傳輸速率的要求 于是人們又開發(fā)出擴(kuò)展ISA EISA 總線 其帶寬為32位 總線的傳輸速率高達(dá)32Mb s 同樣可以連接12臺(tái)外部設(shè)備 22 2 局部總線 LocalBus 1 VESA VideoElectronicStandardAssociation 總線2 PCI PeripheralComponentInterface 總線 23 5 2I O控制方式 一 程序I O方式二 中斷驅(qū)動(dòng)I O控制方式三 直接存儲(chǔ)器訪問DMAI O控制方式四 I O通道控制方式 24 一 程序I O方式 早期的計(jì)算機(jī)系統(tǒng)中 由于無中斷機(jī)構(gòu) 處理及對(duì)I O設(shè)備的控制采取程序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è)字符的輸入操作 25 二 中斷驅(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的利用率 26 三 直接存儲(chǔ)器訪問DMAI O控制方式 1 DMA DirectMemoryAccess 控制方式的引入2 DMA控制器的組成3 DMA工作過程 27 1 DMA控制方式的引入 雖然中斷驅(qū)動(dòng)I O方式比程序I O方式更有效 但CPU是以字 節(jié) 為單位進(jìn)行干預(yù)的 該方式用于塊設(shè)備的I 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ù)的傳送是在控制器的控制下完成的 可見 DMA方式較之中斷驅(qū)動(dòng)方式 又是成百倍地減少了CPU對(duì)I O的干預(yù) 進(jìn)一步提高了CPU與I O設(shè)備的并行操作程度 28 2 DMA控制器的組成 為了實(shí)現(xiàn)在主機(jī)與控制器之間成塊數(shù)據(jù)的直接交換 必須在DMA控制器中設(shè)置如下四類寄存器 1 命令 狀態(tài)寄存器CR 用于接收從CPU發(fā)來的I O命令或有關(guān)控制信息 或設(shè)備的狀態(tài) 2 內(nèi)存地址寄存器MAR 在輸入時(shí) 它存放把數(shù)據(jù)從設(shè)備傳送到內(nèi)存的起始目標(biāo)地址 在輸出時(shí) 它存放由內(nèi)存到設(shè)備的內(nèi)存源地址 3 數(shù)據(jù)寄存器DR 用于暫存從設(shè)備到內(nèi)存 或從內(nèi)存到設(shè)備的數(shù)據(jù) 4 數(shù)據(jù)計(jì)數(shù)器DC 存放本次CPU要讀或?qū)懙淖?節(jié) 數(shù) 29 3 DMA工作過程 30 四 I O通道控制方式 1 I O通道控制方式的引入2 通道程序 31 1 I O通道控制方式的引入 雖然DMA方式比中斷方式已經(jīng)顯著減少了CPU的干預(yù) 但CPU每次發(fā)出一條I O指令也只能讀 寫一個(gè)數(shù)據(jù)塊 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ù) 32 2 通道程序 通道是通過能夠執(zhí)行通道程序 并與設(shè)備控制器共同完成對(duì)I O設(shè)備的控制的 通道程序是由一系列通道指令 或稱為通道命令 所構(gòu)成的 每條通道指令包含 1 操作碼2 內(nèi)存地址3 計(jì)數(shù)4 通道程序結(jié)束位P5 記錄結(jié)束標(biāo)志R右表是一個(gè)六條通道指令構(gòu)成的簡(jiǎn)單通道程序 33 5 3緩沖管理 一 緩沖的引入二 單緩沖和雙緩沖三 循環(huán)緩沖四 緩沖池 BufferPool 34 一 緩沖的引入 1 緩和CPU與I O設(shè)備間速度不匹配的矛盾 2 減少對(duì)CPU的中斷頻率 放寬對(duì)CPU中斷響應(yīng)時(shí)間的限制 3 提高CPU和I O設(shè)備之間的并行性 35 二 單緩沖和雙緩沖 1 單緩沖2 雙緩沖 36 1 單緩沖 37 2 雙緩沖 雙緩沖工作原理 雙機(jī)通信時(shí)緩沖區(qū)的設(shè)置 38 三 循環(huán)緩沖 1 循環(huán)緩沖的組成2 循環(huán)緩沖區(qū)的使用3 進(jìn)程同步 39 1 循環(huán)緩沖的組成 40 2 循環(huán)緩沖區(qū)的使用 1 Getbuf過程2 Releasebuf過程 41 3 進(jìn)程同步 1 Nexti指針追趕上Nextg指針2 Nextg指針追趕上Nexti指針 42 四 緩沖池 BufferPool 1 緩沖池的組成2 Getbuf過程和Putbuf過程3 緩沖區(qū)的工作方式 43 1 緩沖池的組成 對(duì)于既可用于輸入又可用于輸出的公用緩沖池 其中至少應(yīng)含有以下三種類型的緩沖區(qū) 空 閑 緩沖區(qū) 裝滿輸入數(shù)據(jù)的緩沖區(qū) 裝滿輸出數(shù)據(jù)的緩沖區(qū) 為了管理上的方便 可將相同類型的緩沖區(qū)鏈成一個(gè)隊(duì)列 于是可形成以下三個(gè)隊(duì)列 1 空緩沖隊(duì)列emq2 輸入隊(duì)列inq3 輸出隊(duì)列outq 44 2 Getbuf過程和Putbuf過程 ProcedureGetbuf type beginWait RS type Wait MS type B number KG 3 Takebuf type Signal MS type endProcedurePutbuf type number beginWait MS type Addbuf type number Signal MS type Signal RS type end 45 3 緩沖區(qū)的工作方式 46 5 4設(shè)備分配 一 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)二 設(shè)備分配時(shí)應(yīng)考慮的因素三 設(shè)備獨(dú)立性四 獨(dú)占設(shè)備的分配程序五 SPOOLing技術(shù) 47 一 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu) 1 設(shè)備控制表DCT2 控制器控制表 通道控制表和系統(tǒng)設(shè)備表 48 二 設(shè)備分配時(shí)應(yīng)考慮的因素 1 設(shè)備的固有屬性2 設(shè)備分配算法3 設(shè)備分配中的安全性 49 1 設(shè)備的固有屬性 1 獨(dú)享設(shè)備2 共享設(shè)備3 虛擬設(shè)備 50 2 設(shè)備分配算法 1 先來先服務(wù)2 優(yōu)先級(jí)高者優(yōu)先 51 3 設(shè)備分配中的安全性 1 安全分配方式2 不安全分配方式 52 三 設(shè)備獨(dú)立性 1 設(shè)備獨(dú)立性 DeviceIndependence 的概念2 設(shè)備獨(dú)立性軟件3 邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn) 53 1 設(shè)備獨(dú)立性的概念 為了提高OS的可適應(yīng)性和可擴(kuò)展性 在現(xiàn)代OS中都毫無例外地實(shí)現(xiàn)了設(shè)備獨(dú)立性 也稱為設(shè)備無關(guān)性 其基本含義是 應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備 為了實(shí)現(xiàn)設(shè)備獨(dú)立性而引入了邏輯設(shè)備和物理設(shè)備這兩個(gè)概念 在應(yīng)用程序中 使用邏輯設(shè)備名稱來請(qǐng)求使用某類設(shè)備 而系統(tǒng)在實(shí)際執(zhí)行時(shí) 還必須使用物理設(shè)備名稱 因此 系統(tǒng)須具有將邏輯設(shè)備名稱轉(zhuǎn)換為某物理設(shè)備名稱的功能 這非常類似于存儲(chǔ)器管理中所介紹的邏輯地址和物理地址的概念 在實(shí)現(xiàn)了設(shè)備獨(dú)立性的功能后 可帶來以下兩方面的好處 1 設(shè)備分配時(shí)的靈活性2 易于實(shí)現(xiàn)I O重定向 54 2 設(shè)備獨(dú)立性軟件 1 執(zhí)行所有設(shè)備的公有操作 這些公有操作包括 對(duì)獨(dú)立設(shè)備的分配與回收 將邏輯設(shè)備名映射為物理設(shè)備名 進(jìn)一步可以找到相應(yīng)物理設(shè)備的驅(qū)動(dòng)程序 對(duì)設(shè)備進(jìn)行保護(hù) 禁止用戶直接訪問設(shè)備 緩沖管理 即對(duì)字符設(shè)備和塊設(shè)備的緩沖區(qū)進(jìn)行有效的管理 以提高I O的效率 差錯(cuò)控制 由于在I O操作中的絕大多數(shù)錯(cuò)誤都與設(shè)備無關(guān) 故主要由設(shè)備驅(qū)動(dòng)程序處理 而設(shè)備獨(dú)立性軟件只處理那些設(shè)備驅(qū)動(dòng)程序無法處理的錯(cuò)誤 2 向用戶層 或文件層 軟件提供統(tǒng)一接口 無論何種設(shè)備 它們向用戶所提供的接口應(yīng)該是相同的 例如 對(duì)各種設(shè)備的讀操作 在應(yīng)用程序中都使用read 而對(duì)各種設(shè)備的寫操作 也都使用write 55 3 邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn) 1 邏輯設(shè)備表2 LUT的設(shè)置問題 56 四 獨(dú)占設(shè)備的分配程序 1 基本的設(shè)備分配程序1 分配設(shè)備2 分配控制器3 分配通道2 設(shè)備分配程序的改進(jìn)1 增加設(shè)備的獨(dú)立性2 考慮多通路情況 57 五 SPOOLing技術(shù) 1 什么是SPOOLing2 SPOOLing系統(tǒng)的組成3 共享打印機(jī)4 SPOOLing系統(tǒng)的特點(diǎn) 58 1 什么是SPOOLing 為了緩和CPU的高速性與I O設(shè)備低速性間的矛盾而引入了脫機(jī)輸入 脫機(jī)輸出技術(shù) 該技術(shù)是利用專門的外圍控制機(jī) 將低速I O設(shè)備上的數(shù)據(jù)傳送到高速磁盤上 或者相反 事實(shí)上 當(dāng)系統(tǒng)中引入了多道程序技術(shù)后 完全可以利用其中的一道程序 來模擬脫機(jī)輸入時(shí)的外圍控制機(jī)功能 把低速I O設(shè)備上的數(shù)據(jù)傳送到高速磁盤上 再用另一道程序來模擬脫機(jī)輸出時(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ī)操作 59 2 SPOOLing系統(tǒng)的組成 60 3 共享打印機(jī) 共享打印機(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ì)列上 61 4 SPOOLing系統(tǒng)的特點(diǎn) 1 提高了I O的速度2 將獨(dú)占設(shè)備改造為共享設(shè)備3 實(shí)現(xiàn)了虛擬設(shè)備功能 62 5 5設(shè)備處理 一 設(shè)備驅(qū)動(dòng)程序的功能和特點(diǎn)二 設(shè)備驅(qū)動(dòng)程序的處理過程三 中斷處理程序的處理過程 63 一 設(shè)備驅(qū)動(dòng)程序的功能和特點(diǎn) 1 設(shè)備驅(qū)動(dòng)程序的功能2 設(shè)備處理方式3 設(shè)備驅(qū)動(dòng)程序的特點(diǎn) 64 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)成通道程序 65 2 設(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)用 66 3 設(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) 4 由于驅(qū)動(dòng)程序與硬件緊密相關(guān) 因而其中的一部分必須用匯編語言書寫 67 二 設(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è)備 68 三 中斷處理程序的處理過程 1 喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程2 保護(hù)被中斷進(jìn)程的CPU現(xiàn)場(chǎng)3 分析中斷原因 轉(zhuǎn)入相應(yīng)的設(shè)備中斷處理程序4 進(jìn)行中斷處理5 恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng) 69 5 6磁盤存儲(chǔ)器管理 一 磁盤性能簡(jiǎn)述二 磁盤調(diào)度三 磁盤高速緩存四 提高磁盤I O速度的其他方法五 廉價(jià)磁盤冗余陣列 70 一 磁盤性能簡(jiǎn)述 1 數(shù)據(jù)的組織和格式2 磁盤的類型3 磁盤訪問時(shí)間 71 1 數(shù)據(jù)的組織和格式 72 2 磁盤的類型 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è)備中 73 3 磁盤訪問時(shí)間 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) Tt b rN 其中 r為磁盤每秒鐘的轉(zhuǎn)數(shù) N為一條磁道上的字節(jié)數(shù) 當(dāng)一次讀 寫的字節(jié)數(shù)相當(dāng)于半條磁道上的字節(jié)數(shù)時(shí) Tt與T 相同 因此 可將訪問時(shí)間Ta表示為 Ta Ts 1 2r b rN 74 二 磁盤調(diào)度 1 先來先服務(wù)FCFS First Come FirstServed 2 最短尋道時(shí)間優(yōu)先SSTF ShortestSeekTimeFirst 3 掃描 SCAN 算法4 循環(huán)掃描 CSCAN 算法5 N Step SCAN和FSCAN調(diào)度算法 75 1 先來先服務(wù)FCFS 76 2 最短尋道時(shí)間優(yōu)先SSTF 77 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算法 78 4 循環(huán)掃描 CSCAN 算法 79 5 N Step SCAN和FSCAN調(diào)度算法 1 N Step SCAN算法 在SSTF SCAN及CSCAN幾種調(diào)度算法中 都可能出現(xiàn)磁臂停留在某處不動(dòng)的情況 例如 有一個(gè)或幾個(gè)進(jìn)程對(duì)某一磁道有較高的訪問頻率 即這個(gè) 些 進(jìn)程反復(fù)請(qǐng)求對(duì)某一磁道的I O操作 從而壟斷了整個(gè)磁盤設(shè)備 我們把這一現(xiàn)象稱為 磁臂粘著 Armstickiness 在高密度磁盤上容易出現(xiàn)此情況 N步SCAN算法是將磁盤請(qǐng)求隊(duì)列分成若干個(gè)長(zhǎng)度為N的子隊(duì)列 磁盤調(diào)度將按FCFS算法依次處理這些子隊(duì)列 而每處理一個(gè)隊(duì)列時(shí)又是按SCAN算法 對(duì)一個(gè)隊(duì)列處理完后 再處理其他隊(duì)列 當(dāng)正在處理某子隊(duì)列時(shí) 如果又出現(xiàn)新的磁盤I O請(qǐng)求 便將新請(qǐng)求進(jìn)程放入其他隊(duì)列 這樣就可避免出現(xiàn)粘著現(xiàn)象 當(dāng)N值取得很大時(shí) 會(huì)使N步掃描法的性能接近于SCAN算法的性能 當(dāng)N 1時(shí) N步SCAN算法便蛻化為FCFS算法 2 FSCAN算法 FSCAN算法實(shí)質(zhì)上是N步SCAN算法的簡(jiǎn)化 即FSCAN只將磁盤請(qǐng)求隊(duì)列分成兩個(gè)子隊(duì)列 一個(gè)是由當(dāng)前所有請(qǐng)求磁盤I O的進(jìn)程形成的隊(duì)列 由磁盤調(diào)度按SCAN算法進(jìn)行處理 在掃描期間 將新出現(xiàn)的所有請(qǐng)求磁盤I O的進(jìn)程 放入另一個(gè)等待處理的請(qǐng)求隊(duì)列 這樣 所有的新請(qǐng)求都將被推遲到下一次掃描時(shí)處理 80 三 磁盤高速緩存 1 磁盤高速緩存的形式2 數(shù)據(jù)交付方式3 置換算法4 周期性地寫回磁盤 81 1 磁盤高速緩存的形式 這里所說的磁盤高速緩存 是指利用內(nèi)存中的存儲(chǔ)空間 來暫存從磁盤中讀出的一系列盤塊中的信息 因此 這里的高速緩存是一組在邏輯上屬于磁盤 而物理上是駐留在內(nèi)存中的盤塊 高速緩存在內(nèi)存中可分成兩種形式 第一種是在內(nèi)存中開辟一個(gè)單獨(dú)的存儲(chǔ)空間來作為磁盤高速緩存 其大小是固定的 不會(huì)受應(yīng)用程序多少的影響 第二種是把所有未利用的內(nèi)存空間變?yōu)橐粋€(gè)緩沖池 供請(qǐng)求分頁(yè)系統(tǒng)和磁盤I O時(shí) 作為磁盤高速緩存 共享 此時(shí)高速緩存的大小 顯然不再是固定的 當(dāng)磁盤I O的頻繁程度較高時(shí) 該緩沖池可能包含更多的內(nèi)存空間 而在應(yīng)用程序運(yùn)行得較多時(shí) 該緩沖池可能只剩下較少的內(nèi)存空間 82 2 數(shù)據(jù)交付方式 系統(tǒng)可以采取兩種方式 將數(shù)據(jù)交付給請(qǐng)求進(jìn)程 1 數(shù)據(jù)交付 這是直接將高速緩存中的數(shù)據(jù) 傳送到請(qǐng)求者進(jìn)程的內(nèi)存工作區(qū)中 2 指針交付 只將指向高速緩存中某區(qū)域的指針 交付給請(qǐng)求者進(jìn)程 后一種方式由于所傳送的數(shù)據(jù)量少 因而節(jié)省了數(shù)據(jù)從磁盤高速緩存存儲(chǔ)空間到進(jìn)程的內(nèi)存工作區(qū)的時(shí) 83 3 置換算法 由于請(qǐng)求調(diào)頁(yè)中的聯(lián)想存儲(chǔ)器與高速緩存 磁盤I O中 的工作情況不同 因而使得在置換算法中所應(yīng)考慮的問題也有所差異 因此 現(xiàn)在不少系統(tǒng)在設(shè)計(jì)其高速緩存的置換算法時(shí) 除了考慮到最近最久未使用這一原則外 還考慮了以下幾點(diǎn) 1 訪問頻率2 可預(yù)見性3 數(shù)據(jù)的一致性 84 4 周期性地寫回磁盤 在UNIX系統(tǒng)中專門增設(shè)了一個(gè)修改 update 程序 使之在后臺(tái)運(yùn)行 該程序周期性地調(diào)用一個(gè)系統(tǒng)調(diào)用SYNC 該調(diào)用的主要功能是強(qiáng)制性地將所有在高速緩存中已修改的盤塊數(shù)據(jù)寫回磁盤 一般是把兩次調(diào)用SYNC的時(shí)間間隔定為30s 這樣 因系統(tǒng)故障所造成的工作損失不會(huì)超過30s的勞動(dòng)量 而在MS DOS中所采用的方法是 只要高速緩存中的某盤塊數(shù)據(jù)被修改 便立即將它寫回磁盤 并將這種高速緩存稱為 寫穿透 高速緩存 write throughcache MS DOS所采用的寫回方式 幾乎不會(huì)造成數(shù)據(jù)的丟失 但須頻繁地啟動(dòng)磁盤 85 四 提高磁盤I O速度的其他方法 1 提前讀 Read Ahead 2 延遲寫3 優(yōu)化物理塊的分布4 虛擬盤5 優(yōu)化數(shù)據(jù)的分布1 優(yōu)化物理塊的分布2 優(yōu)化索引節(jié)點(diǎn)的分布 86 五 廉價(jià)磁盤冗余陣列 1 并行交叉存取2 RAID的分級(jí)3 RAID的優(yōu)點(diǎn) 87 1 并行交叉存取 88 2 RAID的分級(jí) 1 RAID0級(jí)2 RAID1級(jí)3 RAID3級(jí)4 RAID5級(jí)5 RAID6級(jí)和RAID7級(jí) 89 3 RAID的優(yōu)點(diǎn) 1 可靠性高2 磁盤I O速度高3 性能 價(jià)格比高 90 本章小結(jié) 習(xí)題 5 1 5 9 5 18 5 26- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 計(jì)算機(jī) 操作系統(tǒng) 輸入輸出 設(shè)備管理
鏈接地址:http://www.820124.com/p-4010726.html