第九章設(shè)備管理_第1頁(yè)
第九章設(shè)備管理_第2頁(yè)
第九章設(shè)備管理_第3頁(yè)
第九章設(shè)備管理_第4頁(yè)
第九章設(shè)備管理_第5頁(yè)
已閱讀5頁(yè),還剩83頁(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)介

第9章設(shè)備管理設(shè)備管理是對(duì)計(jì)算機(jī)輸入輸出系統(tǒng)的管理,是操作系統(tǒng)中最具多樣性和復(fù)雜性的部分。本章主要討論設(shè)備管理的基本概念,包括中斷、緩沖、設(shè)備分配和控制等。9.1引言9.7設(shè)備標(biāo)識(shí)與設(shè)備驅(qū)動(dòng)程序9.2數(shù)據(jù)傳送控制方式9.3中斷技術(shù)9.4緩沖技術(shù)9.5設(shè)備分配9.6I/O進(jìn)程控制本章小結(jié)計(jì)算機(jī)系統(tǒng)中,除了CPU和內(nèi)存之外,其他的大部分硬設(shè)備稱為外部設(shè)備。它包括常用的輸入輸出設(shè)備、外存設(shè)備以及終端設(shè)備等。9.1.1設(shè)備的類別9.1.2設(shè)備管理的功能和任務(wù)9.1引言9.1.1設(shè)備的類別從系統(tǒng)管理的角度分類:按使用特性分類按從屬關(guān)系分類按信息組織方式分類圖9.1按使用特性對(duì)外部設(shè)備的分類9.1.1設(shè)備的類別按設(shè)備的從屬關(guān)系分類系統(tǒng)設(shè)備:在操作系統(tǒng)生成時(shí)就已配置好的各種標(biāo)準(zhǔn)設(shè)備。如,鍵盤、打印機(jī)以及文件存儲(chǔ)設(shè)備等。用戶設(shè)備:在系統(tǒng)生成時(shí)沒(méi)有配置,而由用戶自己安裝配置后由操作系統(tǒng)統(tǒng)一管理的設(shè)備。如,網(wǎng)絡(luò)系統(tǒng)中的各種網(wǎng)卡、圖像處理系統(tǒng)的圖像設(shè)備等。9.1.1設(shè)備的類別按信息組織方式分類字符設(shè)備:鍵盤、終端、打印機(jī)等以字符為單位組織和處理信息的設(shè)備被稱為字符設(shè)備;塊設(shè)備:磁盤、磁帶等以字符塊為單位組織和處理信息的設(shè)備被稱為塊設(shè)備。9.1.2設(shè)備管理的功能和任務(wù)設(shè)備管理的主要任務(wù):選擇和分配輸入輸出設(shè)備以進(jìn)行數(shù)據(jù)傳輸操作;控制輸入輸出設(shè)備和CPU(或內(nèi)存)之間交換數(shù)據(jù);為用戶提供友好的透明接口,把用戶和設(shè)備硬件特性分開,使得用戶在編制應(yīng)用程序時(shí)不必涉及具體設(shè)備,系統(tǒng)按用戶要求控制設(shè)備工作;提高設(shè)備和設(shè)備之間、CPU和設(shè)備之間,以及進(jìn)程和進(jìn)程之間的并行操作度,以使操作系統(tǒng)獲得最佳效率。9.1.2設(shè)備管理的功能和任務(wù)設(shè)備管理的功能:(1)提供和進(jìn)程管理系統(tǒng)的接口。(2)進(jìn)行設(shè)備分配。(3)實(shí)現(xiàn)設(shè)備和設(shè)備、設(shè)備和CPU等之間的并行操作。(4)進(jìn)行緩沖區(qū)管理。9.7設(shè)備標(biāo)識(shí)與設(shè)備驅(qū)動(dòng)程序邏輯設(shè)備與物理設(shè)備1.邏輯設(shè)備和物理設(shè)備的含義2.設(shè)備獨(dú)立性3.設(shè)備獨(dú)立性的優(yōu)點(diǎn)1.邏輯設(shè)備和物理設(shè)備的含義邏輯設(shè)備邏輯設(shè)備是對(duì)實(shí)際物理設(shè)備屬性的抽象,它并不限于某個(gè)具體設(shè)備。用戶在編程時(shí),不用關(guān)心系統(tǒng)具體配置了哪些設(shè)備,也不需要了解各種設(shè)備的物理特性,而只要按照慣例為所用到的設(shè)備起個(gè)邏輯名字,稱為邏輯設(shè)備名。物理設(shè)備物理設(shè)備是一個(gè)具體的設(shè)備。系統(tǒng)為了能識(shí)別全部外設(shè),給每臺(tái)外設(shè)分配一個(gè)唯一不變的名字,稱為物理設(shè)備名。通過(guò)引入邏輯設(shè)備和物理設(shè)備,可實(shí)現(xiàn)設(shè)備獨(dú)立性。2.設(shè)備獨(dú)立性設(shè)備獨(dú)立性也稱為設(shè)備無(wú)關(guān)性,指用戶編程時(shí)所使用的設(shè)備與實(shí)際使用的設(shè)備無(wú)關(guān),用戶編程時(shí)使用邏輯設(shè)備名。用戶程序以邏輯設(shè)備名來(lái)請(qǐng)求使用某類設(shè)備時(shí),系統(tǒng)將在該類設(shè)備中,根據(jù)設(shè)備的使用情況,將任一臺(tái)合適的物理設(shè)備分配給該程序。如果用戶程序是以物理設(shè)備名來(lái)請(qǐng)求指定某臺(tái)設(shè)備,假如該設(shè)備有故障或正在被其他進(jìn)程使用,則用戶程序只能一直等待。采用邏輯設(shè)備名,可以使用戶程序獨(dú)立于分配給它的某類設(shè)備的具體設(shè)備。2.設(shè)備獨(dú)立性使用邏輯設(shè)備名,還能使用戶程序獨(dú)立于所使用的某類設(shè)備。例如,在Linux系統(tǒng)環(huán)境下,系統(tǒng)提供標(biāo)準(zhǔn)輸入/輸出,在用戶程序中的輸入/輸出都使用這兩個(gè)標(biāo)準(zhǔn)的I/O,實(shí)際運(yùn)行時(shí),可根據(jù)具體情況而定。如果配備打印機(jī),可將輸出信息送到打印機(jī)打??;如果沒(méi)有配備打印機(jī),就把輸出重定向到某個(gè)指定文件,把要打印的信息送到該文件中。

