操作系統(tǒng)-第5章 設(shè)備管理(S)_第1頁
操作系統(tǒng)-第5章 設(shè)備管理(S)_第2頁
操作系統(tǒng)-第5章 設(shè)備管理(S)_第3頁
操作系統(tǒng)-第5章 設(shè)備管理(S)_第4頁
操作系統(tǒng)-第5章 設(shè)備管理(S)_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、哈爾濱學(xué)院軟件學(xué)院 王知非計算機操作系統(tǒng)計算機操作系統(tǒng)第第5章章 設(shè)備管理設(shè)備管理第5章 設(shè)備管理5.1 I/O系統(tǒng)5.2 I/O控制方式5.3 緩沖管理5.4 I/O軟件5.5 設(shè)備分配5.6 磁盤存儲器的管理5.1 I/O系統(tǒng)n5.1.1 I/O設(shè)備n5.1.2 設(shè)備控制器n5.1.3 I/O通道n5.1.4 總線系統(tǒng)5.1 I/O系統(tǒng)5.1.1 I/O設(shè)備1、設(shè)備類型n按使用特性:存儲設(shè)備、I/O設(shè)備n按傳輸速率:低速、中速、高速n按信息交換的單位分類:塊設(shè)備、字符設(shè)備n按設(shè)備的共享屬性:獨占設(shè)備、共享設(shè)備、虛擬設(shè)備5.1 I/O系統(tǒng)5.1.1 I/O設(shè)備2、設(shè)備與控制器之間的接口緩沖轉(zhuǎn)

2、換器控制邏輯信號數(shù)據(jù)I/O設(shè)備至設(shè)備控制器數(shù)據(jù)信號線狀態(tài)信號線控制信號線5.1 I/O系統(tǒng)5.1.1 I/O設(shè)備2、設(shè)備與控制器之間的接口(1)信號數(shù)據(jù)線用于在設(shè)備和設(shè)備控制器之間傳送數(shù)據(jù)信號。(2)控制信號線由設(shè)備控制器向I/O設(shè)備發(fā)送控制信號時的通路(3)狀態(tài)信號線指示當(dāng)前設(shè)備狀態(tài)的信號5.1 I/O系統(tǒng)5.1.2 設(shè)備控制器n設(shè)備控制器用于控制一個或者多個設(shè)備,以實現(xiàn)I/O設(shè)備和計算機之間的數(shù)據(jù)交換。n設(shè)備控制器是CPU和外設(shè)之間的接口,接收CPU的I/O命令,并控制外設(shè)工作。n設(shè)備控制器是一個可編址的設(shè)備。5.1 I/O系統(tǒng)5.1.2 設(shè)備控制器1、設(shè)備控制器的功能(1)接收和識別命令

3、(2)數(shù)據(jù)交換(3)標(biāo)識和報告設(shè)備狀態(tài)(4)地址識別(5)數(shù)據(jù)緩沖(6)差錯控制5.1 I/O系統(tǒng)5.1.2 設(shè)備控制器2、設(shè)備控制器的組成(1)設(shè)備控制器與處理機的接口n用于實現(xiàn)CPU與DCU之間的通信。(2)設(shè)備控制器與設(shè)備的接口n用于連接一個或者多個設(shè)備。(3)I/O邏輯n用于實現(xiàn)對設(shè)備的控制。5.1 I/O系統(tǒng)5.1.3 I/O通道1、I/O通道的引入nI/O通道是一種特殊的處理機,它具有執(zhí)行I/O指令的能力,并通過執(zhí)行通道程序來控制I/O操作。n引入I/O通道的目的是使一些原來由CPU處理的I/O任務(wù)轉(zhuǎn)由通道來承擔(dān),減少由于干預(yù)I/O操作而造成的CPU負擔(dān)。n特點:指令集單一;與CP

4、U共享內(nèi)存5.1 I/O系統(tǒng)5.1.3 I/O通道2、I/O通道的類型(1)字節(jié)多路通道n按字節(jié)交叉方式工作的通道n用于連接多個慢速外圍設(shè)備n為多個外設(shè)交叉工作5.1 I/O系統(tǒng)5.1.3 I/O通道2、I/O通道的類型(2)數(shù)組選擇通道n連接快速外設(shè)n以成組方式工作,一次傳送一組數(shù)據(jù),速度快n每次啟動只能為一個設(shè)備服務(wù),完成一次I/O操作后,才能選擇其它設(shè)備,通道利用率低。5.1 I/O系統(tǒng)5.1.3 I/O通道2、I/O通道的類型(3)數(shù)組多路通道n用于連接多臺高速外設(shè)n先為一臺設(shè)備執(zhí)行一條通道命令,然后自動轉(zhuǎn)換為另一個設(shè)備執(zhí)行一條通道命令n任一時刻只為一臺設(shè)備傳送一組數(shù)據(jù),但可以交叉地位

