設備管理概述_第1頁
設備管理概述_第2頁
設備管理概述_第3頁
設備管理概述_第4頁
設備管理概述_第5頁
已閱讀5頁,還剩98頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

關于設備管理管理對象:I/O設備(I/O系統(tǒng)組成)基本任務:完成用戶提出的I/O請求,提高I/O速率以及改善I/O設備的利用率。主要功能:緩沖區(qū)管理、設備分配、設備處理、虛擬設備及設備獨立性等。與硬件緊密相關,本章主要對I/O設備和設備控制器等硬件作扼要闡述。第一頁,共一百零三頁。4/19/20231第5章設備管理I/O系統(tǒng)的組成I/O控制方式緩沖管理設備分配設備處理磁盤設備管理第二頁,共一百零三頁。4/19/202321、I/O系統(tǒng)的組成包括:需要用于輸入、輸出和存儲信息的設備;需要相應的設備控制器;控制器與CPU連接的高速總線;有的大中型計算機系統(tǒng),配置I/O通道;第三頁,共一百零三頁。4/19/20233控制器與CPU接口控制器與設備接口設備控制器CPUI/O設備數(shù)據(jù)狀態(tài)控制數(shù)據(jù)線地址線控制線總線I/O系統(tǒng)組成第四頁,共一百零三頁。4/19/202341)I/O設備的類型I/O設備的類型繁多,從OS的觀點,按其重要的性能指標進行分類如下:按傳輸速率分類:低速、中速、高速(鍵盤、打印機、磁盤)使用:存儲設備、輸入輸出設備按信息交換的單位分類:塊設備:有結構、速率高、可尋址、DMA方式控制字符設備:無結構、速率低、不可尋址、中斷方式控制第五頁,共一百零三頁。4/19/20235按設備的共享屬性分類:獨占:打印機共享:一個時刻上仍然是只被一個進程占用??蓪ぶ?、可隨機訪問的色后備。磁盤。虛擬:使一臺獨占設備變換為若干臺邏輯設備,供給若干用戶“同時使用”。第六頁,共一百零三頁。4/19/20236I/O設備中的接口與控制器的接口有三種類型的信號數(shù)據(jù)信號線(進出數(shù)據(jù)轉(zhuǎn)換、緩沖后傳送)控制信號線(讀\寫\移動磁頭等控制)狀態(tài)信號線I/O設備數(shù)據(jù)緩沖轉(zhuǎn)換器數(shù)據(jù)狀態(tài)控制邏輯控制第七頁,共一百零三頁。4/19/202372)設備控制器設備并不直接與CPU通信計算機中的一個實體——“設備控制器”負責控制一個或多個I/O設備,以實現(xiàn)I/O設備和計算機之間的數(shù)據(jù)交換。控制器是CPU與I/O設備之間的接口,作為中間人接收從CPU發(fā)來的命令,并去控制I/O設備工作,以使處理機脫離繁雜的設備控制事務。第八頁,共一百零三頁。4/19/20238常作成接口卡插入計算機可編址,不同類控制一個設備時只有一個地址,若連接多個設備則含有多個設備地址管理的復雜性因不同設備而異,分為字符設備控制器、塊設備控制器。第九頁,共一百零三頁。4/19/20239①基本功能接收和識別CPU命令(控制寄存器:存放命令和參數(shù))標識和報告設備的狀態(tài)(狀態(tài)寄存器)數(shù)據(jù)交換(數(shù)據(jù)寄存器)地址識別(控制器識別設備地址、寄存器地址。地址譯碼器)數(shù)據(jù)緩沖(協(xié)調(diào)I/O與CPU的速度差距)差錯控制第十頁,共一百零三頁。4/19/202310②組成設備控制器與處理機的接口設備控制器與設備的接口I/O邏輯設備控制器數(shù)據(jù)線地址線控制線數(shù)據(jù)狀態(tài)控制I/O邏輯第十一頁,共一百零三頁。4/19/202311I/O邏輯控制器與設備接口1控制器與設備接口i數(shù)據(jù)寄存器控制/狀態(tài)寄存器數(shù)據(jù)線地址線控制線與CPU的接口與設備的接口數(shù)據(jù)數(shù)據(jù)狀態(tài)控制狀態(tài)控制一個接口連接一個設備。每個接口中都有數(shù)據(jù)、控制和狀態(tài)三種類型的信號??刂破髦械腎/O邏輯根據(jù)處理機發(fā)來的地址信號,去選擇一個設備接口。1個或n個1個或n個第十二頁,共一百零三頁。4/19/202312I/O邏輯通過一組控制線與處理機交互,處理機利用該邏輯向控制器發(fā)送I/O命令。I/O邏輯對收到的命令進行譯碼。CPU要啟動一個設備時,將啟動命令發(fā)送給控制器;同時通過地址線把地址發(fā)送給控制器控制器的I/O邏輯對收到的地址和命令進行譯碼,再根據(jù)所譯出的命令選擇設備進行控制。第十三頁,共一百零三頁。4/19/202313③處理機與設備控制器間實現(xiàn)CPU與設備控制器之間的通信。共有三類信號線:數(shù)據(jù)線:數(shù)據(jù)線通常與兩類寄存器相連接,第一類是數(shù)據(jù)寄存器;第二類是控制/狀態(tài)寄存器。地址線控制線第十四頁,共一百零三頁。4/19/202314如圖所示,計算機系統(tǒng)中的各部件,如CPU、存儲器以及各種I/O設備之間的聯(lián)系,都是通過總線來實現(xiàn)的??偩€的性能用總線的“時鐘頻率”、“帶寬”和相應的總線“傳輸速率”等指標來衡量。CPU存儲器磁盤控制器打印機控制器其他控制器磁盤驅(qū)動器打印機系統(tǒng)總線*微機I/O系統(tǒng)中的總線結構第十五頁,共一百零三頁。4/19/202315總線的發(fā)展過程ISA和EISA總線ISA(IndustryStandardArchitecture)總線EISA(ExtendedISA)總線局部總線(LocalBus)VESA(VideoElectronicStandard)總線PCI(PeripheralComponentInterface)總線第十六頁,共一百零三頁。4/19/2023163)I/O通道①I/O通道設備的引入設備控制器已大大減少CPU對I/O的干預(如承擔了選擇設備,數(shù)據(jù)轉(zhuǎn)換、緩沖等功能)但當主機的外設很多時,CPU的負擔仍然很重。在CPU和設備控制器之間增設一個硬件機構:“通道”設置通道后CPU只需向通道發(fā)送一條I/O指令即可不再干預后續(xù)操作。通道形成通道程序,執(zhí)行I/O操作,完成后向CPU發(fā)中斷信號。第十七頁,共一百零三頁。4/19/202317主要目的:建立更獨立的I/O操作,解放CPU。數(shù)據(jù)傳送的獨立I/0操作的組織、管理及結束處理也盡量獨立。實際上I/O通道是一種特殊的處理機:指令類型單一,只用于I/O操作;通道沒有內(nèi)存,它與CPU共享內(nèi)存第十八頁,共一百零三頁。4/19/202318②通道類型根據(jù)其控制的外圍設備的不同類型,信息交換方式也可分為以下三種類型:字節(jié)多路通道數(shù)組選擇通道數(shù)組多路通道第十九頁,共一百零三頁。4/19/202319字節(jié)多路通道一個通道常通過多個子通道連接多個設備控制器多個設備,通過非分配型子通道以字節(jié)為單位交叉輪流使用主通道傳輸自己的數(shù)據(jù)。(圖5-3)控制器A設備控制器B設備A1B1C1…A2B2C2A1A2…B1B2…主通道掃描子通道速率足夠快,子通道上的設備速率又不太高時,一般不丟失信息。適用于并行、低速設備第二十頁,共一百零三頁。4/19/202320數(shù)組選擇通道針對高速設備:分配型子通道設備利用子通道占用通道后,一段時間內(nèi)一直獨占,直至設備傳送完畢釋放。利用率低。數(shù)組多路通道結合上述兩種方式。含多個非分配型子通道。數(shù)據(jù)傳送則按數(shù)組方式進行。第二十一頁,共一百零三頁。4/19/202321③“瓶頸”問題由于通道價格昂貴,致使數(shù)量較少,使它成為I/O系統(tǒng)的瓶頸,進而造成系統(tǒng)吞吐量的下降。如下例所示:存儲器通道1通道2控制器1控制器2控制器3控制器4設備1設備2設備3設備4設備5設備6設備7第二十二頁,共一百零三頁。4/19/202322解決“瓶頸”問題最有效的辦法便是增加設備到主機間的通路而不增加通道,如下圖所示:存儲器通道1通道2控制器1控制器2I/O設備I/O設備I/O設備I/O設備第二十三頁,共一百零三頁。4/19/2023232、I/O控制方式程序I/O方式中斷驅(qū)動I/O方式直接存儲器訪問DMA(字節(jié)—塊)I/O通道控制方式(組織傳送的獨立)宗旨:減少主機對I/O控制的干預,將CPU從繁雜的I/O控制事物中解脫出來。第二十四頁,共一百零三頁。4/19/202324注意數(shù)據(jù)走向 設備(磁盤)--控制器緩沖—進程的內(nèi)存CPU磁盤Notepad.exe2.txt控制器內(nèi)存notepaddata工作開銷:判斷做了多少?做沒做完?第二十五頁,共一百零三頁。4/19/2023251)程序I/O方式cpu對I/O設備的控制采取程序I/O方式,或稱忙—等待方式向控制器發(fā)送一條I/O指令;啟動輸入設備輸入數(shù)據(jù);把狀態(tài)寄存器busy=1。然后不斷測試標志。為1:表示輸入機尚未輸完一個字,CPU繼續(xù)對該標志測試;直到為0:數(shù)據(jù)已輸入控制器數(shù)據(jù)寄存器中。CPU取控制器中的數(shù)據(jù)送入內(nèi)存單元,完成一個字的I/O。高速CPU空閑等待低速I/O設備,致使CPU極大浪費。注:也稱作程序查詢方式或輪詢方式。第二十六頁,共一百零三頁。4/19/202326程序I/O方式流程圖向I/O控制器發(fā)讀命令讀I/O控制器的狀態(tài)從I/O控制器中讀入字向存儲器中寫字檢查狀態(tài)傳送完成?出錯完成CPU→I/OI/O→CPUI/O→CPUCPU→內(nèi)存未完未就緒下條指令就緒第二十七頁,共一百零三頁。4/19/2023272)中斷驅(qū)動I/O方式CPU向相應的設備控制器發(fā)出一條I/O命令然后立即返回繼續(xù)執(zhí)行任務。設備控制器按照命令的要求去控制指定I/O設備。這時CPU與I/O設備并行操作。I/O設備輸入數(shù)據(jù)中,無需CPU干預,因而可使CPU與I/O設備并行工作。從而提高了整個系統(tǒng)的資源利用率及吞吐量。但cpu真的不需要干預么?第二十八頁,共一百零三頁。4/19/202328中斷控制方式流程圖向I/O控制器發(fā)讀命令讀I/O控制器的狀態(tài)從I/O控制器中讀入字向存儲器中寫字檢查狀態(tài)傳送完成?出錯完成CPU→I/OI/O→CPUI/O→CPUCPU→內(nèi)存未完下條指令就緒CPU做其它事中斷需要cpu干預第二十九頁,共一百零三頁。4/19/202329中斷方式比程序I/O方式更有效但仍以字(節(jié))為單位進行I/O,每當完成一個字(節(jié)),控制器便要請求一次中斷。CPU雖然可與I/O并行,但效率不高,存在頻繁的中斷干擾。改進:CPU下指令通知控制器完成一塊數(shù)據(jù)的I/O,控制器完成后才發(fā)中斷,而不是每個字節(jié)都要向CPU發(fā)中斷;多字節(jié)傳輸入內(nèi)存過程不需要CPU搬運,由控制器控制完成(所以稱直接存儲器訪問)——DMA(DirectMemoryAccess)控制方式引入第三十頁,共一百零三頁。4/19/202330CPU磁盤Notepad.exe2.txtDMA控制器內(nèi)存notepaddataDMA控制器決定做了多少,做完沒有。第三十一頁,共一百零三頁。4/19/202331①該方式的特點是:數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊;所傳送的數(shù)據(jù)是從設備直接送入內(nèi)存的,或者直接從內(nèi)存進設備;不需要CPU操作。CPU干預進一步減少:僅在傳送一個或多個數(shù)據(jù)塊的開始和結束時,才需CPU干預,整塊數(shù)據(jù)的傳送是在控制器的控制下完成的??梢奃MA方式又是成百倍的減少了CPU對I/O的干預,進一步提高了CPU與I/O設備的并行操作程度。3)直接存儲器訪問DMA方式第三十二頁,共一百零三頁。4/19/202332②DMA控制器的組成DMA控制器由三部分組成:主機與DMA控制器的接口;DMA控制器與塊設備的接口;I/O控制邏輯。如下頁圖。第三十三頁,共一百零三頁。4/19/202333DMA控制器的示意圖I/O控制邏輯DRMARDCCRCPU內(nèi)存主機—控制器接口控制器與塊設備接口系統(tǒng)總線DMA控制器命令count第三十四頁,共一百零三頁。4/19/202334DMA控制器中的寄存器為實現(xiàn)主機與控制器之間塊數(shù)據(jù)的直接交換,必須設置如下四類寄存器:數(shù)據(jù)寄存器DR:暫存設備到內(nèi)存或從內(nèi)存到設備的數(shù)據(jù)。內(nèi)存地址寄存器MAR:它存放把數(shù)據(jù)從設備傳送到內(nèi)存的起始的目標地址或內(nèi)存原地址。數(shù)據(jù)計數(shù)器DC:存放本次CPU要讀或?qū)懙淖郑ü?jié))數(shù)。命令/狀態(tài)寄存器CR:用于接收從CPU發(fā)來的I/O命令或有關控制和狀態(tài)信息。第三十五頁,共一百零三頁。4/19/202335③DMA工作過程CPU先向磁盤控制器發(fā)送一條讀命令。該命令被送到命令寄存器CR中。同時發(fā)送數(shù)據(jù)讀入到內(nèi)存的起始地址,該地址被送入MAR中;要讀數(shù)據(jù)的字數(shù)則送入數(shù)據(jù)計數(shù)器DC中;將磁盤中的數(shù)據(jù)原地址直接送入DMA控制器的I/O控制邏輯上,按設備狀態(tài)啟動磁頭到相應位置。啟動DMA控制器控制邏輯開始進行數(shù)據(jù)傳送DMA控制器讀入一個數(shù)據(jù)到數(shù)據(jù)寄存器DR中,然后傳到內(nèi)存MAR地址中;接著MAR+1,DC-1,判斷DC是否為0,如否,繼續(xù),反之控制器發(fā)中斷請求,傳送完畢。以磁盤讀數(shù)據(jù)為例第三十六頁,共一百零三頁。4/19/202336DMA工作方式流程圖設置MAR和DC初值啟動DMA傳送命令挪用存儲器周期傳送數(shù)據(jù)字MAR+1DC-1DC=0?請求中斷在繼續(xù)執(zhí)行用戶程序的同時,準備又一次傳送第三十七頁,共一百零三頁。4/19/2023374)I/O通道控制方式DMA適用于讀一個連續(xù)的數(shù)據(jù)塊;如一次讀多個數(shù)據(jù)塊到內(nèi)存不同區(qū)域,須由CPU分別發(fā)送多條I/O指令、進行多次DMA中斷處理。再進一步減少CPU的干預(減少中斷),引入通道。實現(xiàn)對一組數(shù)據(jù)塊的讀(寫)及有關的控制和管理為單位的干預。此時,CPU只需發(fā)一條I/O指令,給出通道程序的首地址及要訪問設備即可。*CPU、通道和I/O設備三者的并行操作,提高整系統(tǒng)資源利用率。第三十八頁,共一百零三頁。4/19/202338通道是一種通過執(zhí)行通道程序管理I/O操作的控制器,它使主機(CPU和內(nèi)存)與I/O操作之間達到更高的并行程度。由于它的任務是管理實現(xiàn)輸入/輸出操作,提供一種傳送通道,所以將這種部件稱作“通道”。第三十九頁,共一百零三頁。4/19/202339通道程序通道通過執(zhí)行通道程序,與設備控制器共同實現(xiàn)對I/O設備的控制。通道程序由一系列通道指令構成。CPU指令設備驅(qū)動程序解讀通道程序通道通道指令一般包含下列信息:操作碼。規(guī)定指令所執(zhí)行的操作。內(nèi)存地址。計數(shù)。表示本指令所要操作的字節(jié)數(shù)。通道程序結束位。用以表示程序是否結束。記錄結束標志。表示該指令是否與下條指令有關。第四十頁,共一百零三頁。4/19/202340有”控制器”或”通道”的幫助后CPU可解放去做其他事物,提高了利用率。但分析單個程序內(nèi)的執(zhí)行CPU計算工作需等待后續(xù)數(shù)據(jù)輸入才可繼續(xù)CPU計算需等待數(shù)據(jù)輸入完才能計算,雖然數(shù)據(jù)輸入不需CPU干預,但CPU的解放也只是能去做其他程序,需切換工作,會產(chǎn)生開銷。一進程中“CPU計算速度”和“設備I/O速度”仍存在不匹配的矛盾。解決:CPU進行當前計算時,設備進行后續(xù)數(shù)據(jù)的輸入(——緩沖區(qū))。第四十一頁,共一百零三頁。4/19/202341CPU磁盤DMA控制器內(nèi)存data緩沖區(qū)data2T3I/OCPUT1C1T2C2C3T4C4I/O利用率CPU利用率多了一定內(nèi)存取數(shù)工作時間,但計算工作的等待時間大大減少了。DMA寫入內(nèi)存緩沖區(qū)到進程區(qū)Cpu處理T3T1C1T2C2C3T4C4緩沖區(qū)未空時,I/O需等待CPU又會造成后續(xù)CPU計算工作等待時間增長。若緩沖區(qū)足夠大時,I/O設備可不停放入試一試延長紅色線(即CPU執(zhí)行需要的時間)會有什么效果?第四十二頁,共一百零三頁。4/19/2023423、緩沖管理I/O控制方式減少CPU對I/O的干預提高利用率;緩沖則通過緩和CPU和I/O設備速度不匹配矛盾,增加CPU和I/O設備的并行性,提高利用率?,F(xiàn)代OS中,幾乎所有的I/O設備與處理機交換數(shù)據(jù)時,都用了緩沖區(qū)。第四十三頁,共一百零三頁。4/19/202343引入緩沖區(qū)的主要原因:緩和CPU與I/O設備間速度不匹配的矛盾。緩沖區(qū)數(shù)據(jù)成批傳入內(nèi)存,也可進一步減少對CPU的中斷頻率最終目的:提高CPU和I/O設備的并行性。使用緩沖區(qū)的方式:1)單緩沖、多緩沖2)循環(huán)緩沖3)緩沖池(BufferPool)設備速度差距越大,緩沖區(qū)容量越大第四十四頁,共一百零三頁。4/19/2023441)單緩沖與多緩沖單緩沖(SingleBuffer)每當用戶進程發(fā)出一I/O請求時,單位:字符設備輸入時,緩沖區(qū)用于暫存用戶輸入/輸出的一行數(shù)據(jù);塊設備輸入則是成塊數(shù)據(jù)。OS在主存中為之分配一個緩沖區(qū)。CPU和外設輪流使用,一方處理完后等待對方處理。TM第四十五頁,共一百零三頁。4/19/202345M+C>T,cpu不需等設備,但設備可能不連續(xù),T1M1M2C2T3M3C3C1T2單緩沖雙緩沖T1C1M1T2M2C2T3M3C3TM①T1M1②T2M2T1C1M1T2M2C2T3M3C3T4M+C<T設備連續(xù),cpu有等待設備T5第四十六頁,共一百零三頁。4/19/202346雙緩沖(DoubleBuffer)進一步加快輸入和輸出速度,提高設備利用率制,也稱緩沖對換(BufferS)輸入:數(shù)據(jù)送入第一緩沖區(qū),裝滿后轉(zhuǎn)向第二緩沖區(qū)。讀出:OS從第一緩沖區(qū)中移出數(shù)據(jù),送入用戶進程,再由CPU對數(shù)據(jù)進行計算。兩個緩沖區(qū),CPU和外設不再針對一塊交替可能實現(xiàn)連續(xù)處理無需等待對方。前提是CPU和外設對一塊數(shù)據(jù)的處理速度相近。而如下圖情況CPU仍需等待慢速設備。T3I/OCPUT1C1T2C2C3T4C4可適當減少緩沖區(qū)大小,匹配兩者速度第四十七頁,共一百零三頁。4/19/202347*雙緩沖還適合雙向通訊緩沖區(qū)A機緩沖區(qū)B機單緩沖發(fā)送緩沖區(qū)接收緩沖區(qū)A機接收緩沖區(qū)發(fā)送緩沖區(qū)B機雙緩沖僅配置單緩沖,任意時刻都只能實現(xiàn)單方向的數(shù)據(jù)傳輸,而不允許雙方同時向?qū)Ψ桨l(fā)送數(shù)據(jù)。為實現(xiàn)雙向數(shù)據(jù)傳輸,需為兩臺機器中的通訊進程都設置兩個緩沖區(qū)。定義不同功能:一個用作發(fā)送緩沖區(qū),另一個用作接受緩沖區(qū)。第四十八頁,共一百零三頁。4/19/202348多緩沖引入I/O與CPU速度基本相匹配,采用雙緩沖能獲得較好的效果,基本上能并行操作。但,若兩者的速度相差甚遠,雙緩沖的效果仍不夠理想;為進一步協(xié)調(diào)速度差,可增加緩沖區(qū)數(shù)量,同時進行一定的多緩沖管理入和出的同步。