3.設(shè)備獨(dú)立性的優(yōu)點(diǎn)(1)方便用戶編程。(2)便于程序移植。(3)提高了資源利用率。(4)能適應(yīng)多用戶多進(jìn)程的需要。設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序:是驅(qū)動(dòng)物理設(shè)備直接進(jìn)行各種操作的軟件,它可看作I/O系統(tǒng)和物理設(shè)備的接口,所有進(jìn)程對(duì)于設(shè)備的請(qǐng)求都要通過(guò)設(shè)備驅(qū)動(dòng)程序來(lái)完成。

1.設(shè)備控制器2.設(shè)備驅(qū)動(dòng)程序的引入3.設(shè)備驅(qū)動(dòng)程序的處理過(guò)程1.設(shè)備控制器外設(shè)機(jī)械部件電子部件獨(dú)立出來(lái)設(shè)備控制器設(shè)備只有在設(shè)備控制器的控制下才能運(yùn)行,且一個(gè)控制器可以控制幾臺(tái)同類設(shè)備。設(shè)備控制器CPU設(shè)備控制寄存器、數(shù)據(jù)寄存器、狀態(tài)寄存器、地址譯碼器等接收和識(shí)別CPU發(fā)來(lái)的命令

實(shí)現(xiàn)控制器與CPU之間、控制器和外設(shè)之間的數(shù)據(jù)交換

記錄設(shè)備的狀態(tài)(如設(shè)備就緒、設(shè)備忙、操作錯(cuò)誤等)供CPU了解用于識(shí)別每個(gè)設(shè)備的地址2.設(shè)備驅(qū)動(dòng)程序的引入將用戶命令中的邏輯設(shè)備名轉(zhuǎn)換為物理設(shè)備名,系統(tǒng)只是完成了第一步工作,至于要具體操縱這臺(tái)物理設(shè)備,就復(fù)雜多了。操作系統(tǒng)設(shè)計(jì)者把與物理設(shè)備直接有關(guān)的軟件部分獨(dú)立出來(lái),構(gòu)成設(shè)備驅(qū)動(dòng)程序系列,一般由設(shè)備商和軟硬件開發(fā)商提供的針對(duì)某一種具體設(shè)備的驅(qū)動(dòng)程序組成。系統(tǒng)和用戶可根據(jù)需要,靈活配置物理設(shè)備,選擇相應(yīng)的驅(qū)動(dòng)程序裝載。