5、多個設(shè)備提供服務(wù)。5.1 I/O系統(tǒng)5.1.3 I/O通道3、I/O通道的“瓶頸”問題n由于通道價格昂貴,會造成由于通道數(shù)量不足而造成“瓶頸”現(xiàn)象。n解決的辦法:n增加設(shè)備到主機之間的通路5.1 I/O系統(tǒng)5.1.4 總線系統(tǒng)1、ISA和EISA總線(1)ISA總線(2)EISA總線2、局部總線(1)VESA總線(2)PCI總線第5章 設(shè)備管理5.2 I/O控制方式n5.2.1 程序I/O方式n5.2.2 中斷驅(qū)動I/O控制方式n5.2.3 直接存儲器訪問I/O控制方式n5.2.4 I/O通道控制方式5.2 I/O控制方式5.2.1 程序I/O方式n由用戶程序直接控制主存和外設(shè)間交換數(shù)據(jù)。n特

6、點:n(1)控制管理簡單,所需硬件支持少。n(2)CPU和外設(shè)只能串行n(3)傳送數(shù)據(jù)的單位是字節(jié),速度慢n(4)CPU利用率低5.2 I/O控制方式5.2.2 中斷控制方式n工作過程:nCPU向DCU發(fā)出啟動外設(shè)的指令nDCU按要求啟動設(shè)備后,向CPU發(fā)出中斷請求,通知CPU外圍設(shè)備已經(jīng)啟動nCPU向DCU發(fā)出一條I/O指令,DCU按要求傳送數(shù)據(jù),傳送完畢后,再向CPU發(fā)出中斷,通知CPU給出下一條I/O指令。5.2 I/O控制方式5.2.2 中斷控制方式n特點:(1)和程序直接I/O相比,提高了CPU利用率和吞吐量(2)數(shù)據(jù)傳輸速度仍受數(shù)據(jù)寄存器大小的限制(3)一次I/O操作,中斷次數(shù)多,

7、仍消耗CPU時間,CPU利用率提高有限5.2 I/O控制方式5.2.3 直接存儲器訪問(DMA)控制方式1、引入n基本思想:在外設(shè)和主存之間建立數(shù)據(jù)傳送的直接通路,避免使用數(shù)據(jù)寄存器為中轉(zhuǎn)站的數(shù)據(jù)交換方式的弊端。n與前兩種方式相比,做了如下改進:n(1)數(shù)據(jù)傳送的基本單位是塊n(2)建立了主存和外存之間的直接數(shù)據(jù)通路n(3)設(shè)置DMA控制器,控制存儲器和外設(shè)的數(shù)據(jù)傳送n(4)CPU僅在一個塊的開始和結(jié)束時才干預(yù)。5.2 I/O控制方式5.2.3 直接存儲器訪問(DMA)控制方式2、DMA控制器的組成n三個部分:主機與DMA控制器接口、DMA控制器與塊設(shè)備的接口、I/O邏輯n四個寄存器:n命令/

8、狀態(tài)寄存器CRn內(nèi)存地址寄存器MARn數(shù)據(jù)寄存器DRn數(shù)據(jù)計數(shù)器DC5.2 I/O控制方式5.2.3 直接存儲器訪問(DMA)控制方式3、工作過程nCPU發(fā)出一條I/O指令,送到DMA控制器,同時,把傳送數(shù)據(jù)的字節(jié)數(shù)和主存區(qū)起始地址送入DMA控制器的主存地址寄存器和數(shù)據(jù)寄存器。n啟動外設(shè)開始傳送數(shù)據(jù),傳送數(shù)據(jù)過程中,CPU轉(zhuǎn)去執(zhí)行其它任務(wù)(進程),數(shù)據(jù)傳送由DMA控制器控制,直到傳輸結(jié)束或出錯,向CPU發(fā)出中斷,nCPU響應(yīng)后繼續(xù)處理:如傳送下一塊、結(jié)束I/O操作或進行故障處理。5.2 I/O控制方式5.2.4 通道控制方式1、引入n進一步減少處理機對I/O操作的干預(yù)n實現(xiàn)CPU、通道和外圍設(shè)