引入多緩沖機制。組織形式:循環(huán)緩沖、緩沖池。第四十九頁,共一百零三頁。4/19/2023492)循環(huán)緩沖(circularbuffer)162534RRGGCGNextiNextgcurrent設置多塊緩沖區(qū)用循環(huán)結構組織,只供兩個相關進程使用順一個方向放入或取出循環(huán)緩沖的組成示意圖第五十頁,共一百零三頁。4/19/202350①循環(huán)緩沖的組成多個緩沖區(qū)。大小相同,三種類型:預備裝輸入數(shù)據(jù)的空緩沖區(qū)R裝滿數(shù)據(jù)的緩沖區(qū)G計算進程正在使用的現(xiàn)行工作緩沖區(qū)C多個指針。指示正在使用的緩沖區(qū)C的指針Current指示計算進程下一個可取的緩沖區(qū)G的指針Nextg指示輸入進程下次可放的緩沖區(qū)R的指針Nexti第五十一頁,共一百零三頁。4/19/202351②循環(huán)緩沖區(qū)的使用計算進程(CPU)和輸入進程(I/O操作)可利用兩個過程來使用循環(huán)緩沖區(qū)。主要就是利用指針,操作上述不同類型緩沖區(qū)Getbuf過程:使用緩沖區(qū)時,可調(diào)用該過程計算進程?。篶urrent=Nextg,G—>C,nextg下移一個。輸入進程放:current=nexti,R—>C,nexti下移一個Releasebuf過程:計算進程:C->R輸入進程:C->G一個時段只能用于輸入或輸出,不能同時雙向通信。第五十二頁,共一百零三頁。4/19/202352③進程同步兩個進程的控制:輸入進程和計算進程并行執(zhí)行,如何控制相應的兩個指針不斷順時針方向移動,這樣就可能出現(xiàn)兩種情況:Nexti趕上Nextg。意味著輸入速度大于計算速度,緩沖區(qū)滿,只能阻塞輸入進程等計算進程取,此情況稱為系統(tǒng)受計算限制。Nextg趕上Nexti。意味著輸入速度低于計算速度,緩沖區(qū)空,只能阻塞計算進程等輸入進程放,此情況稱為系統(tǒng)受I/O限制。第五十三頁,共一百零三頁。4/19/2023533)緩沖池(BufferPool)循環(huán)緩沖的問題不能同時雙向通訊利用率不高。緩沖區(qū)是專用緩沖。(每個進程都要維護自己的一個循環(huán)緩沖區(qū)),使用有剩余時也不給其他進程使用,消耗大量內(nèi)存空間。系統(tǒng)并發(fā)程序很多時,許多這樣的循環(huán)緩沖需要管理,比較復雜。為提高緩沖區(qū)的利用率,目前廣泛流行緩沖池,在池中設置多個可供若干個進程共享的緩沖區(qū)。第五十四頁,共一百零三頁。4/19/202354系統(tǒng)將多個緩沖區(qū)形成一個緩沖池。池中緩沖區(qū)為系統(tǒng)中所有的進程共享使用(如UNIX系統(tǒng)在塊設備管理中設置了一個15個緩沖區(qū)組成的緩沖池)組織形式:隊列及隊列指針第五十五頁,共一百零三頁。4/19/202355①緩沖池的組成對于既可輸入又可輸出的公用緩沖池,至少應含有下列三種類型的緩沖區(qū):空緩沖區(qū);裝滿輸入數(shù)據(jù)的緩沖區(qū);裝滿輸出數(shù)據(jù)的緩沖區(qū); 為方便管理,將上述類型相同的緩沖區(qū)連成隊列空緩沖區(qū)隊列(所有進程都可用)輸入隊列(n個進程有各自的隊列)輸出隊列(n個進程有各自的隊列)*(隊列長度不固定,根據(jù)進程實際情況靈活變動,需要多少用多少)第五十六頁,共一百零三頁。4/19/202356工作狀態(tài)決定了current有四種工作緩沖區(qū): 狀態(tài)操作者收容輸入數(shù)據(jù)的工作緩沖區(qū);hin提取輸入數(shù)據(jù)的工作緩沖區(qū);sin收容輸出數(shù)據(jù)的工作緩沖區(qū);hout提取輸出數(shù)據(jù)的工作緩沖區(qū);soutcpu設備緩沖第五十七頁,共一百零三頁。4/19/202357②緩沖區(qū)的工作方式四種工作方式:收容輸入:Getbuf(emq),hin;輸入數(shù)據(jù)填入一空緩沖區(qū);Putbuf(inq,hin)提取輸入:Getbuf(inq),sin;從輸入緩沖隊列中取出一數(shù)據(jù)區(qū)的內(nèi)容;Putbuf(emq,sin)收容輸出:Getbuf(emq),hout;輸出數(shù)據(jù)填入一空緩沖區(qū);Putbuf(outq,hout)提取輸出:Getbuf(outq),sout;從輸出緩沖隊列中取一數(shù)據(jù)區(qū)的內(nèi)容;Putbuf(emq,sout)緩沖池hinsout磁盤打印機sinhout內(nèi)存用戶程序emq…inq…outq…第五十八頁,共一百零三頁。4/19/202358緩沖區(qū)的使用Getbuf(隊列,工作區(qū))Putbuf(隊列,工作區(qū))同步控制每隊設置一個互斥信號量MS;判斷每個隊列是否有可用的緩沖區(qū),需一個資源信號量RS。獲取緩沖區(qū)時P(RS),釋放時V(RS)。緩沖池:可雙向緩沖;緩沖區(qū)整體利用率高。第五十九頁,共一百零三頁。4/19/202359多道環(huán)境下,系統(tǒng)中設備是所有進程共享的。要防止無序競爭,提高外設資源的利用率。所以,除解決基本設備處理問題,還需由OS進行統(tǒng)一、合理的設備分配。1)數(shù)據(jù)結構2)設備分配需考慮的因素3)設備的分配過程設備獨立性I/O系統(tǒng)的軟件層次4)Spooling虛擬技術4、設備分配第六十頁,共一百零三頁。4/19/2023601)設備分配中的數(shù)據(jù)結構記錄相應設備或控制器的狀態(tài),及對設備或控制器進行控制所需的信息。所需數(shù)據(jù)結構:設備控制表控制器控制表通道控制表系統(tǒng)設備(總)表第六十一頁,共一百零三頁。4/19/202361①設備控制表(DCT)系統(tǒng)為每一設備都配置一張記錄本設備的情況。設備類型type設備標識符deviceid設備狀態(tài):等待/不等待忙/閑指向控制器表的指針重復執(zhí)行次數(shù)或時間設備隊列的隊首指針DCT1DCT2DCTn設備控制表集合指向因請求該設備而阻塞的進程的PCB組成的隊列。第六十二頁,共一百零三頁。4/19/202362②控制器控制表(COCT)控制器標識符:controllerid控制器狀態(tài):忙/閑與控制器連接的通道表指針控制器隊列的隊首指針控制器隊列的隊尾指針系統(tǒng)為每一控制器都配置一張記錄本控制器的情況。③通道控制表CHCT通道標識符:channelid通道狀態(tài):忙/閑與通道連接的控制器表首址通道隊列的隊首指針通道隊列的隊尾指針第六十三頁,共一百零三頁。4/19/202363④系統(tǒng)設備表(SDT)表目1表目i設備類型設備標識符DCT驅(qū)動程序入口系統(tǒng)根據(jù)進程對設備的請求進行設備分配的過程:IO請求中的設備名