3.設(shè)備驅(qū)動(dòng)程序的處理過(guò)程(1)將抽象要求轉(zhuǎn)換為具體要求(控制器中寄存器內(nèi)容)。(2)檢查I/O請(qǐng)求的合法性。(3)檢查設(shè)備狀態(tài)。讀狀態(tài)寄存器內(nèi)容,看設(shè)備忙/閑狀態(tài)。(4)傳送必要的參數(shù)。(5)啟動(dòng)I/O設(shè)備。向設(shè)備控制器中的命令寄存器傳送控制命令,將外設(shè)啟動(dòng),然后可由設(shè)備控制器來(lái)控制外設(shè)進(jìn)行基本I/O操作。不同類型的外設(shè),驅(qū)動(dòng)程序是不一樣的。9.2數(shù)據(jù)傳送控制方式選擇和衡量控制方式的原則:(1)數(shù)據(jù)傳送速度足夠高,能滿足用戶的需要但又不丟失數(shù)據(jù);(2)系統(tǒng)開銷小,所需的處理控制程序少;(3)能充分發(fā)揮硬件資源的能力,使得I/O設(shè)備盡量忙,而CPU等待時(shí)間少。9.2數(shù)據(jù)傳送控制方式4種外設(shè)和內(nèi)存間常用的數(shù)據(jù)傳送控制方式:9.2.1程序直接控制方式9.2.2中斷方式9.2.3DMA方式(直接存取方式)9.2.4通道控制方式(channelcontrol)9.2.1程序直接控制方式程序直接控制方式:由用戶進(jìn)程來(lái)直接控制內(nèi)存或CPU和外圍設(shè)備之間的信息傳送??刂普呤怯脩暨M(jìn)程。I/O控制器中的寄存器1.控制狀態(tài)寄存器:設(shè)有多個(gè)標(biāo)志位,如忙/閑標(biāo)志位、完成位2.數(shù)據(jù)緩沖寄存器程序直接控制方式——以鍵盤為例1、CPU向鍵盤的控制器發(fā)一條輸入命令,啟動(dòng)鍵盤進(jìn)行輸入操作,并將狀態(tài)寄存器的”忙/閑位”置1,表示忙。2、然后CPU運(yùn)行程序不斷測(cè)試狀態(tài)寄存器的完成位,看鍵盤是否完成了輸入。直到鍵盤已將數(shù)據(jù)輸入到了鍵盤控制器的數(shù)據(jù)寄存器中,狀態(tài)寄存器的完成位變?yōu)?時(shí),CPU才停止測(cè)試。3、CPU取走數(shù)據(jù)寄存器中的輸入數(shù)據(jù)。目前IDE接口硬盤仍在使用這種方式,稱為PIO(ProgrammingInput/Output)模式。程序直接控制方式的控制流程圖程序直接控制方式的缺點(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ò)誤。程序直接控制方式只適用于那些CPU執(zhí)行速度較慢,而且外圍設(shè)備較少的系統(tǒng)。9.2.2中斷方式CPU請(qǐng)求設(shè)備傳輸后不等待,轉(zhuǎn)去做其他更有用的事情,當(dāng)設(shè)備完成請(qǐng)求的時(shí)候向CPU發(fā)設(shè)備中斷。(系統(tǒng)中同一時(shí)刻可能有許多設(shè)備的請(qǐng)求在同時(shí)發(fā)生。)所謂中斷,就是指當(dāng)某個(gè)事件發(fā)生時(shí),向系統(tǒng)發(fā)出一個(gè)中斷信號(hào),系統(tǒng)于是中止現(xiàn)行程序的運(yùn)行,轉(zhuǎn)去執(zhí)行相應(yīng)的中斷處理程序,完畢后返回?cái)帱c(diǎn)繼續(xù)執(zhí)行。需要在CPU和每一個(gè)設(shè)備控制器之間增加一條中斷請(qǐng)求線,并在設(shè)備控制器的控制寄存器中增加一個(gè)中斷允許位。中斷方式的傳送結(jié)構(gòu)中斷方式——以鍵盤輸入為例(1)開中斷。CPU把啟動(dòng)位和中斷允許位為1的控制字寫入鍵盤控制狀態(tài)寄存器中,啟動(dòng)鍵盤。(當(dāng)中斷允許位為1時(shí),中斷程序可以被調(diào)用。)(2)進(jìn)程等待鍵盤輸入完成(進(jìn)入等待隊(duì)列),由進(jìn)程調(diào)度程序調(diào)度其他就緒進(jìn)程使用CPU。(3)鍵盤啟動(dòng)后,當(dāng)數(shù)據(jù)寄存器裝滿后,鍵盤控制器通過(guò)中斷請(qǐng)求線向CPU發(fā)出中斷信號(hào)。(4)CPU暫停正在進(jìn)行的工作,轉(zhuǎn)向執(zhí)行中斷處理程序。(取出數(shù)據(jù)寄存器中的輸入數(shù)據(jù)送到內(nèi)存特定單元,并將等待輸入完成的進(jìn)程喚醒。)(5)中斷處理程序完畢,CPU返回?cái)帱c(diǎn)繼續(xù)執(zhí)行。(6)以后某個(gè)時(shí)刻,進(jìn)程調(diào)度程序選中正處于就緒狀態(tài)的那個(gè)進(jìn)程,該進(jìn)程從特定內(nèi)存單元中取出所需的數(shù)據(jù)繼續(xù)工作。圖9.4中斷控制方式的處理過(guò)程中斷控制方式的處理過(guò)程中斷方式的優(yōu)點(diǎn):CPU不需等待數(shù)據(jù)傳輸完成,I/O設(shè)備與CPU并行工作,CPU的利用率因此提高。中斷方式的缺點(diǎn):在一次數(shù)據(jù)傳送過(guò)程中,發(fā)生中斷次數(shù)較多。如果數(shù)據(jù)量大,需要多次執(zhí)行中斷程序,CPU的效率仍然不高。如果外圍設(shè)備的速度也非常高,則可能造成數(shù)據(jù)緩沖寄存器的數(shù)據(jù)由于CPU來(lái)不及取走而丟失。9.2.3DMA方式(直接存取方式)DMA(DirectMemoryAccess)方式:在外部設(shè)備和主存之間建立了直接數(shù)據(jù)通路,即外設(shè)和主存之間可直接讀寫數(shù)據(jù),且數(shù)據(jù)傳送的基本單位是數(shù)據(jù)塊。整塊數(shù)據(jù)的傳輸在一個(gè)稱為DMA控制器的控制下完成。DMA數(shù)據(jù)傳輸期間不需CPU干預(yù),僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開始或結(jié)束時(shí),才需CPU處理。