9、備三者間的并行5.2 I/O控制方式5.2.4 通道控制方式2、通道程序n通道有自己的控制指令,稱為通道命令(channel control word, CCW)n每一條通道命令規(guī)定了外設(shè)的一種操作,由以下信息組成:n操作碼、內(nèi)存地址、計數(shù)器、通道程序結(jié)束位P、記錄結(jié)束標(biāo)志Rn若干條通道命令按一定的方式連接起來,就構(gòu)成了通道程序。5.2 I/O控制方式5.2.4 通道控制方式3、通道地址字n要啟動I/O設(shè)備工作,首先把I/O要求,用通道程序表示出來,然后由通道控制外設(shè)完成指定的操作。n編好的通道程序是放在主存中的,為了使通道能取到通道命令去執(zhí)行,需要把通道程序的內(nèi)存起始地址告訴通道。n用于存放

10、通道程序首地址的主存固定單元稱為通道地址字(channel address word_CAW),通道啟動后,從CAW中獲得通道程序的起始地址。第5章 設(shè)備管理5.3 緩沖管理n5.3.1 緩沖的引入n5.3.2 單緩沖和雙緩沖n5.3.3 循環(huán)緩沖n5.3.4 緩沖池5.3 緩沖管理5.3.1 緩沖的引入n(1)緩和CPU與I/O設(shè)備間速度不匹配的矛盾n(2)減少對的中斷頻率,放寬對中斷響應(yīng)時間的限制。n(3)提高CPU和I/O設(shè)備之間的并行性。5.3 緩沖管理5.3.2 單緩沖和雙緩沖1、單緩沖n在塊設(shè)備輸入時,假定從磁盤把一塊數(shù)據(jù)輸入到緩沖區(qū)的時間為T,操作系統(tǒng)將該緩沖區(qū)中的數(shù)據(jù)傳送到用戶

11、區(qū)的時間為M,而CPU對數(shù)據(jù)的處理時間為C。n由于T和C可以并行,當(dāng)TC時,系統(tǒng)對每塊數(shù)據(jù)的處理時間為M+T,反之則為M+C,即Max(C,T)+ M5.3 緩沖管理5.3.2 單緩沖和雙緩沖2、雙緩沖n也稱為緩沖對換。先輸入第一緩沖區(qū),充滿后再輸入第二緩沖區(qū),同時,用戶進程處理第一緩沖區(qū)中的數(shù)據(jù)。n雙緩沖時,系統(tǒng)處理一塊數(shù)據(jù)的時間可以粗略地認為是MAX(C,T)。如果CT,則可使CPU不必等待設(shè)備輸入。5.3 緩沖管理5.3.3 循環(huán)緩沖(多緩沖)1、循環(huán)緩沖的組成(1)多個緩沖區(qū)各個緩沖區(qū)大小相同,可分為3類:n用于裝輸入數(shù)據(jù)的空緩沖區(qū)Rn已裝滿數(shù)據(jù)的緩沖區(qū)Gn計算進程正在使用的現(xiàn)行工作緩

12、沖區(qū)C(2)多個指針n三個指針n指示計算進程下一個可用緩沖區(qū)G的nextgn指示下一個輸入進程可用的空緩沖區(qū)R的nextin指示計算進程正在使用的緩沖區(qū)C的current5.3 緩沖管理5.3.3 循環(huán)緩沖(多緩沖)2、循環(huán)緩沖區(qū)的使用(1)Getbuf過程n調(diào)用該過程以獲取緩沖區(qū)(2)Releasebuf過程n調(diào)用該過程以釋放緩沖區(qū)5.3 緩沖管理5.3.3 循環(huán)緩沖(多緩沖)3、進程同步(1)nexti指針追趕上nextgn即輸入進程速度快于計算進程n輸入進程應(yīng)阻塞(2)nextg追趕上nextin計算進程快于輸入進程n計算進程應(yīng)阻塞5.3 緩沖管理5.3.4 緩沖池(Buffer Poo

13、l)1、緩沖池的組成(1)三種類型的緩沖區(qū)n空閑緩沖區(qū)n裝滿輸入數(shù)據(jù)的Buffern裝滿輸出數(shù)據(jù)的Buffer5.3 緩沖管理5.3.4 緩沖池(Buffer Pool)1、緩沖池的組成(2)形成三個隊列n空緩沖隊列emqn輸入隊列inqn輸出隊列outq5.3 緩沖管理5.3.4 緩沖池(Buffer Pool)1、緩沖池的組成(3)四個工作緩沖區(qū)n收容輸入工作緩沖區(qū)n提取輸入工作緩沖區(qū)n收容輸出工作緩沖區(qū)n提取輸出工作緩沖區(qū)5.3 緩沖管理5.3.4 緩沖池(Buffer Pool)2、Getbuf過程和Putbuf過程(1)Addbuf(type, number)n用于將參數(shù)number

