最新-操作系統(tǒng)第八章-PPT課件_第1頁(yè)
最新-操作系統(tǒng)第八章-PPT課件_第2頁(yè)
最新-操作系統(tǒng)第八章-PPT課件_第3頁(yè)
最新-操作系統(tǒng)第八章-PPT課件_第4頁(yè)
最新-操作系統(tǒng)第八章-PPT課件_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第八章 設(shè)備管理本章主要內(nèi)容:設(shè)備管理的功能和任務(wù)、數(shù)據(jù)傳送控制方式、中斷技術(shù)、緩沖技術(shù)、設(shè)備分配、 IO控制系統(tǒng)、設(shè)備驅(qū)動(dòng)程序等內(nèi)容8.1.1設(shè)備分類(lèi)按使用特性分類(lèi):存儲(chǔ)設(shè)備輸入輸出設(shè)備終端設(shè)備4. 脫機(jī)設(shè)備P224圖按從屬關(guān)系分類(lèi):系統(tǒng)設(shè)備用戶(hù)設(shè)備按信息組織方式分類(lèi):塊設(shè)備字符設(shè)備8.1.2設(shè)備管理的功能和任務(wù)主要任務(wù):見(jiàn)P224主要功能:8.2數(shù)據(jù)傳送控制方式什么是數(shù)據(jù)傳送控制方式: 數(shù)據(jù)傳送控制方式是指如何控制設(shè)備與內(nèi)存之間的數(shù)據(jù)傳輸過(guò)程的方式??刂迫瓌tP225程序(CPU)直接控制方式中斷驅(qū)動(dòng)方式DMA控制方式通道控制方式數(shù)據(jù)傳輸控制方式的發(fā)展過(guò)程8.3中斷技術(shù)中斷:是指計(jì)算機(jī)在執(zhí)

2、行期間系統(tǒng)內(nèi)發(fā)生任何非尋常的或非預(yù)期的急需處理事件,使得CPU暫時(shí)中斷當(dāng)前正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,待處理完畢后又返回原來(lái)被中斷處繼續(xù)執(zhí)行或調(diào)度新的進(jìn)程執(zhí)行的過(guò)程中斷源、響應(yīng)中斷、處理中斷禁止中斷:PSW中的中斷允許位清除。用來(lái)禁止和開(kāi)放中斷(為保證原子性)。 P233屏蔽中斷:PSW中的中斷屏蔽字段。每位對(duì)應(yīng)一類(lèi)中斷的中斷屏蔽觸發(fā)器。用軟件方法可以設(shè)置。用于屏蔽某些中斷。P233 中斷的基本概念:p233PSW即程序狀態(tài)字Program Status Word用來(lái)存放兩類(lèi)信息:一類(lèi)是體現(xiàn)當(dāng)前指令執(zhí)行結(jié)果的各種狀態(tài)信息,如有無(wú)進(jìn)位(CF位),有無(wú)溢出(OF位),結(jié)果正負(fù)(SF

3、位),結(jié)果是否為零(ZF位),奇偶標(biāo)志位(PF位)等;另一類(lèi)是存放控制信息,如允許中斷(IF位),跟蹤標(biāo)志(TF位)等。有些機(jī)器中將PSW稱(chēng)為標(biāo)志寄存器FR(Flag Register)。 中斷的基本概念(續(xù))中斷向量:PSW處理程序的入口地址。每類(lèi)中斷有對(duì)應(yīng)的PSW及處理程序的入口地址。關(guān)中斷:即禁止中斷,系統(tǒng)不響應(yīng)中斷。中斷嵌套:在處理中斷的同時(shí)又響應(yīng)別的中斷。屏蔽中斷的運(yùn)用P233:在中斷請(qǐng)求產(chǎn)生后,可以用屏蔽中斷的方法。 屏蔽同級(jí)或同級(jí)以下的中斷。 可用提高處理機(jī)優(yōu)先級(jí)的方法禁止中斷和屏蔽某些中斷。 中斷的分類(lèi)與優(yōu)先級(jí)外中斷:是指來(lái)自處理機(jī)和內(nèi)存外部的中斷。包括I/O中斷、外部信號(hào)中斷