在DMA方式中,I/O控制除了控制狀態(tài)寄存器和數(shù)據(jù)緩沖寄存器之外,DMA控制器中還包括傳送字節(jié)計(jì)數(shù)器、內(nèi)存地址寄存器等。DMA控制方式DMA方式的數(shù)據(jù)輸入處理過(guò)程如下:CPU把準(zhǔn)備存放輸入數(shù)據(jù)的內(nèi)存始址以及要傳送的字節(jié)數(shù)分別送入DMA控制器中的內(nèi)存地址寄存器和傳送字節(jié)計(jì)數(shù)器;另外,還把控制狀態(tài)寄存器中的中斷允許位和啟動(dòng)位置1;從而啟動(dòng)設(shè)備開始進(jìn)行數(shù)據(jù)輸入。發(fā)出數(shù)據(jù)要求的進(jìn)程進(jìn)入等待狀態(tài),進(jìn)程調(diào)度程序調(diào)度其他進(jìn)程占據(jù)CPU。當(dāng)輸入設(shè)備把一個(gè)數(shù)據(jù)送入DMA控制器的數(shù)據(jù)緩沖寄存器后,DMA控制器立即取代CPU,接管地址總線的控制權(quán),根據(jù)送入DMA控制器的內(nèi)容,將數(shù)據(jù)送入相應(yīng)的內(nèi)存單元(這稱為挪用(竊取)CPU工作周期),直到所要求的字節(jié)全部傳送完畢。DMA控制器在傳送字節(jié)數(shù)完成時(shí)通過(guò)中斷請(qǐng)求線發(fā)出中斷信號(hào),CPU在接收到中斷信號(hào)后轉(zhuǎn)中斷處理程序進(jìn)行善后處理。中斷處理結(jié)束時(shí),CPU返回被中斷進(jìn)程處執(zhí)行或被調(diào)度到新的進(jìn)程上下文環(huán)境中執(zhí)行。圖9.6DMA方式的數(shù)據(jù)傳送處理過(guò)程DMA方式與中斷方式的主要區(qū)別(優(yōu)點(diǎn)):中斷方式:在數(shù)據(jù)緩沖寄存器滿之后發(fā)中斷要求CPU進(jìn)行中斷處理;DMA方式:在所要求轉(zhuǎn)送的數(shù)據(jù)塊全部傳送結(jié)束時(shí)要求CPU進(jìn)行中斷處理。大大減少了CPU進(jìn)行中斷處理的次數(shù)。中斷方式:數(shù)據(jù)傳送在中斷處理時(shí)由CPU控制完成;DMA方式:在DMA控制器的控制下不經(jīng)過(guò)CPU控制完成。DMA方式的缺點(diǎn):DMA方式對(duì)外圍設(shè)備的管理和某些操作仍由CPU控制。大中型計(jì)算機(jī)中,系統(tǒng)所配置的外設(shè)種類越來(lái)越多,數(shù)量也越來(lái)越大,對(duì)外圍設(shè)備的管理的控制也就愈來(lái)愈復(fù)雜。9.2.4通道控制方式

(channelcontrol)

1.通道的概念2.通道的種類3.通道控制方式的數(shù)據(jù)傳輸處理過(guò)程4.通道方式與DMA方式的區(qū)別1.通道的概念通道是一個(gè)獨(dú)立于CPU的專管輸入/輸出控制的處理機(jī),它控制設(shè)備與內(nèi)存直接進(jìn)行數(shù)據(jù)交換。通道有自己的一套簡(jiǎn)單的指令系統(tǒng),稱為通道指令。每條通道指令規(guī)定了設(shè)備的一種操作,通道指令序列便是通道程序,通道執(zhí)行通道程序來(lái)完成規(guī)定動(dòng)作。通道的定義:通道是一個(gè)獨(dú)立于CPU的專管輸入輸出控制的處理機(jī),它控制設(shè)備與內(nèi)存直接進(jìn)行數(shù)據(jù)交換。它有自己的通道指令,這些通道指令受CPU啟動(dòng),并在操作結(jié)束時(shí)向CPU發(fā)中斷信號(hào)。1.通道的概念1.通道的概念通道靠執(zhí)行通道程序軟件完成數(shù)據(jù)傳輸,通道控制器的功能比DMA控制器更強(qiáng)大,它能夠承擔(dān)外設(shè)的大部分工作。

通道處理機(jī)寄存器部分控制部分?jǐn)?shù)據(jù)寄存器主存地址寄存器傳輸字節(jié)寄存器通道命令寄存器通道狀態(tài)寄存器分時(shí)控制地址分配數(shù)據(jù)傳送等2.通道的種類以字節(jié)為傳輸單位,可以分時(shí)地執(zhí)行多個(gè)通道程序。這是一種簡(jiǎn)單的共享通道,主要為多臺(tái)低速或中速的字符設(shè)備服務(wù)。如終端、打印機(jī)等。

它用開關(guān)來(lái)控制對(duì)高速外設(shè)的選擇,如磁盤機(jī)等。在一段時(shí)間內(nèi)單獨(dú)為一臺(tái)外圍設(shè)備服務(wù),直到該設(shè)備的數(shù)據(jù)傳輸工作全部結(jié)束。然后通道再選擇另一臺(tái)外設(shè)為其提供服務(wù)。它分時(shí)地為多臺(tái)外圍設(shè)備服務(wù),每個(gè)時(shí)間片傳送一個(gè)數(shù)據(jù)塊??梢酝瑫r(shí)連接多臺(tái)高速存儲(chǔ)設(shè)備,如磁帶機(jī)等。因此,它能夠充分發(fā)揮高速通道的數(shù)據(jù)傳輸能力。3.通道控制方式的數(shù)據(jù)輸入處理過(guò)程