SDTDCTCOCTCHCT

細節(jié)考慮第六十四頁,共一百零三頁。4/19/202364設備固有屬性:獨占、共享、獨占但可虛擬。根據(jù)屬性采取互斥、次序調(diào)度、虛擬等不同分配策略。設備分配算法(對不同進程的設備請求序列,如何進行選擇),常采用兩種:FCFS優(yōu)先級高者優(yōu)先設備分配的安全性:進程開始I/O后就阻塞直到I/O完成。不“請求和保持”(安全的);允許連續(xù)I/O請求,是不安全的,此類分配方式需進行安全性檢查。設備獨立性用戶IO請求中使用邏輯名申請某類設備,實際物理名稱是系統(tǒng)根據(jù)設備類型分析分配后才確定的。2)設備分配需考慮的因素第六十五頁,共一百零三頁。4/19/2023653)獨占設備的分配過程基本分配步驟(一個有通道的例子):分配設備:根據(jù)請求設備名,查找SDT,找到DCT;狀態(tài)、安全性等因素都可能導致本申請進程阻塞,掛入DCT等待隊列中。分配控制器通過1步分配設備后,從DCT找到COCT;檢查COCT狀態(tài)字,若忙碌,進程PCB掛到其等待隊列分配通道COCT找到CHCT判斷狀態(tài),…當上述三步都通過后,才可啟動設備進行數(shù)據(jù)傳輸?shù)诹?,共一百零三頁?/19/202366設備分配程序的改進細節(jié)增加設備的獨立性進程使用邏輯設備名提出I/O請求。系統(tǒng)從SDT中依次找下去,直到找到一個該類設備中空閑可用的進行分配??紤]多通路情況控制器、通道也是反復查找,直到找到一條通路。第六十七頁,共一百零三頁。4/19/202367【設備獨立性(無關性)】

