北方工業(yè)大學(xué) 計(jì)算機(jī)操作系統(tǒng) 第15講--設(shè)備管理_第1頁(yè)
北方工業(yè)大學(xué) 計(jì)算機(jī)操作系統(tǒng) 第15講--設(shè)備管理_第2頁(yè)
北方工業(yè)大學(xué) 計(jì)算機(jī)操作系統(tǒng) 第15講--設(shè)備管理_第3頁(yè)
北方工業(yè)大學(xué) 計(jì)算機(jī)操作系統(tǒng) 第15講--設(shè)備管理_第4頁(yè)
北方工業(yè)大學(xué) 計(jì)算機(jī)操作系統(tǒng) 第15講--設(shè)備管理_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1第七章 設(shè)備管理第一節(jié)第一節(jié) 概述概述第二節(jié)第二節(jié) 數(shù)據(jù)傳送控制方式數(shù)據(jù)傳送控制方式第三節(jié)第三節(jié) 中斷技術(shù)中斷技術(shù)第四節(jié)第四節(jié) 緩沖技術(shù)緩沖技術(shù)第五節(jié)第五節(jié) 設(shè)備分配設(shè)備分配第六節(jié)第六節(jié) I/OI/O進(jìn)程控制進(jìn)程控制第七節(jié)第七節(jié) 設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序27.1 概述設(shè)備除cpu及內(nèi)存以外的所有設(shè)備和裝置(I/O設(shè)備,存儲(chǔ)設(shè)備等)。存儲(chǔ)設(shè)備用來(lái)存放各種信息的設(shè)備稱為存儲(chǔ)設(shè)備,例如,軟盤、硬盤、光盤和磁帶等I/O設(shè)備用來(lái)向計(jì)算機(jī)輸入和輸出信息的設(shè)備,如鍵盤、鼠標(biāo)、顯示器、打印機(jī)等37.1.1 外部設(shè)備分類 按系統(tǒng)和用戶分:系統(tǒng)、用戶按輸入輸出傳送方式分(UNIX或Linux系統(tǒng)):字符型設(shè)備、

2、塊設(shè)備按資源特點(diǎn)分:獨(dú)享設(shè)備、共享設(shè)備、虛擬設(shè)備按設(shè)備硬件物理特性分:順序存取設(shè)備、直接存取設(shè)備4按輸入輸出傳送方式分字符型設(shè)備:以字符為單位進(jìn)行輸入、輸出的設(shè)備。每輸入或輸出一個(gè)字符就中斷一次主機(jī)CPU,請(qǐng)求進(jìn)行處理。所以又稱慢速字符設(shè)備。塊設(shè)備:以字符塊為單位進(jìn)行輸入、輸出的設(shè)備。例如:硬盤。5按資源特點(diǎn)分獨(dú)享設(shè)備:所有字符設(shè)備都是獨(dú)享設(shè)備。在一個(gè)用戶作業(yè)未完成或退出之前,此設(shè)備不能分配給其他作業(yè)用。打印機(jī)不能同時(shí)打印多個(gè)用戶作業(yè),否則輸出結(jié)果將會(huì)混在一起。共享設(shè)備:多個(gè)用戶作業(yè)或多個(gè)進(jìn)程可以“同時(shí)”從這些設(shè)備上存取信息。軟硬盤、光盤等塊設(shè)備都是共享設(shè)備。虛擬設(shè)備:通過(guò)軟件技術(shù)將獨(dú)享設(shè)備改

3、造成共享設(shè)備。例如:通過(guò)SPOOLing技術(shù)將一臺(tái)打印機(jī)虛擬成多臺(tái)打印機(jī)。6按設(shè)備硬件物理特性分順序存取設(shè)備:存取時(shí)間與物理上當(dāng)前位置有關(guān)。如:磁帶直接存取設(shè)備:存取時(shí)間與物理上當(dāng)前位置關(guān)系不大。如:磁盤77.1.2 設(shè)備管理的任務(wù)選擇和分配輸入輸出設(shè)備控制輸入輸出設(shè)備和CPU或內(nèi)存之間的數(shù)據(jù)交換。為用戶提供一個(gè)友好的接口,把用戶和設(shè)備硬件特性分開(kāi),使用戶編程時(shí)不必關(guān)心設(shè)備的物理特性。盡量提高輸入輸出設(shè)備的利用率,發(fā)揮主機(jī)與外設(shè)以及外設(shè)與外設(shè)之間的真正并行工作能力。87.1.3 設(shè)備管理的功能提供與進(jìn)程管理系統(tǒng)的接口,將進(jìn)程要求傳達(dá)給設(shè)備管理程序。按設(shè)備類型和算法分配設(shè)備,包括相應(yīng)的通道、設(shè)備