(1)當(dāng)進(jìn)程要求設(shè)備輸入數(shù)據(jù)時(shí),CPU發(fā)Start指令指明I/O操作、設(shè)備號(hào)和對(duì)應(yīng)通道。(2)對(duì)應(yīng)通道接收到CPU發(fā)來(lái)的啟動(dòng)指令Start之后,把存放在內(nèi)存中的通道指令程序讀出,設(shè)置對(duì)應(yīng)設(shè)備的I/O控制器中的控制狀態(tài)寄存器。(3)設(shè)備根據(jù)通道指令的要求,把數(shù)據(jù)送往內(nèi)存中指定區(qū)域。(4)若數(shù)據(jù)傳送結(jié)束,I/O控制器通過(guò)中斷請(qǐng)求線發(fā)中斷信號(hào)請(qǐng)求CPU做中斷處理。(5)中斷處理結(jié)束后CPU返回被中斷進(jìn)程處繼續(xù)執(zhí)行。在(1)中要求數(shù)據(jù)的進(jìn)程只有在調(diào)度程序選中它之后,才能對(duì)所得到的數(shù)據(jù)進(jìn)行加工處理。

發(fā)出Start指令,指明I/O操作、設(shè)備號(hào)和對(duì)應(yīng)的通道啟動(dòng)設(shè)備準(zhǔn)備數(shù)據(jù)設(shè)備根據(jù)通道指令要求,把數(shù)據(jù)放入內(nèi)存制定區(qū)域通道接受啟動(dòng)指令Start傳送結(jié)束嗎通道方式的數(shù)據(jù)傳送處理過(guò)程4.通道控制方式與DMA方式相類似,也是一種以內(nèi)存為中心,實(shí)現(xiàn)設(shè)備和內(nèi)存直接交換數(shù)據(jù)的控制方式。與DMA方式不同的是:DMA方式:數(shù)據(jù)的傳送方向、存放數(shù)據(jù)的內(nèi)存始址以及傳送的數(shù)據(jù)塊長(zhǎng)度等都由CPU控制;通道方式:這些都由專管輸入輸出的硬件——通道來(lái)進(jìn)行控制。DMA方式:每臺(tái)設(shè)備至少一個(gè)DMA控制器;通道控制方式:可以做到一個(gè)通道控制多臺(tái)設(shè)備與內(nèi)存進(jìn)行數(shù)據(jù)交換,通道方式進(jìn)一步減輕了CPU的工作負(fù)擔(dān)和增加了計(jì)算機(jī)系統(tǒng)的并行工作程度。9.3中斷技術(shù)在人機(jī)聯(lián)系、故障處理、實(shí)時(shí)處理、程序調(diào)試與監(jiān)測(cè)、任務(wù)分配等方面都需用到中斷技術(shù);在設(shè)備管理中,沒(méi)有中斷技術(shù)就不可能實(shí)現(xiàn)設(shè)備與主機(jī)、設(shè)備與設(shè)備、設(shè)備與用戶、設(shè)備與程序的并行。9.3.1中斷的基本概念9.3.2中斷的分類與優(yōu)先級(jí)9.3.3軟中斷9.3.4中斷處理過(guò)程9.3.1中斷的基本概念中斷(Interrupt):是指計(jì)算機(jī)在執(zhí)行期間,系統(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ò)程。9.3.1中斷的基本概念引起中斷發(fā)生的事件被稱為中斷源。中斷源向CPU發(fā)出的請(qǐng)求中斷處理信號(hào)稱為中斷請(qǐng)求;CPU收到中斷請(qǐng)求后轉(zhuǎn)相應(yīng)的事件處理程序稱為中斷響應(yīng)。相應(yīng)的事件處理程序稱為中斷服務(wù)程序。執(zhí)行中斷服務(wù)程序的過(guò)程稱為中斷處理。禁止中斷:在有些情況下,盡管產(chǎn)生了中斷源和發(fā)出了中斷請(qǐng)求,但CPU內(nèi)部的處理機(jī)狀態(tài)字PSW的中斷允許位已被清除,從而不允許CPU響應(yīng)中斷。CPU禁止中斷后只有等到PSW的中斷允許位被重新設(shè)置后才能接收中斷。禁止中斷也稱為關(guān)中斷,即把CPU內(nèi)部的處理機(jī)狀態(tài)字PSW的中斷允許位已被清除,從而不允許CPU響應(yīng)中斷。9.3.1中斷的基本概念9.3.1中斷的基本概念開中斷:設(shè)置CPU內(nèi)部的處理機(jī)狀態(tài)字把PSW的中斷允許位從而允許把CPU內(nèi)部的處理機(jī)狀態(tài)字的稱為開中斷。中斷請(qǐng)求、關(guān)中斷、開中斷等都由硬件實(shí)現(xiàn)。開中斷和關(guān)中斷是為了保證某些程序執(zhí)行的原子性。中斷屏蔽:中斷屏蔽是指在中斷請(qǐng)求產(chǎn)生之后,系統(tǒng)用軟件方式有選擇地封鎖部分中斷而允許其余部分的中斷仍能得到響應(yīng)。中斷屏蔽是通過(guò)每一類中斷源設(shè)置一個(gè)中斷屏蔽觸發(fā)器來(lái)屏蔽它們的中斷請(qǐng)求而實(shí)現(xiàn)的。不過(guò),有些中斷請(qǐng)求是不能屏蔽甚至不能禁止的,也就是說(shuō),這些中斷具有最高優(yōu)先級(jí)。不管CPU是否是關(guān)中斷的,只要這些中斷請(qǐng)求一旦提出,CPU必須立即響應(yīng)。9.3.1中斷的基本概念9.3.2中斷的分類與優(yōu)先級(jí)1.中斷的分類2.中斷與陷阱的區(qū)別3.中斷優(yōu)先級(jí)1.中斷的分類中斷分類外中斷硬中斷內(nèi)中段軟中斷來(lái)自于處理機(jī)及內(nèi)存外部的中斷,都稱為外中斷。外中斷在狹義上一般被稱為中斷。例如,輸入/輸出中斷,操作員對(duì)機(jī)器進(jìn)行干預(yù)的中斷,各種定時(shí)器引起的時(shí)鐘中斷,調(diào)試程序中設(shè)置斷點(diǎn)引起的調(diào)試中斷等。在處理機(jī)和內(nèi)存內(nèi)部產(chǎn)生的中斷稱為內(nèi)中段,也稱為陷入或異常。例如,非法指令、數(shù)據(jù)格式錯(cuò)誤、主存保護(hù)錯(cuò)誤、地址越界錯(cuò)誤、各種運(yùn)算溢出錯(cuò)誤、除數(shù)為零錯(cuò)誤、數(shù)據(jù)校驗(yàn)錯(cuò)、進(jìn)程用戶態(tài)向系統(tǒng)態(tài)轉(zhuǎn)換等。由程序中執(zhí)行了中斷指令引起的中斷,稱為軟中斷。軟中斷源于UNIX系統(tǒng),該中斷又叫信號(hào)處理機(jī)構(gòu),它是UNIX系統(tǒng)提供的一種進(jìn)程通信機(jī)構(gòu),利用它,進(jìn)程之間可相互通信。通過(guò)硬件產(chǎn)生相應(yīng)的中斷請(qǐng)求陷阱由處理機(jī)正在執(zhí)行的現(xiàn)行指令引起;中斷由與現(xiàn)行指令無(wú)關(guān)的中斷源引起的;陷阱處理程序提供的服務(wù)為當(dāng)前進(jìn)程所用;中斷處理程序提供的服務(wù)則不是為了當(dāng)前進(jìn)程的;CPU在執(zhí)行完一條指令之后,下一條指令開始之前響應(yīng)中斷,而在一條指令執(zhí)行中也可以響應(yīng)陷阱。2.中斷與陷阱的區(qū)別3.中斷優(yōu)先級(jí)中斷優(yōu)先級(jí)的確定主要由下列因素來(lái)決定:(1)中斷源的緊迫性。(2)設(shè)備的工作速度。(3)數(shù)據(jù)恢復(fù)的難易程度。3.中斷優(yōu)先級(jí)為了按中斷源的輕重緩急處理響應(yīng)中斷,操作系統(tǒng)對(duì)不同的中斷賦予不同的優(yōu)先級(jí)。為了禁止中斷或屏蔽中斷,CPU的處理機(jī)狀態(tài)字PSW中設(shè)置有相應(yīng)的優(yōu)先級(jí)。當(dāng)系統(tǒng)中同時(shí)存在若干個(gè)中斷請(qǐng)求時(shí),CPU按它們的優(yōu)先級(jí)從高到低進(jìn)行處理。當(dāng)CPU響應(yīng)一個(gè)中斷源的請(qǐng)求,在進(jìn)行中斷處理時(shí),如果又有新的中斷源發(fā)出中斷請(qǐng)求,CPU是否響應(yīng)該中斷請(qǐng)求,則取決于中斷源的優(yōu)先級(jí)。9.3.4中斷處理過(guò)程一旦CPU響應(yīng)中斷,轉(zhuǎn)入中斷處理程序,系統(tǒng)就開始進(jìn)行中斷處理。圖9.8中斷處理過(guò)程圖9.8中斷處理過(guò)程條9.4緩沖技術(shù)

