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

付費下載

下載本文檔

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

文檔簡介

第4章設(shè)備管理4.1設(shè)備管理概述4.2輸入輸出系統(tǒng)4.3設(shè)備分配與回收4.4設(shè)備處理4.5設(shè)備管理采用的技術(shù)4.1設(shè)備管理概述設(shè)備是指計算機系統(tǒng)中的外部設(shè)備,它包括外存、輸入設(shè)備和輸出設(shè)備(I/O設(shè)備)。設(shè)備管理是操作系統(tǒng)的主要功能之一,它是在多道程序設(shè)計環(huán)境下,研究如何讓多個用戶作業(yè)同時使用輸入輸出設(shè)備,充分發(fā)揮設(shè)備作用的問題。4.1.1設(shè)備管理的主要任務(wù)設(shè)備管理的主要任務(wù)是完成用戶提出的輸入輸出請求,為用戶分配輸入輸出設(shè)備,提高CPU與輸入輸出設(shè)備的利用率,提高輸入輸出設(shè)備的速度,方便用戶使用輸入輸出設(shè)備。4.1.2設(shè)備管理的主要功能緩沖管理管理好各種類型的緩沖區(qū),協(xié)調(diào)各類設(shè)備的工作速度,提高系統(tǒng)的使用效率。設(shè)備分配與回收根據(jù)用戶提出的輸入輸出請求,為其分配所需要的設(shè)備,用戶使用完后,回收分配的設(shè)備。4.1.2設(shè)備管理的主要功能3.虛擬設(shè)備把每次只允許一個進程使用的物理設(shè)備,改造為能同時供多個進程共享的設(shè)備。4.設(shè)備處理實現(xiàn)CPU和設(shè)備控制器之間的通信。4.1.3設(shè)備的分類

1.按從屬關(guān)系分系統(tǒng)設(shè)備、用戶設(shè)備2.按操作特性分存儲設(shè)備、輸入輸出設(shè)備3.按設(shè)備共享屬性分獨占設(shè)備、共享設(shè)備、虛擬設(shè)備4.按信息交換單位分字符設(shè)備、塊設(shè)備4.2輸入輸出系統(tǒng)4.2.1輸入輸出系統(tǒng)的結(jié)構(gòu)對于不同規(guī)模的計算機系統(tǒng),其輸入輸出系統(tǒng)的結(jié)構(gòu)也有差異。通常把輸入輸出系統(tǒng)的結(jié)構(gòu)分成兩大類:微機輸入輸出系統(tǒng)和主機輸入輸出系統(tǒng)。1.微機輸入輸出系統(tǒng)CPU存儲器磁盤控制器打印機控制器其他控制器磁盤驅(qū)動器打印機系統(tǒng)總線從上圖中可以看出,CPU和主存是直接連接到總線上的。輸入輸出設(shè)備是通過設(shè)備控制器連接到總線上。CPU并不直接與輸入輸出設(shè)備進行通信,而是與設(shè)備控制器進行通信,并通過它去控制相應(yīng)的設(shè)備。因此,設(shè)備控制器是處理器和設(shè)備之間的接口。應(yīng)根據(jù)設(shè)備的類型,給設(shè)備配置與之相應(yīng)的控制器,如磁盤控制器、打印機控制器等。2.主機輸入輸出系統(tǒng)當主機所配置的輸入輸出設(shè)備較多時,特別是配有較多的高速外設(shè)時,采用總線型輸入輸出系統(tǒng)結(jié)構(gòu)會加重CPU與總線的負擔。因此,在這樣的輸入輸出系統(tǒng)中不宜采用單總線結(jié)構(gòu),而是增加一級輸入輸出通道。

主機I/O通道1I/O通道2控制器1控制器2設(shè)備1控制器3設(shè)備2設(shè)備3設(shè)備4設(shè)備5

其中,輸入輸出系統(tǒng)共分為4級:最低級為輸入輸出設(shè)備,次低級為設(shè)備控制器,次高級為輸入輸出通道,最高級為主機。一個通道可以控制一個設(shè)備控制器或多個設(shè)備控制器,而一個設(shè)備控制器也可以控制一個設(shè)備或多個設(shè)備。