4、控制器。對(duì)未分配到設(shè)備的任務(wù)或作業(yè)進(jìn)入等待隊(duì)列。實(shí)現(xiàn)設(shè)備和設(shè)備、設(shè)備和CPU之間的并行操作。這需要一些硬件設(shè)備的支持。進(jìn)行存儲(chǔ)緩沖區(qū)管理。97.2 數(shù)據(jù)傳送控制方式數(shù)據(jù)傳送設(shè)備與CPU或內(nèi)存的數(shù)據(jù)交互傳送方式程序直接控制中斷控制DMA控制通道控制評(píng)價(jià)指標(biāo)速度快、數(shù)據(jù)不丟失、系統(tǒng)開(kāi)銷小10程序直接控制由用戶進(jìn)程直接控制內(nèi)存與外部設(shè)備的數(shù)據(jù)傳輸當(dāng)用戶進(jìn)程需要數(shù)據(jù)時(shí),它通過(guò)CPU發(fā)送“設(shè)備啟動(dòng)命令”,用戶進(jìn)程進(jìn)入測(cè)試等待狀態(tài);在等待時(shí)間內(nèi)CPU不斷用一條測(cè)試指令檢查設(shè)備的工作狀態(tài)當(dāng)數(shù)據(jù)準(zhǔn)備好后,狀態(tài)寄存器的狀態(tài)置為完成狀態(tài),發(fā)出“Done”信號(hào),開(kāi)始向內(nèi)存?zhèn)魉蛿?shù)據(jù)11程序直接控制方式的特點(diǎn)CPU和外

5、部設(shè)備之間只能串行工作CPU在一段時(shí)間只能與一臺(tái)外部設(shè)備交換信息,所以不能實(shí)現(xiàn)設(shè)備之間的并行工作CPU的處理速度遠(yuǎn)遠(yuǎn)高于外部設(shè)備,所以CPU的利用率大大降低。由于這種方式是依靠測(cè)試設(shè)備的狀態(tài)寄存器的狀態(tài)位來(lái)控制數(shù)據(jù)的傳輸,所以,無(wú)法發(fā)現(xiàn)和處理由于設(shè)備或其他硬件所產(chǎn)生的錯(cuò)誤。127.2.2 中斷方式與程序直接方式不同,它是靠中斷來(lái)實(shí)現(xiàn)設(shè)備與內(nèi)存的數(shù)據(jù)傳輸控制。處理過(guò)程:1.當(dāng)進(jìn)程要求數(shù)據(jù)時(shí),由CPU發(fā)出START命令,啟動(dòng)外設(shè)準(zhǔn)備數(shù)據(jù)。同時(shí)中斷允許位打開(kāi)。2. 現(xiàn)運(yùn)行進(jìn)程放棄CPU,等待輸入完成。進(jìn)程調(diào)度程序選擇一個(gè)新的進(jìn)程在CPU上運(yùn)行。3. 當(dāng)數(shù)據(jù)從相應(yīng)的設(shè)備送到緩沖區(qū)后,由I/O控制器發(fā)中