4、、各種定時(shí)器引起的時(shí)鐘中斷以及調(diào)試程序中設(shè)置的中斷點(diǎn)等引起的調(diào)試中斷等。狹義上一般稱(chēng)為中斷。 內(nèi)中斷:主要指在處理機(jī)和內(nèi)存內(nèi)部產(chǎn)生中斷。 內(nèi)中斷一般稱(chēng)為陷阱。 它包括程序運(yùn)算引起的各種錯(cuò)誤、系統(tǒng)調(diào)用等。 中斷優(yōu)先級(jí):按中斷源的輕重緩急響應(yīng)中斷,操作系統(tǒng)對(duì)不同的中斷賦予不同的優(yōu)先級(jí)。中斷優(yōu)先級(jí)決定系統(tǒng)響應(yīng)中斷的優(yōu)先次序。 處理機(jī)優(yōu)先級(jí):現(xiàn)行程序的優(yōu)先級(jí),可用來(lái)禁止中斷和屏蔽中斷。中斷與陷阱的區(qū)別陷阱通常由處理機(jī)正在執(zhí)行的現(xiàn)行指令引起,而中斷則是由與現(xiàn)行指令無(wú)關(guān)的中斷源引起的。 陷阱處理程序提供的服務(wù)為當(dāng)前進(jìn)程所用,而中斷處理程序提供的服務(wù)則不是為了當(dāng)前進(jìn)程的。CPU在執(zhí)行完一條指令之后,下一條指

5、令開(kāi)始之前響應(yīng)中 斷,而在一條指令執(zhí)行中也可以響應(yīng)陷阱。 軟中斷軟中斷和硬中斷:軟中斷是通信進(jìn)程之間用來(lái)模擬硬件中斷的一種信號(hào)通信方式。硬中斷通過(guò)硬件產(chǎn)生相應(yīng)的終端請(qǐng)求。實(shí)現(xiàn)軟中斷通信的系統(tǒng)調(diào)用(如unix) : kill(pid,sig) 發(fā)送軟中斷信號(hào) signal(sig,func) 進(jìn)程設(shè)置軟中斷信號(hào)到 達(dá)時(shí)的處理方式 中斷處理過(guò)程:判斷中斷響應(yīng)條件關(guān)中斷保存被中斷現(xiàn)場(chǎng)分析中斷原因轉(zhuǎn)中斷處理程序執(zhí)行中斷處理子程序恢復(fù)現(xiàn)場(chǎng)開(kāi)中斷返回中斷點(diǎn)中斷處理過(guò)程(續(xù))I/O中斷的處理的控制過(guò)程、形式化描述: I/O Interrupt processing control: begin unusab

6、le I/O Interrupt flag save status of interrupt program if Input Device i Ready then Call Input Device i Control fi if Output Device i Ready then Call Output Device i Control fi if Data Deliver Done then Call Data Deliver Done Control fi restore CPU status reset I/O Interrupt flag end Input Device i

7、Control: Output Device i Control: Data Deliver Done Control:直接存儲(chǔ)訪(fǎng)問(wèn)方式(DMA, Direct Memory Access)工作方式:由程序設(shè)置DMA控制器中的若干寄存器值(如內(nèi)存始址,傳送字節(jié)數(shù)),然后發(fā)起I/O操作;在DMA控制之下完成內(nèi)存與外設(shè)的成批數(shù)據(jù)交換,在操作完成時(shí)由DMA控制器向CPU發(fā)出中斷。特點(diǎn):DMA與CPU分是共享總線(xiàn),DMA通過(guò)挪用總線(xiàn)周期的方式把數(shù)據(jù)緩沖寄存器中的數(shù)據(jù)直接送到內(nèi)存地址寄存器所指向的內(nèi)存區(qū)域。接下頁(yè)DMA方式下的I/O傳送結(jié)構(gòu)見(jiàn)P229圖9.5接下頁(yè)DMA方式下的數(shù)據(jù)傳送處理過(guò)程見(jiàn)P210

8、圖8.6接下頁(yè)直接存儲(chǔ)訪(fǎng)問(wèn)方式優(yōu)缺點(diǎn)優(yōu)點(diǎn):CPU只需干預(yù)I/O操作的開(kāi)始和結(jié)束,而一批數(shù)據(jù)傳輸由DMA控制,無(wú)需CPU控制,提高了CPU與設(shè)備的并行工作程度,排除了中斷方式中的數(shù)據(jù)丟失現(xiàn)象。適于高速設(shè)備。如:磁盤(pán)缺點(diǎn):DMA方式對(duì)外圍設(shè)備的管理和某些操作仍由CPU控制。系統(tǒng)中多個(gè)DMA同時(shí)使用,可能造成內(nèi)存地址沖突。管理和控制復(fù)雜化。DMA方式一次只能傳送一批地址連續(xù)的數(shù)據(jù)塊,如果需傳送多個(gè)地址不連續(xù)的數(shù)據(jù)塊,則需啟動(dòng)DMA多次。返回 通道控制方式(channel control)通道的定義及工作方式:通道是一個(gè)獨(dú)立于CPU的專(zhuān)管輸入輸出控制的處理機(jī),它控制設(shè)備與內(nèi)存直接進(jìn)行數(shù)據(jù)交換。它有自己