9.4.1緩沖的引入9.4.2緩沖的種類9.4.3緩沖池的管理9.4.1緩沖的引入外圍設(shè)備和CPU的處理速度不匹配的問(wèn)題是客觀存在的。這限制了和處理機(jī)連接的外設(shè)臺(tái)數(shù),且在中斷方式時(shí)造成數(shù)據(jù)丟失。也極大地制約了計(jì)算機(jī)系統(tǒng)性能的進(jìn)一步提高和限制了系統(tǒng)的應(yīng)用范圍。有效降低中斷次數(shù)。使用DMA方式或通道方式控制數(shù)據(jù)傳送,但對(duì)這兩種方式如果不畫分專用的內(nèi)存區(qū)或?qū)S镁彌_器來(lái)存放數(shù)據(jù)的話,也會(huì)因?yàn)橐髷?shù)據(jù)的進(jìn)程所擁有的內(nèi)存區(qū)不夠或存放數(shù)據(jù)的內(nèi)存始址計(jì)算困難等原因而造成某個(gè)進(jìn)程長(zhǎng)期占有通道或DMA控制器及設(shè)備,從而產(chǎn)生所謂瓶頸問(wèn)題。9.4.1緩沖的引入為了匹配外設(shè)與CPU之間的處理速度,為了減少中斷次數(shù)和CPU的中斷處理時(shí)間,同時(shí)也是為了解決DMA或通道方式時(shí)的瓶頸問(wèn)題,在設(shè)備管理中引入了用來(lái)暫存數(shù)據(jù)的緩沖技術(shù)。9.4.1緩沖的引入硬件緩沖采用專用硬件緩沖器,一般由外設(shè)自帶的專用寄存器構(gòu)成。硬件緩沖器的大小是衡量設(shè)備性能的一個(gè)指標(biāo)。但硬件緩沖器價(jià)格較昂貴。在內(nèi)存中專門開辟若干單元作為緩沖區(qū)。系統(tǒng)通常采用這種方法。緩沖的實(shí)現(xiàn)方法(1)硬件緩沖(2)軟件緩沖緩沖:是使用專用硬件緩沖器或在內(nèi)存中劃出一個(gè)專用區(qū)域來(lái)暫時(shí)存放輸入輸出數(shù)據(jù)的器件。9.4.2緩沖的種類根據(jù)緩沖區(qū)設(shè)置個(gè)數(shù)的多少,可以分為:?jiǎn)尉彌_雙緩沖多緩沖緩沖池(1)單緩沖假如發(fā)送者和接收者速度不匹配,將會(huì)浪費(fèi)大量的等待時(shí)間,設(shè)備和設(shè)備之間不能通過(guò)單緩沖達(dá)到并行操作。因此,通常不采用單緩沖。