——

DeviceIndependence指用戶編程時所用的設備名(邏輯上的)與實際物理設備無關;好處:設備分配時的靈活性

3個物理設備(如打印機),程序中申請一臺打印機,執(zhí)行時不拘泥必須是某臺(如第2個)打印機易于實現(xiàn)I/O重定向

指用于I/O操作的設備可以更換(重定向),而不必改變應用程序。程序調(diào)試、運行中的“打印”,可通過修改邏輯設備表的顯示終端,實現(xiàn)不同時候的不同的設備使用。根據(jù)請求設備名,查找SDT第六十八頁,共一百零三頁。4/19/202368邏輯設備名物理設備名驅(qū)動程序入口地址/dev/tty21024/dev/printer52046…邏輯設備名到物理設備名的映射邏輯設備表LUT(LogicalUnitTable)LUT的設置問題整個系統(tǒng)設置一張LUT(設備重名問題)為每個用戶設置一張LUT,記入各自PCB。第六十九頁,共一百零三頁。4/19/202369I/O系統(tǒng)的軟件層次兩個概念:邏輯設備:用戶應用程序中請求的設備物理設備:系統(tǒng)實際執(zhí)行時使用的設備設備分配時需實現(xiàn):邏輯設備地址映射到物理設備地址設備設備驅(qū)動程序設備獨立性軟件用戶層程序:read,write中斷處理程序所有設備的公有操作:獨立設備的分配與回收邏輯設備映射為物理設備設備保護緩沖管理差錯控制控制方式基本硬件控制設置設備寄存器檢查寄存器狀態(tài)產(chǎn)生I/O請求;格式化I/O;Spooling虛擬處理第七十頁,共一百零三頁。4/19/202370【I/O系統(tǒng)的軟件層次】用戶層與系統(tǒng)調(diào)用一一對應的庫函數(shù)設備獨立性軟件設備公有操作設備名映射設備驅(qū)動程序中斷處理程序第七十一頁,共一百零三頁。4/19/202371設備處理程序——即驅(qū)動程序I/O設備與控制器間的通信轉(zhuǎn)換程序了解抽象命令,了解控制器內(nèi)部的寄存器結構與硬件密切相關,每類設備配備一種驅(qū)動程序功能:接受解釋指令(有通道的系統(tǒng),自動通道程序)、相關判斷、發(fā)送設備命令、響應中斷特點,控制方式不同程序不同,部分固化進硬件,代碼可重入。抽象要求具體化判斷請求是否合法檢查設備狀態(tài)傳送必要的參數(shù)如數(shù)據(jù)量、地址等檢查設備狀態(tài)設置工作方式向命令寄存器發(fā)送控制命令控制邏輯開始工作驅(qū)動程序暫時阻塞等待中斷信號第七十二頁,共一百零三頁。4/19/202372中斷處理程序的處理過程程序A驅(qū)動阻塞程序BA阻塞驅(qū)動處理IO請求,CPU切換處理完請求,CPU切換A的IO完成設備發(fā)回中斷信號保存被中斷B的現(xiàn)場喚醒恢復驅(qū)動程序分析中斷信號,進入相應的中斷處理程序恢復程序現(xiàn)場第七十三頁,共一百零三頁。4/19/202373一次I/O由“驅(qū)動程序+中斷程序”一塊處理完成驅(qū)動程序的處理過程中斷處理程序的處理過程閱讀課本說明,畫流程圖。第七十四頁,共一百零三頁。4/19/2023744)設備分配中的虛擬技術