9、的通道指令,由通道指令構(gòu)成通道程序。由CPU啟動(dòng)通道工作,通道通過(guò)執(zhí)行通道程序控制數(shù)據(jù)傳輸,并在操作結(jié)束時(shí)向CPU發(fā)中斷信號(hào),由CPU進(jìn)行傳輸結(jié)束中斷處理通道。接下頁(yè)通道指令包括:1)操作碼 2)內(nèi)存地址3)讀或?qū)懙淖止?jié)計(jì)數(shù)4)記錄結(jié)束標(biāo)志R5)通道程序結(jié)束位P 通道程序接下頁(yè)通道程序: 通道程序根據(jù)進(jìn)程提出的數(shù)據(jù)傳輸要求由系統(tǒng)自動(dòng)生成,存放在內(nèi)存。通道程序示例: 一個(gè)六條通道指令所構(gòu)成的簡(jiǎn)單通道程序,其功能是將內(nèi)存中不同地址的數(shù)據(jù)寫(xiě)到三個(gè)記錄中。操作PR字節(jié)計(jì)數(shù)內(nèi)存地址備注WRITE0080813WRITE001401034WRITE01605830R1結(jié)束WRITE013002000R2結(jié)

10、束WRITE002501850WRITE11250720R3結(jié)束,程序結(jié)束 通道方式的數(shù)據(jù)傳輸結(jié)構(gòu)通道類(lèi)型:選擇通道(selector channel):可以連接多個(gè)外設(shè),而一次只能訪(fǎng)問(wèn)其中一個(gè)外設(shè),執(zhí)行一道通道程序(單道工作方式)。以塊為單位傳送數(shù)據(jù),速度快,適合高速外部設(shè)備。如:磁盤(pán),磁帶。字節(jié)多路(byte multiplexor channel)通道 :以字節(jié)為單位傳送數(shù)據(jù),多個(gè)外設(shè)分時(shí)輪流使用通道(分時(shí)系統(tǒng)工作方式)。適合連接低速字符設(shè)備。數(shù)組多路(block multiplexor channel)通道:以塊為單位傳送數(shù)據(jù),可以并發(fā)訪(fǎng)問(wèn)多個(gè)外設(shè),分時(shí)執(zhí)行多道通道程序。適合連接中高速

11、外部設(shè)備。如:磁盤(pán),磁帶。接下頁(yè)通道方式的數(shù)據(jù)傳輸結(jié)構(gòu):見(jiàn)P231圖9.7 通道方式的數(shù)據(jù)輸入處理過(guò)程接下頁(yè)通道控制方式的描述過(guò)程見(jiàn)P232通道控制方式的處理過(guò)程:當(dāng)進(jìn)程要求設(shè)備輸入數(shù)據(jù)時(shí),CPU執(zhí)行Start指令指明I/O操作、通道程序地址、設(shè)備號(hào)和對(duì)應(yīng)的通道。對(duì)應(yīng)通道接收到CPU發(fā)來(lái)的啟動(dòng)指令之后開(kāi)始工作,把存放在內(nèi)存中的通道指令程序讀出并執(zhí)行,并設(shè)置對(duì)應(yīng)設(shè)備的I/O控制其中的控制狀態(tài)寄存器,是設(shè)備開(kāi)始工作。設(shè)備準(zhǔn)備好數(shù)據(jù),由通道把數(shù)據(jù)送往通道指令指定的內(nèi)存區(qū)域。若數(shù)據(jù)傳送結(jié)束,通道通過(guò)中斷請(qǐng)求線(xiàn)發(fā)中斷信號(hào)請(qǐng)求CPU做中斷處理。 通道控制方式優(yōu)點(diǎn)優(yōu)點(diǎn):?jiǎn)?dòng)一次通道執(zhí)行一個(gè)通道程序可以傳送幾

12、批地址不連續(xù)的數(shù)據(jù)塊。數(shù)據(jù)傳輸過(guò)程中對(duì)CPU的干擾比DMA更少,CPU利用率更高,對(duì)通道的控制更簡(jiǎn)單。通道通過(guò)執(zhí)行通道程序控制輸入輸出,比較靈活。返回程序直接控制方式 p225程序直接控制方式(programmed direct I/O) :由CPU直接控制內(nèi)存和外圍設(shè)備之間的信息傳送。I/O操作由程序發(fā)起,并等待操作完成。數(shù)據(jù)的每次讀寫(xiě)通過(guò)CPU 控制,包括發(fā)送讀寫(xiě)命令、循環(huán)測(cè)試設(shè)備狀態(tài)、傳輸數(shù)據(jù)。接下頁(yè)(b)接收到Start命令做接收或發(fā)送數(shù)據(jù)準(zhǔn)備等待CPU來(lái)的下條命令標(biāo)志觸發(fā)器置“Done”執(zhí)行下條命令開(kāi)始數(shù)據(jù)傳送等待發(fā)Start命令準(zhǔn)備完畢?設(shè)備標(biāo)志觸發(fā)器為“Done”外圍設(shè)備(a)否