引入通道的目的是建立獨立的I/O操作,使得不僅數(shù)據(jù)傳輸獨立于CPU,數(shù)據(jù)的傳輸控制也盡量獨立于CPU。引入通道后,CPU只需向通道發(fā)送一條I/O指令,其他工作都由通道完成,通道工作結(jié)束后才向CPU發(fā)一個中斷信號。4.2.2設(shè)備控制器1.設(shè)備控制器的概念設(shè)備控制器是CPU與外圍設(shè)備之間的接口,是一個可編址設(shè)備,每一個地址對應(yīng)一個設(shè)備。設(shè)備控制器一般分成兩大類:用于控制字符設(shè)備的控制器和用于控制塊設(shè)備的控制器。在微型機和小型機中,設(shè)備控制器一般都是做成電路板的形式,插入主板的總線插槽(也叫擴展槽)內(nèi)。所以,它們俗稱為“卡”,例如:顯示卡、磁盤控制卡、網(wǎng)卡、聲卡以及其他各種外設(shè)的適配卡。有些控制器可以處理兩個、四個或八個同類設(shè)備。2.設(shè)備控制器的功能(1)接收和識別命令。接收和識別由CPU發(fā)送來的各種命令,并對這些命令進行譯碼。(2)交換數(shù)據(jù)。實現(xiàn)CPU與控制器、控制器與設(shè)備之間的數(shù)據(jù)交換。(3)了解和報告設(shè)備狀態(tài)。在控制器中應(yīng)設(shè)立一個狀態(tài)寄存器用于記錄設(shè)備的各種狀態(tài),以供CPU使用。(4)識別地址。系統(tǒng)為每個設(shè)備配置一個地址,設(shè)備控制器要能識別這些地址。3.設(shè)備控制器的組成

由于設(shè)備控制器處于CPU與設(shè)備之間,它既要與CPU通信,又要與設(shè)備通信,還應(yīng)具有按照CPU發(fā)來的命令去控制設(shè)備工作的功能。因此,現(xiàn)有的大多數(shù)控制器都是由以下三部分組成的。(1)CPU與設(shè)備控制器的接口(2)設(shè)備控制器與設(shè)備的接口(3)輸入輸出邏輯4.2.3輸入輸出通道1.輸入輸出通道的概念

輸入輸出通道是獨立于CPU的專門負責(zé)輸入輸出工作的處理器。它控制設(shè)備與內(nèi)存直接進行數(shù)據(jù)交換,中央處理器可以做相應(yīng)的計算操作,從而使系統(tǒng)獲得CPU與外設(shè)的并行處理能力。2.輸入輸出通道的分類

(1)字節(jié)多路通道

(2)數(shù)據(jù)選擇通道(3)數(shù)組多路通道

4.2.4輸入輸出系統(tǒng)的控制方式輸入輸出系統(tǒng)的控制方式,又稱I/O控制方式,是指CPU何時、怎樣去驅(qū)動外設(shè),如何控制外設(shè)與主機之間的數(shù)據(jù)傳遞。隨著計算機技術(shù)的發(fā)展,輸入輸出控制方式也在不斷發(fā)展,先后出現(xiàn)了四種控制方式:程序直接控制方式、中斷控制方式、直接存儲器存取控制方式和通道控制方式。