——SPOOLing技術虛擬性是OS的四大特征之一。多道程序技術將一臺物理CPU虛擬為多臺邏輯CPU,實現(xiàn)多個用戶共享一臺主機;如何將一臺物理I/O設備虛擬為多臺邏輯I/O設備,允許多個用戶共享“同時使用”?第七十五頁,共一百零三頁。4/19/202375返回假脫機技術回顧脫機技術多道程序技術,專門利用一道程序模擬脫機I/O的外圍機,完成設備I/O操作。稱這種聯(lián)機情況下實現(xiàn)的同時外圍操作為SPOOLing技術(SimultaneausPeriphernalOperatingOn—Line,或稱為假脫機操作)一般進程對獨占設備的需求被假脫機模擬到磁盤上。所以實現(xiàn)設備虛擬,多道是前提,還需高速、大容量、可隨機存取的外存支持。第七十六頁,共一百零三頁。4/19/202376SPOOLing系統(tǒng)的組成輸入設備輸出設備輸入井輸出井磁盤輸入進程SPi輸出進程SP0CPU輸入緩沖區(qū)Bi輸入緩沖區(qū)B0模擬的外圍機(軟防硬)以CPU的視角,就把磁盤當設備第七十七頁,共一百零三頁。4/19/202377SPOOLing系統(tǒng)的組成主要有三大部分(如下頁圖)輸入井和輸出井:磁盤上開辟兩大存儲空間。輸入井模擬脫機輸入的磁盤設備,輸出井模擬脫機輸出時的磁盤。輸入緩沖區(qū)和輸出緩沖區(qū):為緩解速度矛盾,內(nèi)存中開辟兩大緩沖空間,輸入緩沖區(qū)暫存輸入設備送來的數(shù)據(jù),再送給輸入井;輸出緩沖區(qū)暫存輸出井送來的數(shù)據(jù),再送輸出設備。輸入進程和輸出進程。用一進程模擬脫機輸入時外圍設備控制器的功能,把低速輸入設備上的數(shù)據(jù)傳送到高速磁盤上;用另一進程模擬脫機輸出時外圍設備控制器的功能,把數(shù)據(jù)從磁盤上傳送到低速輸出設備上。第七十八頁,共一百零三頁。4/19/202378共享打印機打印機屬于獨占設備,利用SPOOLing技術可將其改造為一臺可供多個用戶共享的設備。見課本說明:核心就是不能交叉打印的數(shù)據(jù),虛擬的打印在磁盤的輸出井上(而磁盤的非獨占性解決了打印機不能方便共享的問題)。有打印輸出請求的進程申請“請求打印表”。數(shù)據(jù)虛擬打印到“輸出井”Spooling程序再按“請求表隊列”分配真正的打印機打印數(shù)據(jù)。第七十九頁,共一百零三頁。4/19/202379SPOOLing系統(tǒng)的特點提高了I/O的速度。利用輸入輸出井模擬成脫機輸入輸出,緩和了CPU和I/O設備速度不匹配的矛盾。將獨占設備改造為共享設備。并沒有為進程分配設備,而是為進程分配一存儲區(qū)和建立一張I/O請求表。最終,實現(xiàn)了虛擬設備功能。多個進程可“同時”使用一臺獨占設備。第八十頁,共一百零三頁。4/19/2023806、磁盤存儲器管理磁盤性能簡述磁盤調(diào)度方法磁盤高速緩存提高速度的其他方法第八十一頁,共一百零三頁。4/19/2023811)磁盤性能簡述首先與格式有關數(shù)據(jù)的組織和格式盤片、面、磁道、扇區(qū)為方便處理,每條磁道存儲容量相同,每個磁道上的每個扇區(qū)相當于一個盤塊。磁盤”格式化”的過程就是按規(guī)定的格式規(guī)劃盤塊。如溫盤格式:P172每道30個扇區(qū),每扇600個字節(jié)。512字節(jié)用于存放數(shù)據(jù),其余存放控制信息。標識符字段:標識一個扇區(qū)的信息記錄; 1+2+1+1+3bytes數(shù)據(jù)字段:每個扇區(qū)存放數(shù)據(jù)的空間。數(shù)據(jù)前后還有若干特定功能字節(jié)。 1+512+2bytesIDfield(7bytes)Datafield(515bytes)第八十二頁,共一百零三頁。4/19/202382與速度有關磁盤類型固定磁頭(每道一磁頭)移動磁頭(每盤一磁頭)訪問時間的計算尋道時間(到磁道)旋轉(zhuǎn)延遲(到扇區(qū))傳輸時間