13、是CPU是否程序直接控制方式圖示接下頁(yè)向I/O部件發(fā)讀命令讀I/O部件狀態(tài)寄存器檢查狀態(tài)從I/O部件讀字節(jié)數(shù)據(jù)將該字節(jié)寫(xiě)入內(nèi)存No readyready該塊讀完yes下一指令no程序直接控制方式示例CPU控制控制輸入數(shù)據(jù)過(guò)程示例接下頁(yè)程序直接控制方式優(yōu)缺點(diǎn)返回優(yōu)點(diǎn):控制簡(jiǎn)單。缺點(diǎn):1)CPU和外圍設(shè)備只能串行工作。2)CPU在一段時(shí)間內(nèi)只能和一臺(tái)外圍設(shè)備交換數(shù)據(jù)信息,從而不能實(shí)現(xiàn)設(shè)備之間的并行工 作。 3)由于程序直接控制方式依靠測(cè)試設(shè)備標(biāo)志觸發(fā)器的狀態(tài)位來(lái)控制數(shù)據(jù)傳送,因此無(wú)法發(fā)現(xiàn)和處理由于設(shè)備或其他硬件產(chǎn)生的錯(cuò)誤。適合:專(zhuān)用控制系統(tǒng);外設(shè)較少、CPU速度較慢的系統(tǒng)。 工作方式:CPU向I/

14、O部件發(fā)出命令后,轉(zhuǎn)去做其他有用的工作。當(dāng)I/O部件準(zhǔn)備好一個(gè)數(shù)據(jù)(對(duì)輸入)或輸出完一個(gè)數(shù)據(jù)后(對(duì)輸出)后,利用中斷通知CPU,再由CPU完成設(shè)備與內(nèi)存的數(shù)據(jù)傳輸。 特點(diǎn): CPU不必反復(fù)測(cè)試寄存器狀態(tài),節(jié)約了時(shí)間。CPU可以與設(shè)備并行工作。但每個(gè)字節(jié)的數(shù)據(jù)傳輸都必須經(jīng)過(guò)CPU寄存器轉(zhuǎn)發(fā)。中斷控制方式接下頁(yè)中斷控制方式處理過(guò)程中斷處理(處理數(shù)據(jù)傳輸)接收到CPU到Start指令準(zhǔn)備數(shù)據(jù)并將其置入緩沖寄存器發(fā)中斷信號(hào)通知CPU調(diào)度程序調(diào)度其他程序向設(shè)備發(fā)Start命令,將中斷允許位置1緩沖寄存器滿(mǎn)嗎?收到中斷信號(hào)了嗎?設(shè)備否是CPU是否其他進(jìn)程執(zhí)行被中斷進(jìn)程執(zhí)行接下頁(yè)向I/O部件發(fā)讀命令讀I/O

15、部件狀態(tài)寄存器檢查狀態(tài)從I/O部件讀字節(jié)數(shù)據(jù)將該字節(jié)寫(xiě)入內(nèi)存OK出錯(cuò)處理該塊讀完OK下一指令未OK中斷中斷控制方式輸入數(shù)據(jù)CPU控制控制過(guò)程示例接下頁(yè)優(yōu)點(diǎn):CPU利用率較程序直接控制器有大大的 提高,且能支持多道程序和設(shè)備的并行操 作。缺點(diǎn):1)因?yàn)閿?shù)據(jù)緩沖區(qū)較小,在一次數(shù)據(jù)(若干字節(jié))傳送過(guò)程中,發(fā)生中斷次數(shù)較多。 2)外圍設(shè)備較多時(shí),CPU由于中斷次數(shù)增多而無(wú)法響應(yīng)中斷和出現(xiàn)數(shù)據(jù)丟失。適合:低速的字符設(shè)備中斷控制方式優(yōu)缺點(diǎn)返回8.4 緩沖技術(shù)緩沖的引入: 為了匹配CPU或用戶(hù)應(yīng)用進(jìn)程與外設(shè)的處理速度; 減少對(duì)CPU的中斷次數(shù),提高CPU和I/O設(shè)備之間以及各個(gè)I/O設(shè)備 之間的并行性; 解