1.程序直接控制方式程序直接控制方式也稱為“忙—等待”方式,即在一個設(shè)備的操作沒有完成時,控制程序一直檢測設(shè)備的狀態(tài),直到該操作完成,才能進行下一個操作。程序直接控制方式的步驟為:①當用戶需要輸入數(shù)據(jù)時,由處理器向設(shè)備控制器發(fā)出一條輸入輸出指令,啟動設(shè)備進行輸入。在設(shè)備輸入數(shù)據(jù)期間,處理器通過循環(huán)執(zhí)行測試指令不間斷地檢測設(shè)備狀態(tài)寄存器的值,當狀態(tài)寄存器的值顯示設(shè)備輸入完成時,處理器將數(shù)據(jù)寄存器中的數(shù)據(jù)取出,送入主存指定的存儲單元,然后再啟動設(shè)備去讀取下一個數(shù)據(jù)。②當用戶進程需要向設(shè)備輸出數(shù)據(jù)時,也必須同樣發(fā)出啟動命令啟動設(shè)備輸出,并等待輸出操作完成。程序直接控制方式雖然控制簡單,也不需要多少硬件支持,但是,程序直接控制方式明顯地存在下述缺點:(l)CPU和外圍設(shè)備只能串行工作。由于CPU處理速度大大高于外圍設(shè)備的數(shù)據(jù)傳送和處理速度,所以,CPU的大量時間都處于等待和空閑狀態(tài)。這使得CPU的利用率大大降低;(2)CPU在一段時間內(nèi)只能和一臺外圍設(shè)備交換數(shù)據(jù)信息,從而不能實現(xiàn)設(shè)備之間的并行工作;(3)由于程序直接控制方式依靠測試設(shè)備標志觸發(fā)器的狀態(tài)位來控制數(shù)據(jù)傳送,因此無法發(fā)現(xiàn)和處理由于設(shè)備或其它硬件所產(chǎn)生的錯誤。2.中斷控制方式

為了減少程序直接控制方式中CPU等待時間,以及提高系統(tǒng)的并行工作程度,中斷控制方式被用來控制外圍設(shè)備和內(nèi)存與CPU之間的數(shù)據(jù)傳送。這種方式要求CPU與設(shè)備(或控制器)之間有相應(yīng)的中斷請求線,而且在設(shè)備控制器的控制狀態(tài)寄存器有相應(yīng)的中斷允許位。特點:中斷控制方式比程序直接控制方式提高了CPU的利用率。每輸入輸出一個數(shù)據(jù)都會發(fā)生中斷,傳輸一組數(shù)據(jù)需要多次中斷,浪費了CPU的處理時間。中斷控制方式應(yīng)用于現(xiàn)代計算機系統(tǒng)中。3.直接存儲器存取控制方式(DMA)直接存儲器存取方式是指對輸入輸出設(shè)備的控制由DMA控制器完成,在DMA控制器的作用下,設(shè)備和主存之間可以成批地進行數(shù)據(jù)交換,而不用CPU的干涉。特點:數(shù)據(jù)的傳送方向、存放數(shù)據(jù)的主存始址及傳送數(shù)據(jù)的長度等都由CPU控制,具體的數(shù)據(jù)傳送由DMA控制器負責(zé),每臺設(shè)備需要配一個DMA控制器,這樣輸入輸出數(shù)據(jù)傳輸速度快,CPU負擔少。直接存儲器存取控制方式適用于塊設(shè)備的數(shù)據(jù)傳輸。4.直接存儲器存取控制方式(DMA)通道控制方式是一種以主存為中心,是設(shè)備與主存直接交換數(shù)據(jù)的控制方式。CPU只需要發(fā)出啟動指令,指出通道相應(yīng)的操作和輸入輸出設(shè)備,該指令就可以啟動通道并使該通道從主存中調(diào)出相應(yīng)的通道指令執(zhí)行,完成一組數(shù)據(jù)塊的輸入/輸出。特點:通道所需要的CPU干預(yù)更少,并可以實現(xiàn)CPU、通道和輸入輸出設(shè)備三者之間的并行操作,從而更有效地提高整個系統(tǒng)資源的利用率。通道控制方式適用于現(xiàn)代計算機系統(tǒng)中的大量數(shù)據(jù)交換。4.3設(shè)備分配與回收