6、斷請(qǐng)求,CPU接到請(qǐng)求后,中斷現(xiàn)運(yùn)行進(jìn)程,轉(zhuǎn)中斷處理程序執(zhí)行數(shù)據(jù)傳輸。4. 在以后某個(gè)時(shí)刻,被中斷進(jìn)程由于獲得了數(shù)據(jù)而繼續(xù)運(yùn)行。 13中斷方式的特點(diǎn)1. 由于I/O控制器的數(shù)據(jù)緩沖寄存器比較小,裝滿數(shù)據(jù)后發(fā)生中斷,因此一次數(shù)據(jù)傳輸中會(huì)造成多次中斷,消耗大量的CPU時(shí)間。2. 由于系統(tǒng)中的設(shè)備較多,中斷太多,會(huì)使CPU無(wú)法響應(yīng)中斷,造成數(shù)據(jù)丟失。3. 如果外部設(shè)備的速度也比較高,CPU不能及時(shí)取走緩沖寄存器的數(shù)據(jù),那么就會(huì)出現(xiàn)數(shù)據(jù)丟失。147.2.3 DMA方式當(dāng)需要傳輸大量數(shù)據(jù)時(shí),程序I/O方式和中斷I/O方式都會(huì)浪費(fèi)大量的CPU時(shí)間,因此,需要一種更有效的技術(shù)處理大量數(shù)據(jù)的傳輸DMA(直接存

7、儲(chǔ)器存取)方式:當(dāng)處理器希望讀或?qū)懸粔K數(shù)據(jù)時(shí),它給DMA模塊產(chǎn)生一條指令,發(fā)送以下信息涉及的I/O設(shè)備的地址開(kāi)始讀或?qū)懙拇鎯?chǔ)器單元需要讀或?qū)懙淖謹(jǐn)?shù)15DMA方式n處理器然后繼續(xù)其他工作,而把這個(gè)操作委托給DMA模塊,由該模塊處理。nDMA模塊直接從存儲(chǔ)器中或者往存儲(chǔ)器中傳送整個(gè)數(shù)據(jù)塊,每次傳送一個(gè)字。n當(dāng)傳送完成后,DMA模塊給處理器發(fā)一個(gè)中斷信號(hào)。n因此,只有在開(kāi)始傳送和結(jié)束傳送時(shí)才會(huì)用到處理器System BusI/OControllerI/OControllerProcessorDMAControllerMemory.16DMA方式nDMA方式的特點(diǎn):作為高速的外圍設(shè)備與內(nèi)存之間進(jìn)行成批

8、的數(shù)據(jù)交換,但不對(duì)數(shù)據(jù)作加工處理。數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊,I/O操作的類型比較簡(jiǎn)單需要使用一個(gè)專門的DMA控制器(DMAC,Direct Memory Access Controller)。DMAC中有控制、狀態(tài)寄存器、傳送字節(jié)計(jì)數(shù)器、內(nèi)存地址寄存器和數(shù)據(jù)緩沖寄存器17DMA方式n采用盜竊總線控制權(quán)的方法,由DMAC送出內(nèi)存地址和發(fā)出內(nèi)存讀、設(shè)備寫或設(shè)備讀、內(nèi)存寫的控制信號(hào)來(lái)完成內(nèi)存與設(shè)備之間的直接數(shù)據(jù)傳送,而不用CPU的干預(yù)。有的DMA傳送甚至不經(jīng)過(guò)DMAC的數(shù)據(jù)緩沖寄存器的再吞吐,傳輸速率非常高。n僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開(kāi)始和結(jié)束時(shí),才需CPU干預(yù),整塊數(shù)據(jù)的傳送是在控制器的控制下

9、完成的187.2.4 I/O通道方式n通道控制方式與DMA方式類似,也是一種以內(nèi)存為中心,實(shí)現(xiàn)設(shè)備與內(nèi)存直接交換數(shù)據(jù)的控制方式。與DMA方式相比,DMA方式每次僅傳輸一個(gè)數(shù)據(jù)塊的數(shù)據(jù),而通道卻可以一次傳輸若干個(gè)數(shù)據(jù)塊的數(shù)據(jù)。19I/O通道方式通道控制方式的數(shù)據(jù)輸入過(guò)程如下當(dāng)進(jìn)程要求輸入數(shù)據(jù)時(shí),CPU發(fā)出驅(qū)動(dòng)指令指明I/O操作、設(shè)備號(hào)和相應(yīng)的通道對(duì)應(yīng)通道接收到CPU發(fā)來(lái)的驅(qū)動(dòng)指令后,把存放在內(nèi)存中的通道指令程序讀出,并執(zhí)行通道程序,控制設(shè)備將數(shù)據(jù)傳送到內(nèi)存指定的區(qū)域若數(shù)據(jù)傳送結(jié)束,則向CPU發(fā)出中斷請(qǐng)求。CPU收到中斷信號(hào)后轉(zhuǎn)中斷處理程序,喚醒等待輸入完成的進(jìn)程,并返回被中斷程序20System