16、決DMA或通道方式的瓶頸問(wèn)題。 實(shí)現(xiàn)方法: 專(zhuān)用硬件緩沖器 內(nèi)存專(zhuān)用緩沖器緩沖的種類(lèi)單緩沖(single buffer):設(shè)一個(gè)緩沖區(qū),CPU和外設(shè)輪流使用, 一方處理完之后接著等待對(duì)方處理。雙緩沖(double buffer):設(shè)兩個(gè)緩沖區(qū),CPU和外設(shè)都可以連 續(xù)處理而無(wú)需等待對(duì)方。要求CPU和外設(shè)的速度相近。多緩沖(multiply buffer):多個(gè)緩沖區(qū),CPU和外設(shè)的處理速 度可以相差較大。如用于輸入或輸出的環(huán)形緩沖區(qū)。(一般是 專(zhuān)用)緩沖池(bufferpool):由多個(gè)緩沖區(qū)構(gòu)成,既可用于輸入也 可用于輸出,多個(gè)進(jìn)程共享,可用于多種設(shè)備。(通用,利用 率高)I/O設(shè)備輸入用戶(hù)

17、進(jìn)程操作系統(tǒng)I/O設(shè)備輸入用戶(hù)進(jìn)程操作系統(tǒng)輸入I/O設(shè)備用戶(hù)進(jìn)程操作系統(tǒng)(a)(b)(c)(a)單緩沖 ;(b)雙緩沖; (c)循環(huán)緩沖緩沖池的管理緩沖區(qū)類(lèi)型(三種)空閑緩沖區(qū)(em):沒(méi)有數(shù)據(jù)的緩沖區(qū)。輸入緩沖區(qū)(in):裝滿(mǎn)了輸入數(shù)據(jù)的緩沖區(qū)輸出緩沖區(qū)(out):裝滿(mǎn)了準(zhǔn)備輸出到設(shè)備的緩沖區(qū)緩沖區(qū)工作方式(四種): 1、設(shè)備正在輸入數(shù)據(jù)到緩沖區(qū)。稱(chēng)為收容輸入。 2、CPU正在讀入輸入緩沖區(qū)的內(nèi)容到用戶(hù)區(qū)。稱(chēng)為提取輸入。 3、CPU正在輸出數(shù)據(jù)到緩沖區(qū)。稱(chēng)為收容輸出, 4、正在將輸出緩沖區(qū)內(nèi)容輸出到實(shí)際設(shè)備,稱(chēng)為提取輸出。上述操作訪(fǎng)問(wèn)各個(gè)緩沖區(qū)隊(duì)列時(shí),需要進(jìn)行相應(yīng)的互斥操作。 緩沖池的管理(

18、續(xù))緩沖區(qū)隊(duì)列:三種:圖如下所示:F(em)F(in)F(out)緩沖區(qū)1緩沖區(qū)1緩沖區(qū)nL(out)L(in)L(em)緩沖區(qū)2緩沖區(qū)2工作緩沖區(qū):四種:圖如下所示:hinsinsouthout收容輸入提取輸出I/O設(shè)備提取輸入收容輸出CPU緩沖池管理(續(xù))四個(gè)操作: take_buf (type) (被get_buf調(diào)用) add_buf (type) (被put_buf調(diào)用) get_buf (type,number) (申請(qǐng)緩沖區(qū)供進(jìn)程使用) put_buf (type,work_buf) (將緩沖區(qū)放入相應(yīng)隊(duì)列,供進(jìn)程使用) 參數(shù)說(shuō)明: type: em in out Work_bu