4.3.1設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)為了實現(xiàn)對設(shè)備的管理和控制,需要對每臺設(shè)備、通道、控制器的情況進行登記。設(shè)備分配主要采用的數(shù)據(jù)結(jié)構(gòu)有設(shè)備控制表、控制器控制表、通道控制表和系統(tǒng)設(shè)備表。1.設(shè)備控制表系統(tǒng)為每臺設(shè)備配置一張設(shè)備控制表,用于記錄設(shè)備的特性及與輸入輸出控制器連接的情況。設(shè)備控制表中包括:設(shè)備標識符、設(shè)備類型、設(shè)備狀態(tài)、設(shè)備等待隊列指針、輸入輸出控制器指針、設(shè)備相對號、占用作業(yè)名等。設(shè)備標識符也稱為設(shè)備絕對號。它是指計算機系統(tǒng)對每臺設(shè)備的編號。用戶對每類設(shè)備的編號稱為設(shè)備相對號,也稱為設(shè)備類號。2.控制器控制表系統(tǒng)為每個控制器配置了一張控制器控制表,以反映控制器的使用狀態(tài),以及與通道的連接狀況等。其內(nèi)容包括控制器標識符、控制器的狀態(tài)、與控制器連接的通道表指針、控制器隊列的隊首指針、通道隊列的隊尾指針等。其中與控制器連接的通道表指針指向該控制器的通道控制表。3.通道控制表系統(tǒng)為每個通道配置一張通道控制表,以反映通道的使用狀態(tài)。其內(nèi)容包括通道標識符、通道狀態(tài)、等待獲得該通道的進程等待隊列指針等。4.系統(tǒng)設(shè)備表系統(tǒng)設(shè)備表也稱為設(shè)備類表,整個系統(tǒng)配置一張。它記錄已被連接到系統(tǒng)中的所有物理設(shè)備的情況,每個物理設(shè)備占一個表目,包括設(shè)備類型、擁有設(shè)備臺數(shù)、現(xiàn)存設(shè)備臺數(shù)、設(shè)備控制表指針等。其中設(shè)備控制表指針指向該設(shè)備對應(yīng)的設(shè)備控制表。這幾張表的關(guān)系是,在系統(tǒng)設(shè)備表中有指向設(shè)備控制表的指針,在設(shè)備控制表中有指向該設(shè)備控制器控制表的指針,在控制器控制表中有指向與該控制器連接的通道控制表的指針。系統(tǒng)就是通過這種關(guān)系進行設(shè)備的分配與回收的。4.3.2設(shè)備分配應(yīng)考慮的因素1.設(shè)備的使用性質(zhì)按照設(shè)備自身的使用性質(zhì),可以采用以下三種不同的分配方式:獨享分配、共享分配、虛擬分配。獨享分配適用于大多數(shù)低速設(shè)備,如打印機。共享分配適應(yīng)于高速設(shè)備,如磁盤。虛擬分配適應(yīng)于虛擬設(shè)備。根據(jù)設(shè)備的使用性質(zhì)來決定一臺設(shè)備可以分給幾個進程。2.設(shè)備的分配算法設(shè)備的分配算法主要是確定把設(shè)備先分給哪個進程。設(shè)備的分配算法有先來先服務(wù)和優(yōu)先權(quán)兩種。先來先服務(wù)算法是根據(jù)進程發(fā)出請求的先后順序,把這些進程排成一個設(shè)備請求隊列,設(shè)備分配程序總是把設(shè)備分配給隊首進程。優(yōu)先權(quán)算法是按照進程的優(yōu)先權(quán)的高低進行設(shè)備分配,誰的優(yōu)先權(quán)高就先把設(shè)備分給誰,對優(yōu)先權(quán)相同的按照先請求先服務(wù)的算法排隊。3.設(shè)備分配的安全性設(shè)備分配的安全性是指在設(shè)備分配中應(yīng)防止發(fā)生進程的死鎖。設(shè)備分配的安全性采用的方法有靜態(tài)分配策略和動態(tài)分配策略,它們可以防止進程死鎖。(1)靜態(tài)分配策略。靜態(tài)分配策略是在作業(yè)級進行的,用戶作業(yè)開始執(zhí)行前,由系統(tǒng)一次分配給該作業(yè)所要求的全部設(shè)備、控制器和通道,直到該作業(yè)撤消為止。靜態(tài)分配不會出現(xiàn)死鎖,但是,設(shè)備利用率低。(2)動態(tài)分配策略。動態(tài)分配策略是在進程執(zhí)行過程中,根據(jù)執(zhí)行的需要所進行的設(shè)備分配。動態(tài)分配提高了設(shè)備的利用率,但是分配不當,會造成進程的死鎖。4.設(shè)備的獨立性設(shè)備的獨立性是指用戶在編制程序時所使用的設(shè)備與實際使用的設(shè)備無關(guān)。為此,要求用戶程序?qū)斎胼敵鲈O(shè)備的請求采用邏輯設(shè)備名,而在程序?qū)嶋H執(zhí)行時使用物理設(shè)備名,它們之間的關(guān)系類似存儲管理中的邏輯地址和物理地址的關(guān)系。4.3.3設(shè)備分配的實現(xiàn)在并發(fā)進程環(huán)境中,設(shè)備分配是由系統(tǒng)完成的,以防止并發(fā)進程對設(shè)備的無序競爭。當進程提出設(shè)備請求時,系統(tǒng)啟動設(shè)備分配程序,按照一定的算法為進程分配設(shè)備、設(shè)備控制器和通道。在這三種資源中,通道是最緊缺的資源,設(shè)備是最充足的資源,所以,設(shè)備分配的步驟是:先分配設(shè)備,再分配設(shè)備控制器,最后分配通道。1.分配設(shè)備根據(jù)進程提出的設(shè)備名查找系統(tǒng)設(shè)備表,若沒有找到,則顯示出錯信息,并結(jié)束分配;否則,從中找到該設(shè)備的設(shè)備控制表,查看設(shè)備控制表中的設(shè)備狀態(tài)字段。若該設(shè)備處于忙狀態(tài),則將進程插入到該設(shè)備的等待隊列;若設(shè)備空閑,便按照一定的算法來計算本次設(shè)備分配的安全性。若分配不會引起死鎖則進行設(shè)備分配,修改設(shè)備控制表,把狀態(tài)字段的值由“0”改為進程名,并修改系統(tǒng)設(shè)備表,使“現(xiàn)存設(shè)備臺數(shù)”減少分配的臺數(shù);否則,將該進程插入到該設(shè)備的等待隊列。2.分配設(shè)備控制器在系統(tǒng)把設(shè)備分配給請求輸入輸出的進程后,再到設(shè)備控制表中找到與該設(shè)備相連的控制器控制表,從該表的狀態(tài)字段中可知該控制器是否忙碌。若控制器忙,則將進程插入到等待該控制器的隊列;否則,將該控制器分配給進程,即修改控制器控制表,把狀態(tài)字段的值由“0”改為進程名。3.分配通道在分配完設(shè)備控制器后,從控制器控制表中找到與該控制器相連的通道控制表,從該表的狀態(tài)字段中可知該通道是否忙碌。若通道處于忙碌狀態(tài),則將該進程插入到等待該通道的隊列;否則,將該通道分配給進程,即修改通道控制表,把狀態(tài)字段的值由“0”改為進程名。4.3.4設(shè)備回收當進程撤消或設(shè)備使用完畢后,要進行設(shè)備的回收。(1)系統(tǒng)根據(jù)進程名在設(shè)備分配表中找到相應(yīng)的記錄,把設(shè)備狀態(tài)修改為“0”表示未分配,若該設(shè)備的等待隊列不空,則喚醒隊首進程,進行設(shè)備分配;(2)到該設(shè)備的控制器控制表中,把其狀態(tài)由進程名改為“0”,若該控制器的等待隊列不空,則喚醒隊首進程,進行控制器分配;(3)到該控制器的通道控制表中,把其狀態(tài)由進程名改為“0”,若該通道的等待隊列不空,則喚醒隊首進程,進行通道分配;(4)在系統(tǒng)設(shè)備表中,把回收設(shè)備臺數(shù)添加到“現(xiàn)存設(shè)備臺數(shù)”中。4.3.5對設(shè)備分配程序的改進以上設(shè)備分配程序有兩個特點,一是,進程是以物理設(shè)備名來提出輸入輸出請求的。二是,系統(tǒng)采用的是單通路的輸入輸出系統(tǒng)結(jié)構(gòu)。這樣的系統(tǒng)容易產(chǎn)生“瓶頸”現(xiàn)象。為此,對設(shè)備分配程序做以下改進:(1)增加設(shè)備的獨立性。進程應(yīng)以邏輯設(shè)備名請求輸入輸出。系統(tǒng)首先根據(jù)系統(tǒng)設(shè)備表找到第一個該類設(shè)備的設(shè)備分配表,若該設(shè)備忙,則查找第二個該類設(shè)備的設(shè)備分配表,僅當所有該類設(shè)備都忙時,才把進程掛在該類設(shè)備的等待隊列上。這樣通過增加設(shè)備的獨立性,提高了設(shè)備分配的安全性。(2)考慮多通路情況。系統(tǒng)采用多通路的輸入輸出系統(tǒng)結(jié)構(gòu),即一個設(shè)備可以由多個控制器控制,一個控制器可以由多個通道控制(即增加圖4-10中的虛線部分)。這樣,可以防止系統(tǒng)出現(xiàn)“瓶頸”現(xiàn)象。也就是對控制器和通道的分配,同樣經(jīng)過幾次反復(fù),只要有一個控制器或通道可用,系統(tǒng)就可以把它分配給進程。這樣,就增加了分配控制器和通道的可能性,提高了設(shè)備分配的效率。4.4設(shè)備處理4.4.1設(shè)備驅(qū)動程序的功能和特點設(shè)備驅(qū)動程序的功能1.把抽象要求轉(zhuǎn)化為具體要求2.檢查用戶輸入輸出請求的合法性3.發(fā)出輸入輸出命令,啟動分配到的輸入輸出設(shè)備,完成指定的輸入輸出操作。4.及時響應(yīng)由控制器或通道發(fā)來的中斷請求,并根據(jù)其中斷類型調(diào)用相應(yīng)的中斷處理程序進行處理。5.對設(shè)置有通道的計算機系統(tǒng),驅(qū)動程序還應(yīng)根據(jù)用戶的輸入輸出請求,自動地構(gòu)成通道程序。設(shè)備處理的方式設(shè)備處理方式有三類:一是為每一類設(shè)備設(shè)置一個進程,專門執(zhí)行這類設(shè)備的輸入輸出操作。二是在整個系統(tǒng)中設(shè)置一個輸入輸出進程,專門負責(zé)對系統(tǒng)中所有各類設(shè)備的輸入輸出操作。三是不設(shè)置專門的設(shè)備處理進程,只為各類設(shè)備設(shè)置相應(yīng)的設(shè)備處理程序,供用戶進程或系統(tǒng)進程調(diào)用。設(shè)備驅(qū)動程序的特點