(2)雙緩沖當(dāng)發(fā)送者和接收者的速度相差很大時(shí),雙緩沖還是不能解決兩者并行工作問(wèn)題。雙緩沖在實(shí)際系統(tǒng)中采用得很少。(3)多緩沖多緩沖是把多個(gè)緩沖區(qū)連接起來(lái)組成兩部分,一部分專門用于輸入,另一部分專門用于輸出的緩沖結(jié)構(gòu)。(4)緩沖池緩沖池由多個(gè)大小相同的緩沖區(qū)組成,緩沖池中的緩沖區(qū)被系統(tǒng)中所有進(jìn)程共享使用,由管理程序統(tǒng)一對(duì)緩沖池進(jìn)行管理。為便于管理,系統(tǒng)將相同類型的緩沖區(qū)鏈成一個(gè)隊(duì)列,緩沖池中共有三種隊(duì)列。這三種隊(duì)列各有指向其首緩沖區(qū)的隊(duì)首指針和指向尾緩沖區(qū)的隊(duì)尾指針。對(duì)緩沖區(qū)進(jìn)行讀、寫操作時(shí)。從隊(duì)列中取下的緩沖區(qū)稱為工作緩沖區(qū),緩沖池中有四種工作緩沖區(qū):①②③④輸出過(guò)程?(4)緩沖池緩沖池的結(jié)構(gòu)緩沖池由多個(gè)緩沖區(qū)組成。而一個(gè)緩沖區(qū)由兩部分組成:一部分是用來(lái)標(biāo)識(shí)該緩沖器和用于管理的緩沖首部,另一部分是用于存放數(shù)據(jù)的緩沖體。對(duì)緩沖池的管理是通過(guò)對(duì)每一個(gè)緩沖器的緩沖首部進(jìn)行操作實(shí)現(xiàn)的。圖9.9緩沖首部9.5設(shè)備分配9.5.1設(shè)備分配用數(shù)據(jù)結(jié)構(gòu)9.5.2設(shè)備分配的原則9.5.3設(shè)備分配流程9.5.1設(shè)備分配用數(shù)據(jù)結(jié)構(gòu)設(shè)備控制表DCT(DeviceControlTable)系統(tǒng)設(shè)備表SDT(SystemDeviceTable)控制器表COCT(COntrolerControlTable)通道控制表CHCT(CHannelControlTable)反映設(shè)備的特性、設(shè)備和I/O控制器的連接情況。每個(gè)設(shè)備一張,且在系統(tǒng)生成時(shí)或在該設(shè)備和系統(tǒng)連接時(shí)創(chuàng)建,但表中的內(nèi)容則根據(jù)系統(tǒng)執(zhí)行情況而被動(dòng)態(tài)地修改。整個(gè)系統(tǒng)一張,它記錄已被連接到系統(tǒng)中的所有物理設(shè)備的情況,并為每個(gè)物理設(shè)備設(shè)一表項(xiàng)。SDT的主要意義在于反映系統(tǒng)中設(shè)備資源的狀態(tài),即系統(tǒng)中有多少設(shè)備,有多少是空閑的,而又有多少已分配給了哪些進(jìn)程。COCT也是每個(gè)控制器一張,它反映I/O控制器的使用狀態(tài)以及和通道的連接情況等(在DMA方式時(shí),該項(xiàng)是沒(méi)有的)。該表只在通道控制方式的系統(tǒng)中存在。每個(gè)通道一張。9.5.2設(shè)備分配的原則1.設(shè)備分配原則根據(jù)設(shè)備特性、用戶要求和系統(tǒng)配置情況決定的。設(shè)備分配的總原則:既要充分發(fā)揮設(shè)備的使用效率,盡可能的讓設(shè)備忙,但又要避免由于不合理的分配方法造成進(jìn)程死鎖;還要做到:把用戶程序和具體物理設(shè)備隔離開來(lái),即用戶程序面對(duì)的是邏輯設(shè)備,而分配程序?qū)⒃谙到y(tǒng)把邏輯設(shè)備轉(zhuǎn)換成物理設(shè)備之后,再根據(jù)要求的物理設(shè)備號(hào)進(jìn)行分配。設(shè)備分配方式:靜態(tài)分配:在用戶作業(yè)開始執(zhí)行之前,由系統(tǒng)一次分配該作業(yè)所要求的全部設(shè)備、控制器和通道。靜態(tài)分配方式不會(huì)出現(xiàn)死鎖,但設(shè)備的使用效率低。不符合設(shè)備分配的總原則。動(dòng)態(tài)分配:在進(jìn)程執(zhí)行過(guò)程中根據(jù)執(zhí)行需要進(jìn)行。當(dāng)進(jìn)程需要設(shè)備時(shí),通過(guò)系統(tǒng)調(diào)用命令向系統(tǒng)提出設(shè)備請(qǐng)求,由系統(tǒng)按照事先規(guī)定的策略給進(jìn)程分配所需要的設(shè)備、I/O控制器和通道,一旦用完之后,便立即釋放。有利于提高設(shè)備的利用率,分配算法使用不當(dāng)有可能造成進(jìn)程死鎖。2.設(shè)備分配策略(1)先來(lái)先服務(wù)(2)優(yōu)先級(jí)高者先服務(wù)當(dāng)有多個(gè)進(jìn)程對(duì)同一臺(tái)設(shè)備提出分配請(qǐng)求時(shí),根據(jù)進(jìn)程對(duì)某設(shè)備提出請(qǐng)求的時(shí)間順序,將這些進(jìn)程控制塊排成一個(gè)設(shè)備請(qǐng)求隊(duì)列,處于隊(duì)首的進(jìn)程最先獲得使用權(quán)。請(qǐng)求設(shè)備的進(jìn)程按優(yōu)先級(jí)排入設(shè)備請(qǐng)求隊(duì)列,在優(yōu)先級(jí)相同的情況下,再按時(shí)間順序排列,設(shè)備總是分配給隊(duì)首具有最高優(yōu)先級(jí)的進(jìn)程使用。動(dòng)態(tài)設(shè)備分配的分配策略9.5.3設(shè)備分配流程9.6I/O進(jìn)程控制9.6.1I/O控制的引入9.6.2I/O控制的功能9.6.3I/O控制的實(shí)現(xiàn)9.6.1I/O控制的引入I/O控制:從用戶進(jìn)程的輸入輸出請(qǐng)求開始,給用戶進(jìn)程分配設(shè)備和啟動(dòng)有關(guān)設(shè)備進(jìn)行I/O操作,以及在I/O操作完成之后響應(yīng)中斷,進(jìn)行善后處理為止的整個(gè)系統(tǒng)控制過(guò)程稱為I/O控制。9.6.2I/O控制的功能9.6.3I/O控制的實(shí)現(xiàn)I/O控制過(guò)程的三種實(shí)現(xiàn)方式:(1)作為請(qǐng)求I/O操作的進(jìn)程的一部分實(shí)現(xiàn)。這種情況下,請(qǐng)求I/O操作的進(jìn)程應(yīng)具有良好的實(shí)時(shí)性,且系統(tǒng)應(yīng)能根據(jù)在中斷信號(hào)的內(nèi)容準(zhǔn)確地調(diào)度到請(qǐng)求所對(duì)應(yīng)I/O操作的進(jìn)程占據(jù)處理機(jī),因?yàn)樵诖蠖鄶?shù)情況下,當(dāng)一個(gè)進(jìn)程發(fā)出I/O請(qǐng)求命令之后,都被阻塞睡眠。I/O控制過(guò)程的三種實(shí)現(xiàn)方式:(2)作為當(dāng)前進(jìn)程的一部分實(shí)現(xiàn)。作為當(dāng)前進(jìn)程的一部分實(shí)現(xiàn)時(shí),不要求系統(tǒng)具有高的實(shí)時(shí)性。但由于當(dāng)前進(jìn)程與完成的I/O操作無(wú)關(guān),所以當(dāng)前進(jìn)程不能接受I/O請(qǐng)求命令的啟動(dòng)I/O操作。不過(guò),當(dāng)前進(jìn)程可以在接收到中斷信號(hào)后,將中斷信號(hào)轉(zhuǎn)交給I/O控制模塊處理,因此,如果讓請(qǐng)求I/O操作的進(jìn)程調(diào)用I/O操作控制部分(I/O請(qǐng)求處理、設(shè)備分配、緩沖區(qū)分配等),而讓當(dāng)前進(jìn)程負(fù)責(zé)調(diào)用中斷處理部分也是一種可行的I/O控制方案。9.6.3I/O控制的實(shí)現(xiàn)I/O控制過(guò)程的三種實(shí)現(xiàn)方式:(3)I/O控制由專門的系統(tǒng)進(jìn)程——I/O進(jìn)程完成。在用戶進(jìn)程發(fā)出I/O請(qǐng)求命令之后,系統(tǒng)調(diào)度I/O進(jìn)程執(zhí)行,控制I/O操作。同樣,在外設(shè)發(fā)出中斷請(qǐng)求之后,I/O進(jìn)程也被調(diào)度執(zhí)行以響應(yīng)中斷。I/O請(qǐng)求處理模塊、設(shè)備分配模塊以及緩沖區(qū)管理模塊和中斷原因分析、中斷處理模塊和后述的設(shè)備驅(qū)動(dòng)程序模塊等都是I/O進(jìn)程的一部分。9.6.3I/O控制的實(shí)現(xiàn)I/O進(jìn)程的三種實(shí)現(xiàn)方式:a.每類(個(gè))設(shè)備設(shè)一專門的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)程分為輸入進(jìn)程和輸出進(jìn)程。c.每類(個(gè))設(shè)備設(shè)一個(gè)專門的I/O進(jìn)程,但該進(jìn)程既可在用戶態(tài)也可在系統(tǒng)態(tài)下執(zhí)行。9.6.3I/O控制的實(shí)現(xiàn)本章小結(jié)設(shè)備管理的主要任務(wù)是控制

溫馨提示

  • 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)論