19、f: hin hout sin sout緩沖區(qū)狀態(tài)轉(zhuǎn)換圖houtoutsoutget_bufput_bufget_bufput_bufemhininsinemget_bufput_bufget_bufput_buf設(shè):互斥信號(hào)量S(type) 初值為 資源信號(hào)量RS(type)初值為(n為type隊(duì)列長(zhǎng)度) 如:em隊(duì)列:初值為; in隊(duì)列:初值為; out隊(duì)列:初值為get_buf ( )程序描述如下:get_buf(type,number):beginP(RS(type)先申請(qǐng)資源P(S(type)再申請(qǐng)操作權(quán)Pointer of buffer(number)=take_buf(type,

20、number)V(S(type)Endput_buf ( )程序描述如下:put_buf(type,number)beginP(S(type)add_buf(type,number)V(S(type)V(RS(type)endget_buf 和put_buf 過(guò)程描述8.5.1設(shè)備分配用數(shù)據(jù)結(jié)構(gòu)以下數(shù)據(jù)結(jié)構(gòu)用來(lái)記錄設(shè)備或部件的標(biāo)識(shí)狀態(tài)等信息:系統(tǒng)設(shè)備表SDT:整個(gè)系統(tǒng)一張表,每個(gè)物理設(shè)備一個(gè)項(xiàng)設(shè)備控制表DCT:每個(gè)設(shè)備一張P239控制器控制表COCT:每個(gè)控制器一張P240通道控制表CHCT:每個(gè)通道一張P240設(shè)備分配的意義P239設(shè)備分配數(shù)據(jù)結(jié)構(gòu)及其關(guān)系圖表目i表目1DCT指針獲得設(shè)備的進(jìn)

21、程設(shè)備標(biāo)識(shí)設(shè)備類(lèi)型控制器等待隊(duì)列尾控制器等待隊(duì)列首COCT指針設(shè)備忙閑標(biāo)記設(shè)備標(biāo)識(shí)設(shè)備類(lèi)型控制忙閑標(biāo)記控制器等待隊(duì)列尾控制器等待隊(duì)列首CHCT指針控制器標(biāo)識(shí)通道忙閑標(biāo)記通道等待隊(duì)列尾通道等待隊(duì)列首通道標(biāo)識(shí)SDFDCT設(shè)備控制表控制器控制表COCTCHCT通道控制表等待進(jìn)程隊(duì)列8.5.2 設(shè)備分配原則與設(shè)備分配有關(guān)的設(shè)備屬性:獨(dú)享設(shè)備:打印機(jī)等;共享設(shè)備:磁盤(pán)、網(wǎng)卡等;虛擬設(shè)備。設(shè)備分配方式:靜態(tài)分配:在進(jìn)程分創(chuàng)建時(shí)分配,在進(jìn)程退出時(shí)釋放;優(yōu)缺點(diǎn):不會(huì)出現(xiàn)死鎖;設(shè)備利用率不高;動(dòng)態(tài)分配:在進(jìn)程執(zhí)行過(guò)程中根據(jù)需要分配,使用結(jié)束后釋放;優(yōu)缺點(diǎn):需要考慮死鎖問(wèn)題有利于提高設(shè)備利用率設(shè)備分配的原則:合理

22、使用外設(shè)(公平和避免死鎖),提高設(shè)備利用率。設(shè)備分配策略設(shè)備分配策略:針對(duì)特定的設(shè)備采用特定的分配策略。先來(lái)先服務(wù)(FCFS):按I/O請(qǐng)求的先后順序,排成I/O請(qǐng)求命令隊(duì)列;按FCFS分配設(shè)備;基于優(yōu)先級(jí):依據(jù)進(jìn)程的優(yōu)先級(jí),指定I/O請(qǐng)求的優(yōu)先級(jí),排成不同優(yōu)先級(jí)隊(duì)列;按優(yōu)先級(jí)高低分配設(shè)備;設(shè)備分配算法設(shè)備分配流程圖見(jiàn)P241圖9.13分配過(guò)程:如下所示進(jìn)程申請(qǐng)I/O分配設(shè)備分配控制器分配通道進(jìn)程加入設(shè)備等待隊(duì)列進(jìn)程加入通道等待隊(duì)列進(jìn)程加入控制字等待隊(duì)列成功成功成功成功不成功不成功不成功啟動(dòng)I/O8.6 I/O進(jìn)程控制什么是I/O控制? 從用戶(hù)進(jìn)程的輸入輸出請(qǐng)求開(kāi)始,給用戶(hù)進(jìn)程分配設(shè)備和啟動(dòng)有

23、關(guān)設(shè)備進(jìn)行I/O操作,以及在I/O操作完成之后響應(yīng)中斷,進(jìn)行善后處理為止的整個(gè)系統(tǒng)過(guò)程為I/O控制。I/O控制的功能1)處理用戶(hù)請(qǐng)求、分配設(shè)備、分配緩沖、啟動(dòng)設(shè)備 (啟動(dòng)過(guò)程)2)處理I/O中斷 (中斷處理)中斷原因分析喚醒中斷處理程序設(shè)備分配程序I/O請(qǐng)求處理緩沖區(qū)管理外設(shè)中斷請(qǐng)求用戶(hù)進(jìn)程I/O請(qǐng)求I/O控制中斷響應(yīng)啟動(dòng)I/O執(zhí)行設(shè)備驅(qū)動(dòng)程序或通道程序I/O進(jìn)程控制過(guò)程轉(zhuǎn)換:將抽象的命令轉(zhuǎn)換為具體的一定次序的指令。合法性檢查:檢查I/O操作請(qǐng)求的合法性??捎眯詸z查:檢查控制器和設(shè)備的狀態(tài),判斷是否可用。參數(shù)設(shè)置:設(shè)置控制器和設(shè)備的參數(shù),包括構(gòu)造必要的通 道程序。啟動(dòng)I/O:向控制器或設(shè)備發(fā)起

24、I/O操作。中斷處理:提供必要的中斷處理例程,以便I/O完成時(shí)調(diào) 用。I/O控制過(guò)程:依據(jù)用戶(hù)的控制命令對(duì)外設(shè)進(jìn)行控制,并返回結(jié)果??刂七^(guò)程可分為以下6步:I/O控制的實(shí)現(xiàn)三種方式:p244作為請(qǐng)求I/O操作的進(jìn)程的一部分實(shí)現(xiàn):要求I/O的進(jìn)程具有實(shí)時(shí)性,即時(shí)處理設(shè)備中斷。作為當(dāng)前進(jìn)程的一部分:由請(qǐng)求I/O操作的進(jìn)程調(diào)用I/O操作控制部分,而讓當(dāng)前進(jìn)程負(fù)責(zé)調(diào)用中斷處理部分也是一種可行的I/O控制方案。I/O控制由專(zhuān)門(mén)的系統(tǒng)進(jìn)程I/O進(jìn)程完成I/O進(jìn)程分為三種方式:a:每類(lèi)(個(gè))設(shè)備設(shè)一專(zhuān)門(mén)的I/O進(jìn)程,且該進(jìn)程只能在系統(tǒng)態(tài)下執(zhí)行。b:整個(gè)系統(tǒng)設(shè)一I/O進(jìn)程,全面負(fù)責(zé)系統(tǒng)的數(shù)據(jù)傳送工作。I/O進(jìn)

25、程可分 為輸入進(jìn)程和輸出進(jìn)程。c:每類(lèi)(個(gè))設(shè)備設(shè)一個(gè)專(zhuān)門(mén)的I/O進(jìn)程,但該進(jìn)程既可在用戶(hù)態(tài)也可 在系統(tǒng)態(tài)下執(zhí)行。 8.7 設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序 驅(qū)動(dòng)物理設(shè)備和DMA控制器或I/O控制器等直接進(jìn)行I/O操作的子程序的集合。負(fù)責(zé)設(shè)置相應(yīng)設(shè)備有關(guān)寄存器的值,啟動(dòng)設(shè)備進(jìn)行I/O操作,指定操作的類(lèi)型和數(shù)據(jù)流向等。 設(shè)備驅(qū)動(dòng)程序的特征中轉(zhuǎn)數(shù)據(jù)和控制:不是數(shù)據(jù)和控制的源端和目的端(應(yīng)用程序和設(shè)備)與硬件特性密切相關(guān):通常由硬件廠(chǎng)商提供。向上屏蔽設(shè)備細(xì)節(jié):不同類(lèi)型設(shè)備通常其設(shè)備驅(qū)動(dòng)程序接口不同,同類(lèi)設(shè)備的接口相同。設(shè)備驅(qū)動(dòng)程序是設(shè)備與應(yīng)用程序間的接口:使應(yīng)用程序可以用統(tǒng)一的方式來(lái)使用設(shè)備。設(shè)備驅(qū)動(dòng)程序(

26、續(xù))系統(tǒng)用設(shè)備開(kāi)關(guān)表對(duì)設(shè)備驅(qū)動(dòng)程序進(jìn)行管理,設(shè)備開(kāi)關(guān)表DST(Device Switch Table)包含每類(lèi)設(shè)備各種子程序入口地址,如下表所示:設(shè)備類(lèi)OpenCloseReadWrite磁帶打印機(jī)磁盤(pán)DST也是I/O控制進(jìn)程使用的數(shù)據(jù)結(jié)構(gòu)。它根據(jù)該表調(diào)用設(shè)備驅(qū)動(dòng)程 序做啟動(dòng)相應(yīng)操作。補(bǔ)充假脫機(jī)技術(shù)引入:在多道批處理系統(tǒng)中,專(zhuān)門(mén)利用一道或幾道程序來(lái)完成對(duì)設(shè)備的I/O操作。無(wú)需使用外圍I/O處理機(jī)。利用假脫機(jī)技術(shù)(SPOOLing, Simultaneous Peripheral Operation On Line, 也稱(chēng)為虛擬設(shè)備技術(shù))可把獨(dú)享設(shè)備轉(zhuǎn)變成具有共享特征的虛擬設(shè)備,從而提高設(shè)備利用

27、率。假脫機(jī)的原理:SPOOLing程序和外設(shè)進(jìn)行數(shù)據(jù)交換,可以稱(chēng)為“實(shí)際I/O”。一方面,SPOOLing程序預(yù)先從外設(shè)輸入數(shù)據(jù)并加以緩沖,在以后需要的時(shí)候輸入到應(yīng)用程序;另一方面,SPOOLing程序接受應(yīng)用程序的輸出數(shù)據(jù)并加以緩沖,在以后適當(dāng)?shù)臅r(shí)候輸出到外設(shè)。在SPOOLing程序中,需要管理兩級(jí)緩沖區(qū):內(nèi)存緩沖區(qū)和快速外存上的緩沖池,后者可以暫存多批I/O操作的較多數(shù)據(jù)。應(yīng)用程序進(jìn)行I/O操作時(shí),只是和SPOOLing程序交換數(shù)據(jù),可以稱(chēng)為虛擬I/O。這時(shí)虛擬I/O實(shí)際上是從SPOOLing程序的緩沖池中讀出數(shù)據(jù)或把數(shù)據(jù)送入緩沖池,而不是跟實(shí)際的外設(shè)進(jìn)行I/O操作。優(yōu)點(diǎn):高速虛擬I/O操

28、作:應(yīng)用程序的虛擬I/O比實(shí)際I/O速度提高,縮短 應(yīng)用程序的執(zhí)行時(shí)間。另一方面,程序的虛擬I/O操作時(shí)間和實(shí)際 I/O操作時(shí)間分離開(kāi)來(lái)。實(shí)現(xiàn)對(duì)獨(dú)享設(shè)備的共享:由SPOOLing程序提供虛擬設(shè)備,可以對(duì) 獨(dú)享設(shè)備共享使用。舉例:打印機(jī)設(shè)備和可由打印機(jī)管理器管理的打印作業(yè)隊(duì)列。如:Windows NT中,應(yīng)用程序直接向針式打印機(jī)輸出需要15分鐘, 而向打印作業(yè)隊(duì)列輸出只需要1分鐘,此后用戶(hù)可以關(guān)閉應(yīng)用程序 而轉(zhuǎn)入其他工作,在以后適當(dāng)?shù)臅r(shí)候由打印機(jī)管理器完成15分鐘 的打印輸出而無(wú)需用戶(hù)干預(yù)。補(bǔ)充:磁盤(pán)設(shè)備管理CPU和內(nèi)存的訪(fǎng)問(wèn)速度比磁盤(pán)要快若干個(gè)數(shù)量級(jí),磁盤(pán)系統(tǒng)的性能對(duì)整個(gè)系統(tǒng)的性能有重要影響,

29、磁盤(pán)設(shè)備管理的目標(biāo)就是提高磁盤(pán)系統(tǒng)的性能。磁盤(pán)I/O訪(fǎng)問(wèn)時(shí)間的組成(回顧P208)柱面定位時(shí)間:磁頭移動(dòng)到指定柱面的機(jī)械運(yùn)動(dòng)時(shí)間;旋轉(zhuǎn)延遲時(shí)間:磁盤(pán)旋轉(zhuǎn)到指定扇區(qū)的機(jī)械運(yùn)動(dòng)時(shí)間;它與磁盤(pán)轉(zhuǎn)速相關(guān),如:軟盤(pán)轉(zhuǎn)速可為600rpm(每分鐘轉(zhuǎn)速),硬盤(pán)可為3600rpm。數(shù)據(jù)傳送時(shí)間:從指定扇區(qū)讀寫(xiě)數(shù)據(jù)的時(shí)間。返回 由于柱面定位時(shí)間在訪(fǎng)問(wèn)時(shí)間中占主要部分,合理組成磁盤(pán)數(shù)據(jù)的存儲(chǔ)位置可提高磁盤(pán)I/O性能。例子:讀一個(gè)128KB大小的文件:(1)文件由8個(gè)同一柱面上連續(xù)磁道(每個(gè)磁道32個(gè)扇區(qū))上的256個(gè)扇區(qū)構(gòu)成:20ms+(8.3ms+16.7ms)*8=220ms;其中,柱面定位時(shí)間為20ms,旋轉(zhuǎn)延遲時(shí)間為8.3ms,一個(gè)磁道上32個(gè)扇區(qū)數(shù)據(jù)傳送時(shí)間為16.7ms;(2)文件由256個(gè)隨機(jī)分布的扇區(qū)構(gòu)成:(20ms+8.3ms+0.5ms)*256=7373ms;其中,1扇區(qū)數(shù)據(jù)傳送時(shí)間為0.5ms;隨機(jī)分布時(shí)的訪(fǎng)問(wèn)時(shí)間為連續(xù)分布時(shí)的33.5倍。磁盤(pán)數(shù)據(jù)的存儲(chǔ)位置對(duì)磁盤(pán)I/O性能的影響磁盤(pán)I/O調(diào)度策略先進(jìn)先出算法優(yōu)先級(jí)算法最短查找時(shí)間優(yōu)先算法

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論