(1)驅(qū)動程序主要是在請求輸入輸出的進程與設(shè)備控制器之間的一個通信程序。(2)驅(qū)動程序與輸入輸出設(shè)備的特性密切相關(guān)。(3)驅(qū)動程序與輸入輸出控制方式緊密相關(guān)。(4)驅(qū)動程序與硬件緊密相關(guān),其部分被固化在ROM中。4.4.2設(shè)備驅(qū)動程序的處理過程1.將抽象要求轉(zhuǎn)化為具體要求用戶及上層軟件對設(shè)備控制器的具體情況毫無了解,只能向它們發(fā)出抽象的要求,借助設(shè)備驅(qū)動程序,轉(zhuǎn)化為具體的要求傳送給設(shè)備控制器。如將盤塊號轉(zhuǎn)換為磁盤的盤面、磁道號及扇區(qū)號。2.檢查輸入輸出請求的合法性任何輸入設(shè)備都只能完成一組特定的功能,如該設(shè)備不支持這次輸入輸出請求,則認為這次輸入輸出請求非法,又如用戶試圖讓打印機輸入數(shù)據(jù)。3.讀出和檢查設(shè)備的狀態(tài)要啟動某個設(shè)備進行輸入輸出操作,其前提條件是該設(shè)備正處于空閑狀態(tài)。因此在啟動設(shè)備之前,要從設(shè)備控制器的狀態(tài)寄存器中,讀出設(shè)備的狀態(tài)。4.4.2設(shè)備驅(qū)動程序的處理過程4.傳送必要的參數(shù)有許多設(shè)備,特別是塊設(shè)備,除必須向其控制器發(fā)出啟動命令外,還需要傳送必要的參數(shù)。例如,在啟動磁盤進行讀/寫之前,應(yīng)先將本次要傳送的字節(jié)數(shù)、數(shù)據(jù)應(yīng)到達的主存始址送入控制器的相應(yīng)寄存器中。5.設(shè)置工作方式有些設(shè)備有多種工作方式,在啟動時應(yīng)選定某種方式,給出必要的數(shù)據(jù)。在啟動該接口之前,應(yīng)先按通信規(guī)程設(shè)定下述參數(shù):波特率、奇偶校驗方式、停止位數(shù)目及數(shù)據(jù)字節(jié)長度等。6.啟動輸入輸出設(shè)備在完成上述五個工作后,驅(qū)動程序可以向控制器的命令寄存器傳送相應(yīng)的控制命令,啟動輸入輸出設(shè)備?;镜妮斎胼敵霾僮魇窃诳刂破鞯目刂葡逻M行的。4.5