傳輸時間占總時間的比例最小,磁盤讀寫速度的提高要選擇合適的調(diào)度算法,減少前兩項用時,使所有作業(yè)的磁盤處理時間均衡。第八十三頁,共一百零三頁。4/19/2023832)磁盤調(diào)度方法對所有請求訪問磁盤的進程進行合理調(diào)度,使對磁盤的平均訪問時間最小。目標:使平均尋道時間最少。算法:FCFS最短尋道時間優(yōu)先SSTF掃描算法SCAN(磁盤電梯調(diào)度算法)循環(huán)掃描算法CSCANN-Step-SCAN算法FSCAN算法第八十四頁,共一百零三頁。4/19/202384①FCFS多個進程的磁盤I/O請求構成一個隨機分布的請求隊列。磁盤I/O執(zhí)行順序按磁盤請求的先后順序。設開始位置為53第八十五頁,共一百零三頁。4/19/202385②最短尋道時間優(yōu)先SSTF

ShortestSeekTimeFirst

選擇從當前磁頭位置出發(fā)移動最少的磁盤I/O請求使每次磁頭移動時間最少。不一定是最短平均柱面定位時間,但比FIFO算法有更好的性能。對中間的磁道有利,但可能會有進程處于饑餓狀態(tài)(I/O請求總不被執(zhí)行)。第八十六頁,共一百零三頁。4/19/202386FCFS SSTF訪問的下一磁道號移動距離(磁道數(shù))5545583391918219072160701501038112184146平均尋道長度55.3訪問的下一磁道號移動距離(磁道數(shù))90105832553391638118201501321601018424平均尋道長度27.5設當前在100磁道上;進程要求的訪問順序:55,58,39,18,90,160,150,38,184第八十七頁,共一百零三頁。4/19/202387③掃描算法SCAN(磁盤電梯調(diào)度算法)