14、所指示的緩沖區(qū),掛在type隊列上。(2)Takebuf(type)n從type指示的隊列的對首摘下一個緩沖區(qū)5.3 緩沖管理5.3.4 緩沖池(Buffer Pool)3、緩沖區(qū)的工作方式(1)收容輸入(2)提取輸入(3)收容輸出(4)提取輸出第5章 設(shè)備管理5.4 I/O軟件n5.4.1 I/O軟件的設(shè)計目標(biāo)和原則n5.4.2 中斷處理程序n5.4.3 設(shè)備驅(qū)動程序n5.4.4 設(shè)備獨立性軟件n5.4.5 用戶層的I/O軟件5.4 I/O軟件5.4.1 I/O軟件的設(shè)計目標(biāo)和原則n設(shè)計目標(biāo):(1)與具體設(shè)備無關(guān)(2)統(tǒng)一命名(3)對錯誤的處理(4)緩沖技術(shù)(5)設(shè)備的分配和釋放(6)I/O

15、控制方式5.4 I/O軟件5.4.1 I/O軟件的設(shè)計目標(biāo)和原則I/O軟件的四個層次:(1)用戶層軟件(2)設(shè)備獨立性軟件(3)設(shè)備驅(qū)動程序(4)中斷處理程序5.4 I/O軟件5.4.2 中斷處理程序n中斷處理層的主要工作:進行進程上下文的切換,對處理中斷信號源進行測試,讀取設(shè)備狀態(tài)和修改進程狀態(tài)等。1、喚醒被阻塞的驅(qū)動(程序)進程2、保護被中斷進程的CPU環(huán)境3、轉(zhuǎn)入相應(yīng)的設(shè)備處理程序4、中斷處理5、恢復(fù)被中斷進程的現(xiàn)場5.4 I/O軟件5.4.3 設(shè)備驅(qū)動程序1、設(shè)備驅(qū)動程序的功能(1)接收由設(shè)備獨立性軟件發(fā)來的命令和參數(shù),將命令中的抽象要求轉(zhuǎn)換為具體要求。(2)檢查用戶I/O請求的合法性

16、,了解I/O設(shè)備的狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備的工作方式。(3)發(fā)出I/O命令。(4)及時響應(yīng)由控制器或通道發(fā)來的中斷請求,并根據(jù)中斷類型調(diào)用相應(yīng)的中斷處理程序。(5)對于設(shè)置由通道的計算機系統(tǒng),應(yīng)能根據(jù)用戶的輸入輸出請求,自動構(gòu)成通道程序。5.4 I/O軟件5.4.3 設(shè)備驅(qū)動程序2、設(shè)備處理方式(1)為每一類設(shè)備設(shè)置一個進程,專門用于執(zhí)行這類設(shè)備的I/O操作(2)在整個系統(tǒng)中設(shè)置一個I/O進程,專門用于執(zhí)行系統(tǒng)中所有各類設(shè)備的I/O操作(3)不設(shè)置專門的設(shè)備處理進程,而只為各類設(shè)備設(shè)置相應(yīng)的設(shè)備處理程序(模塊),共用戶進程或系統(tǒng)進程調(diào)用。5.4 I/O軟件5.4.3 設(shè)備驅(qū)動程序3、設(shè)備驅(qū)

17、動程序的特點(1)驅(qū)動程序是在請求輸入輸出的進程與設(shè)備控制器之間的一個通信和轉(zhuǎn)換程序。(2)驅(qū)動程序與設(shè)備控制器和I/O設(shè)備的硬件特性緊密相關(guān),因而不同類型設(shè)備應(yīng)配置不同的驅(qū)動程序。(3)驅(qū)動程序與I/O設(shè)備的I/O控制方式緊密相關(guān)(4)由于驅(qū)動程序與硬件緊密相關(guān),其中一部分必須用匯編語言編寫。(5)驅(qū)動程序應(yīng)允許可重入(6)驅(qū)動程序不允許系統(tǒng)調(diào)用5.4 I/O軟件5.4.3 設(shè)備驅(qū)動程序4、設(shè)備驅(qū)動程序的處理過程(1)將抽象的要求轉(zhuǎn)換為具體的要求(2)檢查I/O請求的合法性(3)讀出和檢查設(shè)備的狀態(tài)(4)傳送必要的參數(shù)(5)設(shè)置工作方式(6)啟動I/O設(shè)備5.4 I/O軟件5.4.4 設(shè)備獨