設(shè)備管理采用的技術(shù)4.5.1緩沖技術(shù)為了提高輸入輸出設(shè)備的速度和利用率,在輸入輸出設(shè)備與處理器交換數(shù)據(jù)時引入了緩沖技術(shù)。緩沖技術(shù)是輸入輸出設(shè)備在與主存交換數(shù)據(jù)時使用緩沖區(qū)的技術(shù)。緩沖管理的主要功能是組織好緩沖區(qū),并提供獲得和釋放緩沖區(qū)的手段。1.緩沖的引入(1)緩和CPU與輸入輸出設(shè)備間速度不匹配的矛盾。(2)減少對CPU的中斷頻率,放寬對中斷響應(yīng)時間的限制。(3)提高CPU與輸入輸出設(shè)備間的并行性。

4.5.1緩沖技術(shù)2.單緩沖單緩沖是指在設(shè)備和處理器之間設(shè)置一個緩沖區(qū),用于數(shù)據(jù)的傳輸。特點是:在主存中只有一個緩沖區(qū)。對于塊設(shè)備,該緩沖區(qū)可以存放一塊數(shù)據(jù),對于字符設(shè)備,該緩沖區(qū)可以存放一行數(shù)據(jù)。設(shè)備和處理器對緩沖區(qū)的操作是串行的,傳輸速度慢。在任一時刻,只能進行單向的數(shù)據(jù)傳輸,并且傳輸數(shù)據(jù)量較少。4.5.1緩沖技術(shù)3.雙緩沖雙緩沖是指在設(shè)備和處理器之間設(shè)置兩個緩沖區(qū)。特點是:在主存中設(shè)置兩個緩沖區(qū),完成數(shù)據(jù)的傳輸。兩個緩沖區(qū)可以交替使用,提高了處理器和輸入設(shè)備的并行操作能力。在任一時刻,可以進行雙向的數(shù)據(jù)傳輸。一個緩沖區(qū)用于輸入,另一個用于輸出。適用于輸入/輸出、生產(chǎn)者/消費者速度基本相匹配的情況。當傳輸數(shù)據(jù)量較大,或者兩者的速度相差較遠時,雙緩沖區(qū)效率較低。