CircularSCAN

SSTF會導致“饑餓”現(xiàn)象總選擇最近的磁道訪問,遠磁道請求的進程會長時間得不到執(zhí)行。改進:考慮距離的同時,更優(yōu)先考慮方向SCAN算法規(guī)定磁頭移動方向:自里向外,再自外向里移動。后續(xù)的I/O磁道請求,哪個在規(guī)定方向上距離最近,就先執(zhí)行哪個。如當前為100,后續(xù)要求55,86,95,180,165,105先由內(nèi)向外:選最近的105執(zhí)行,再判斷剩余的,選165,180。再由外向內(nèi):95,86,55反方向較近的55號磁道請求的進程相對“饑餓”很久第八十八頁,共一百零三頁。4/19/202388循環(huán)掃描CSCANSCAN的錯過問題:容易錯過與當前磁道距離近,但方向不一致的磁道。修改:將SCAN規(guī)定的移動方向改為“單向移動”由里向外后,再由里向外。N-Step-SCAN前述最近尋道算法共同問題:“磁臂粘著”——磁頭靜止在一個磁道上,導致其它進程無法及時進行磁盤I/O。(因:高密度盤,進程的讀寫可能集中在某一磁道)如現(xiàn)有一系列請求:335233323323344523334423332223不管哪種算法,從3開始向下執(zhí)行會是3333333333….222222…44….第八十九頁,共一百零三頁。4/19/202389改進:將磁盤請求隊列分成長為N的子隊列按FCFS選擇子隊列。隊列內(nèi)又按SCAN算法。3352|3332|3323|3445|23….23處理子隊列過程中產(chǎn)生的新I/O再依次排隊列。N=1時,就是FCFS,N很大時就是SCAN。F-SCANN-Step-SCAN的簡化:請求隊列只分為兩個子隊列當前一個隊列,按SCAN算法執(zhí)行;掃描期間新生成的組成一個隊列,等待被掃描。第九十頁,共一百零三頁。4/19/202390假設一個活動頭磁盤有200道,編號從0-199。當前磁頭正在155道上服務,并且在此之前完成的是173道的訪盤請求。 現(xiàn)有如下訪盤請求序列(磁盤號):75,168,81,138,87,143,187,129,198,44。試給出采用下列算法后磁頭移動的順序和移動總量(總磁道數(shù))。1.最短尋道時間優(yōu)先(SSTF)磁盤調(diào)度算法。2.掃描法(SCAN)磁盤調(diào)度算法(假設沿磁頭移動方向不再有訪問請求時,

磁頭就沿相反方向移動。44到0磁道的移動忽略不計)答:1.SSTF磁頭移動順序:155,143,138,129,168,187,198,87,81,75,44三段(155~129,129~198,198~44)移動總量=155-129+198-129+198-44=2492.SCAN:155,143,138,129,87,81,75,44,168,187,198兩段(155~44,44~198)移動總量=155-44+198-44=265第九十一頁,共一百零三頁。4/19/202391(8分)若干個等待訪問磁盤者依次要訪問的柱面為20,44,40,4,80,12,76,假設每移動一個柱面需要3毫秒時間,移動臂當前位于40號柱面,請按下列算法分別計算為完成上述各次訪問總共花費的尋找時間。(1)先來先服務算法(2)最短尋找時間優(yōu)先算法。Fcfs:40-20+44-20+44-4+80-4+80-12+76-12=292Sstf:40,44,20,12,4,76,8044-10+44-4+80-4=150第九十二頁,共一百零三頁。4/19/2023923)磁盤高速緩存內(nèi)存中劃出,對外存磁盤讀寫進行緩存的區(qū)域。4)其他提速方法提前讀延遲寫優(yōu)化物理塊分布虛擬盤磁盤冗余陣列(高速、大容量磁盤系統(tǒng))閱讀第九十三頁,共一百零三頁。4/19/202393練習虛擬設備是指:通過虛擬技術將一臺獨占設備改造成若干臺邏輯設備,供若干個用戶進程同時使用。按信息交換單位分類,可將設備分為:塊設備和字符設備。通道是:一種負責I/O的處理機。字節(jié)多路通道主要用作:連接大量的低速I/O設備。第九十四頁,共一百零三頁。4/19/202394從資源分配的角度看,操作系統(tǒng)將外部設備分為:獨

溫馨提示

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

評論

0/150

提交評論