18、立性軟件1、設(shè)備獨立性的概念n又稱為設(shè)備無關(guān)性:應(yīng)用程序獨立于具體使用的物理設(shè)備。n(1)設(shè)備分配時的靈活性n(2)易于實現(xiàn)I/O重定向5.4 I/O軟件5.4.4 設(shè)備獨立性軟件2、設(shè)備獨立性軟件n驅(qū)動程序與硬件緊密相關(guān),為了實現(xiàn)設(shè)備無關(guān),必須在驅(qū)動程序之上設(shè)置一層軟件,稱為設(shè)備獨立性軟件。n主要功能:n(1)執(zhí)行所有設(shè)備的公有操作n(2)向用戶層(或文件層)軟件提供統(tǒng)一的接口。5.4 I/O軟件5.4.4 設(shè)備獨立性軟件3、邏輯設(shè)備名到物理設(shè)備名映射的實現(xiàn)(1)邏輯設(shè)備表n系統(tǒng)必須設(shè)置一張邏輯設(shè)備表n三個表項:邏輯設(shè)備名、物理設(shè)備名、設(shè)備驅(qū)動程序的入口地址。(2)LUT的設(shè)置問題n第一種方

19、式是整個系統(tǒng)設(shè)置一張LUTn第二種方式是每個用戶設(shè)置一張LUT5.4 I/O軟件5.4.5 用戶層的I/O軟件3、邏輯設(shè)備名到物理設(shè)備名映射的實現(xiàn)n用戶程序必須通過一組系統(tǒng)調(diào)用來取得操作系統(tǒng)的服務(wù)。第5章 設(shè)備管理5.5 設(shè)備分配n5.5.1 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)n5.5.2 設(shè)備分配時應(yīng)考慮的問題n5.5.3 獨占設(shè)備的分配程序n5.5.4 SPOOLing軟件5.5 設(shè)備分配5.5.1 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)n1、設(shè)備控制表DCTn(1)設(shè)備隊列對首指針n(2)設(shè)備狀態(tài)n(3)與設(shè)備連接的控制器表指針n(4)重復(fù)執(zhí)行次數(shù)5.5 設(shè)備分配5.5.1 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)n2、控制器控制表、通道

20、控制表和系統(tǒng)設(shè)備表n(1)控制器控制表(COCT)n(2)通道控制表(CHCT)n(3)系統(tǒng)設(shè)備表(SDT)5.5 設(shè)備分配5.5.2 設(shè)備分配時應(yīng)考慮的因素1、設(shè)備的固有屬性(1)獨占設(shè)備:應(yīng)采用獨享分配策略,即將一個設(shè)備分配給某進程后,便由該進程獨占直至該進程自己釋放。(2)共享設(shè)備:可同時分配多個進程(3)可虛擬設(shè)備:采用虛擬技術(shù),編程可共享設(shè)備。5.5 設(shè)備分配5.5.2 設(shè)備分配時應(yīng)考慮的因素2、設(shè)備分配算法(1)先來先服務(wù)n請求同一設(shè)備的多個進程,形成一個設(shè)備請求隊列(2)優(yōu)先權(quán)高者優(yōu)先n優(yōu)先權(quán)相同者,仍采用先來先服務(wù)5.5 設(shè)備分配5.5.2 設(shè)備分配時應(yīng)考慮的因素3、設(shè)備分配中

21、的安全性(1)安全分配方式n即采用一次性分配策略,打破“占有且等待”條件,避免死鎖。(2)不安全分配方式n避免死鎖5.5 設(shè)備分配5.5.3 獨占設(shè)備的分配程序1、基本的設(shè)備分配程序(1)分配設(shè)備n根據(jù)I/O請求中的物理設(shè)備名,查找SDT,找出設(shè)備的DCT(2)分配控制器:根據(jù)DCT找到COCT(3)分配通道:根據(jù)COCT 找到CHCT5.5 設(shè)備分配5.5.3 獨占設(shè)備的分配程序2、設(shè)備分配程序的改進n基本的設(shè)備分配過程中的問題:進程以物理設(shè)備名提出I/O請求;采用的是單通路I/O結(jié)構(gòu)。n改進辦法:n(1)增加設(shè)備獨立性n(2)考慮多通路情況5.5 設(shè)備分配5.5.4 SPOOLing技術(shù)1、什么是SPOOLingn假脫機輸入輸出n在聯(lián)機情況下實現(xiàn)的同時外圍操作稱為SPOOLi

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論