4.5.1緩沖技術(shù)4.循環(huán)緩沖在設(shè)備和處理器之間設(shè)置多個大小相等的緩沖區(qū)。每個緩沖區(qū)中有一個鏈接指針指向下一個緩沖區(qū),最后一個緩沖區(qū)指針指向第一個緩沖區(qū),這樣構(gòu)成一個環(huán)形緩沖區(qū)。特點是:在主存中設(shè)置多個緩沖區(qū)。讀和寫可以并行處理,適用于某種特定的輸入輸出進程和計算進程,如輸入/輸出、生產(chǎn)者/消費者速度不相匹配的情況。循環(huán)緩沖區(qū)屬于專用緩沖區(qū)。當系統(tǒng)較大時,使用多個這樣的緩沖區(qū)要消耗大量的主存空間,降低緩沖區(qū)的使用效率。

4.5.1緩沖技術(shù)5.緩沖池當系統(tǒng)較大時,可以利用供多個進程共享的緩沖池來提高緩沖區(qū)的利用率。緩沖池的組成包括空(閑)緩沖區(qū)、裝滿輸入數(shù)據(jù)的緩沖區(qū)、裝滿輸出數(shù)據(jù)的緩沖區(qū),同類緩沖區(qū)以鏈隊的形式存在。另外,還應(yīng)有四種工作緩沖區(qū):用于收容輸入數(shù)據(jù)的工作緩沖區(qū)、用于提取輸入數(shù)據(jù)的工作緩沖區(qū)、用于收容輸出數(shù)據(jù)的工作緩沖區(qū)、用于提取輸出數(shù)據(jù)的工作緩沖區(qū)。特點是:緩沖池結(jié)構(gòu)復(fù)雜,在主存中設(shè)置公用緩沖池,在池中設(shè)置多個可以供多個進程共享的緩沖區(qū)。緩沖區(qū)既可以用于輸入,又可以用于輸出(即共享)。緩沖池的設(shè)置,減少了主存空間的消耗,提高了主存的利用率,適應(yīng)于現(xiàn)代操作系統(tǒng)。4.5.2中斷技術(shù)1.中斷的概念中斷是由于某些事件的出現(xiàn),中止現(xiàn)行進程的執(zhí)行,而轉(zhuǎn)去處理出現(xiàn)的事件,中斷事件處理完后,再繼續(xù)運行被中止進程的過程。在這里引起中斷的事件稱為中斷源。中斷事件通常由硬件發(fā)現(xiàn)。對出現(xiàn)的事件進行處理的程序稱為中斷處理程序。中斷處理程序是由操作系統(tǒng)處理的,屬于操作系統(tǒng)的組成部分。