10、 BusProcessorI/O BusI/OControllerI/OControllerI/OControllerI/OControllerMemoryChannelProcessor21通道指令通道指令一般包括:內(nèi)存地址(數(shù)據(jù))、傳送方向、數(shù)據(jù)長(zhǎng)度、I/O設(shè)備的地址信息、特征信息。通道指令在進(jìn)程要求數(shù)據(jù)時(shí)由系統(tǒng)自動(dòng)生成。Wirte 0 0 250 1850(寫/通道指令未結(jié)束/記錄未結(jié)束/250個(gè)單元/內(nèi)存地址1850)Write 1 1 250 780 (寫/通道指令結(jié)束/記錄結(jié)束/250個(gè)單元/內(nèi)存地址780)22通道方式的特點(diǎn)設(shè)備與內(nèi)存直接交換數(shù)據(jù)。數(shù)據(jù)的傳送方向、內(nèi)存地址、長(zhǎng)度等

11、是由通道來(lái)控制的。DMA中這些是由CPU控制的。一個(gè)通道可以控制多臺(tái)設(shè)備與內(nèi)存進(jìn)行數(shù)據(jù)交換。DMA方式每臺(tái)設(shè)備至少一個(gè)DMA控制器。一個(gè)通道可以以分時(shí)方式同時(shí)執(zhí)行幾個(gè)通道指令。237.3 中斷技術(shù)7.3.1 中斷的基本思想7.3.2 中斷的分類與優(yōu)先級(jí)7.3.3 軟中斷7.3.4 中斷處理過(guò)程247.3.1 中斷的基本思想定義:中斷是指計(jì)算機(jī)在執(zhí)行期間,系統(tǒng)內(nèi)發(fā)生任何非尋常的或預(yù)期的急需處理事件,使得CPU暫時(shí)中斷當(dāng)前的進(jìn)程而轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,待處理完成后又返回原來(lái)被中斷處繼續(xù)執(zhí)行或調(diào)度新的進(jìn)程執(zhí)行的過(guò)程。中斷源:引起發(fā)生中斷的事件叫做中斷源。中斷請(qǐng)求:中斷源向CPU發(fā)送的中斷信號(hào)叫

12、做中斷請(qǐng)求。中斷響應(yīng):CPU收到中斷請(qǐng)求后轉(zhuǎn)相應(yīng)的事件處理程序稱為中斷響應(yīng)。25中斷的基本思想禁止中斷(關(guān)中斷):由于處理機(jī)狀態(tài)字PSW的中斷允許位可能被清除,導(dǎo)致CPU不響應(yīng)中斷,直到PSW的中斷許可位被重新設(shè)置,即開(kāi)中斷。開(kāi)中斷和關(guān)中斷都是為保障程序執(zhí)行的原子性。中斷請(qǐng)求、關(guān)中斷、開(kāi)中斷都是由硬件實(shí)現(xiàn)的。中斷屏蔽:中斷請(qǐng)求產(chǎn)生之后,系統(tǒng)用軟件方式有選擇地封鎖部分中斷,而允許其他中斷仍然能夠得到響應(yīng)。有些中斷是不可屏蔽的,它們具有最高的中斷響應(yīng)級(jí)別。267.3.2 中斷的分類與優(yōu)先級(jí)根據(jù)中斷源產(chǎn)生的條件,可把中斷分為內(nèi)部中斷和外部中斷:內(nèi)部中斷:來(lái)自處理機(jī)和內(nèi)存的中斷。內(nèi)中斷也叫做陷阱(tr

13、ap)。包括程序運(yùn)算引起的各種錯(cuò)誤,例如:數(shù)據(jù)格式錯(cuò)、非法指令等。外部中斷:除了內(nèi)部中斷之外,其他來(lái)自外部的中斷都是外中斷。例如:I/O設(shè)備發(fā)出的I/O中斷、外部信號(hào)中斷等。中斷和陷入按輕重緩急分為不同的優(yōu)先級(jí)。CPU的PSW中也設(shè)有優(yōu)先級(jí)。如果中斷源的優(yōu)先級(jí)高于PSW則處理機(jī)響應(yīng)該中斷;反之,屏蔽請(qǐng)求。中斷源的優(yōu)先級(jí)是固定的,處理機(jī)的優(yōu)先級(jí)則根據(jù)執(zhí)行情況由系統(tǒng)程序動(dòng)態(tài)設(shè)定。27中斷和陷入的區(qū)別陷阱通常由處理機(jī)正在執(zhí)行的指令引起,而中斷是由與現(xiàn)行指令無(wú)關(guān)的中斷引起的。陷入處理程序提供的服務(wù)是為當(dāng)前進(jìn)程的,而中斷處理程序提供的服務(wù)則不是為當(dāng)前進(jìn)程的。CPU在執(zhí)行完一條指令后,下一條指令開(kāi)始之前響