4.5.2中斷技術(shù)2.中斷類型(1)硬件故障中斷。由機器故障造成的中斷。如電源故障。(2)程序中斷。由程序執(zhí)行到某條機器指令時可能出現(xiàn)的各種問題而引起的中斷。如發(fā)現(xiàn)定點操作數(shù)溢出、除數(shù)為0等。(3)外部中斷。由各種外部事件引起的中斷。如按壓了中斷鍵、定時時鐘時間到等。(4)輸入輸出中斷。由輸入輸出控制系統(tǒng)發(fā)現(xiàn)外圍設(shè)備完成了輸入輸出操作或在執(zhí)行輸入輸出時通道或外圍設(shè)備產(chǎn)生錯誤而引起的中斷。(5)訪管中斷。正在運行的進程執(zhí)行訪管指令時引起的中斷。如分配一臺外設(shè)。前四類中斷不是運行進程所希望的,故稱為強迫性中斷,而第五種中斷,是進程所希望的,故稱為自愿性中斷。

4.5.2中斷技術(shù)3.中斷響應(yīng)在處理器執(zhí)行完一條指令后,硬件的中斷裝置就立即檢查有無中斷事件發(fā)生。若無,繼續(xù)執(zhí)行下一條指令;若有,則停止現(xiàn)行進程,由操作系統(tǒng)中的中斷處理程序占用處理器,這一過程稱為“中斷響應(yīng)”。4.中斷處理首先介紹與中斷處理有關(guān)的概念:特權(quán)指令和程序狀態(tài)字。特權(quán)指令是不允許用戶程序直接使用的指令。如輸入輸出指令,設(shè)置時鐘的指令。程序狀態(tài)字是用來控制指令執(zhí)行順序,并保留和指示與程序有關(guān)的系統(tǒng)狀態(tài)。

4.5.2中斷技術(shù)①當中斷裝置發(fā)現(xiàn)中斷事件后,先把中斷事件存放到程序狀態(tài)字寄存器中的中斷碼位置。②把程序狀態(tài)字寄存器中的“當前PSW”作為“舊PSW”保存到預(yù)先約定的主存的固定單元中。③根據(jù)中斷碼,把該類事件處理程序的“新PSW”送入程序狀態(tài)字寄存器。④處理器按新PSW控制處理該事件的中斷處理程序執(zhí)行。當中斷程序處理完后,再恢復(fù)現(xiàn)場,繼續(xù)執(zhí)行原先被中斷的進程。

4.5.3

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論