14、應(yīng)中斷,而中斷執(zhí)行過(guò)程中又可以響應(yīng)陷阱。有的系統(tǒng)將中斷處理程序在系統(tǒng)上下文上運(yùn)行,而陷入在用戶的上下文上運(yùn)行。287.3.3 軟中斷定義:通訊進(jìn)程之間相互發(fā)送信號(hào)來(lái)模擬硬件中斷。一個(gè)進(jìn)程A向進(jìn)程B發(fā)送一個(gè)軟中斷信號(hào)后,當(dāng)進(jìn)程B占用處理機(jī)時(shí),立即轉(zhuǎn)去執(zhí)行該軟中斷信號(hào)所對(duì)應(yīng)的程序。有些系統(tǒng)中,將陷入劃歸到軟中斷處理。如當(dāng)前執(zhí)行指令產(chǎn)生陷阱,則向當(dāng)前執(zhí)行進(jìn)程自身發(fā)出軟中斷信號(hào),立即進(jìn)入陷阱處理程序。297.3.4 中斷處理過(guò)程1.CPU檢查是否有響應(yīng)中斷的條件:中斷請(qǐng)求、CPU允許中斷。條件不滿足則中斷處理程序不處理。2.如果CPU響應(yīng)中斷,則先關(guān)中斷,以保證在中斷處理過(guò)程中不被中斷。3.保存中斷現(xiàn)

15、場(chǎng)。4.分析中斷原因,調(diào)用中斷處理子程序。如果同時(shí)有多個(gè)中斷,則響應(yīng)級(jí)別最高的中斷。30中斷向量不同的中斷源有不同的中斷處理子程序。這些子程序的入口地址和不同的處理機(jī)狀態(tài)字一起構(gòu)成中斷向量。存放在內(nèi)存的特定單元中。根據(jù)中斷源系統(tǒng)查詢中斷向量表,然后轉(zhuǎn)去相應(yīng)的處理子程序。317.4 緩沖技術(shù)緩沖的引入緩沖的種類緩沖池的管理327.4.1 緩沖的引入處理機(jī)的處理速度很高,為了使處理機(jī)的速度和外部設(shè)備的速度匹配,一般在處理機(jī)和外部設(shè)備之間加一個(gè)或多個(gè)緩沖區(qū),達(dá)到設(shè)備之間和設(shè)備與處理機(jī)之間的并行處理目的。為了減少中斷次數(shù)。例如:當(dāng)計(jì)算進(jìn)程把大量的數(shù)據(jù)輸出到打印機(jī)上,由于CPU的輸出速度大大高于打印機(jī)的

16、速度,因此,CPU只好停下來(lái)等待。而CPU計(jì)算時(shí),打印機(jī)卻空閑。兩種緩沖方案:用硬件緩沖寄存器;內(nèi)存緩沖區(qū)337.4.2 緩沖的種類單緩沖:在設(shè)備和處理機(jī)之間設(shè)置一個(gè)緩沖器。單緩沖不能實(shí)現(xiàn)設(shè)備之間的并行操作。雙緩沖:兩個(gè)緩沖器,以解決兩個(gè)設(shè)備之間的并行。但多個(gè)設(shè)備情況下仍然不可行。多緩沖:多個(gè)緩沖區(qū)連接起來(lái)組成兩部分,一部分專門用于輸入緩沖,另一部分專門用于輸出緩沖。緩沖池:將多個(gè)緩沖區(qū)連接起來(lái)統(tǒng)一管理,既可用于輸入,又可用于輸出。347.4.3 緩沖池的管理緩沖池由多個(gè)緩沖區(qū)組成。每個(gè)緩沖區(qū)由兩部分組成:一是緩沖區(qū)的首部,包括設(shè)備號(hào)、數(shù)據(jù)塊號(hào)、緩沖區(qū)號(hào)、互斥標(biāo)識(shí)位、連接指針;另一部分是存放數(shù)據(jù)的為緩沖體。系統(tǒng)將各個(gè)緩沖區(qū)按照用途分為三種隊(duì)列:空閑隊(duì)列、裝滿輸入數(shù)據(jù)的隊(duì)列、裝滿輸出數(shù)據(jù)的隊(duì)列。除了這三種隊(duì)列外,系統(tǒng)還提

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論