計(jì)算機(jī)操作系統(tǒng) chap5設(shè)備管理_第1頁
計(jì)算機(jī)操作系統(tǒng) chap5設(shè)備管理_第2頁
計(jì)算機(jī)操作系統(tǒng) chap5設(shè)備管理_第3頁
計(jì)算機(jī)操作系統(tǒng) chap5設(shè)備管理_第4頁
計(jì)算機(jī)操作系統(tǒng) chap5設(shè)備管理_第5頁
已閱讀5頁,還剩149頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第5章設(shè)備管理

設(shè)備管理是操作系統(tǒng)中最繁雜且與硬件關(guān)系最密切的部分。通過本章學(xué)習(xí),讀者應(yīng)該掌握以下內(nèi)容:數(shù)據(jù)傳輸方式中斷技術(shù)緩沖技術(shù)設(shè)備分配技術(shù)設(shè)備獨(dú)立性設(shè)備驅(qū)動(dòng)1/11/20235.1.I/O系統(tǒng)5.2.I/O控制方式

5.3.緩沖管理

5.4.I/O軟件5.5.設(shè)備分配5.6.磁盤存儲(chǔ)器的管理1/11/2023設(shè)備管理的目標(biāo)

根據(jù)設(shè)備請求的情況,按照一定的算法,選擇和分配輸入輸出設(shè)備以便進(jìn)行數(shù)據(jù)傳輸操作;控制輸入輸入設(shè)備和CPU或內(nèi)存之間交換數(shù)據(jù),同時(shí)提高設(shè)備和設(shè)備之間、CPU和設(shè)備之間,以及進(jìn)程和進(jìn)程之間的并行操作度,以使操作系統(tǒng)獲得最佳效率;為用戶提供一個(gè)友好的透明接口,把用戶和設(shè)備硬件特性分開,使得用戶在編制應(yīng)用程序時(shí)不必涉及具體設(shè)備,系統(tǒng)按用戶要求控制設(shè)備工作。1/11/2023設(shè)備管理功能設(shè)備分配與回收緩沖管理設(shè)備處理虛擬設(shè)備1/11/20235.1.1I/O設(shè)備

計(jì)算機(jī)系統(tǒng)的外圍設(shè)備包括:顯示器、鍵盤、紙帶閱讀器、紙帶穿孔機(jī)、打印機(jī)、磁帶、磁盤、光盤、激光打印機(jī)、繪圖儀、圖形數(shù)字化儀、鼠標(biāo)器、聲音輸入、聲音輸出設(shè)備以及辦公自動(dòng)化設(shè)備等等,種類相當(dāng)繁多,可從不同的角度對它們進(jìn)行分類。

5.1I/O系統(tǒng)1/11/2023系統(tǒng)設(shè)備:在操作系統(tǒng)生成時(shí)已配置好的的標(biāo)準(zhǔn)設(shè)備。如:鍵盤、顯示器、打印機(jī)、磁盤等。用戶設(shè)備:指系統(tǒng)設(shè)備之外的非標(biāo)準(zhǔn)設(shè)備,一般由用戶提供設(shè)備及其處理程序,并通過適當(dāng)?shù)氖侄伟阉鼈兗{入系統(tǒng)中,由系統(tǒng)實(shí)施管理。如:網(wǎng)卡、調(diào)制解調(diào)器、繪圖儀等。1.設(shè)備的從屬關(guān)系分類1/11/2023塊設(shè)備:指以數(shù)據(jù)塊為單位存儲(chǔ)和傳輸數(shù)據(jù)的設(shè)備如磁盤、磁帶等。字符設(shè)備:指以單個(gè)字符為單位來傳送信息的設(shè)備。如鍵盤、顯示器、打印機(jī)等。2.設(shè)備中的信息交換單位方式分類1/11/2023存儲(chǔ)設(shè)備:它是計(jì)算機(jī)用來存儲(chǔ)永久性信息的設(shè)備如,磁帶、磁盤(軟盤、硬盤)、光盤等。輸入設(shè)備:將外部信息送給計(jì)算機(jī)的設(shè)備。如,鍵盤、鼠標(biāo)、掃描儀、手寫筆、數(shù)碼相機(jī)、麥克風(fēng)、游戲手柄等輸出設(shè)備:將計(jì)算機(jī)加工后的信息傳送給外界的設(shè)備。

如,顯示器、打印機(jī)、投影儀等。3.按設(shè)備的使用特性分類1/11/2023獨(dú)占設(shè)備:這類設(shè)備在用戶作業(yè)的整個(gè)運(yùn)行期間必須為此用戶所占有,即多個(gè)作業(yè)對某一外設(shè)的訪問應(yīng)該是互斥的,一旦系統(tǒng)將這類設(shè)備分配給某個(gè)作業(yè),便由該設(shè)備獨(dú)占,直至釋放該資源。大多數(shù)低速I/O設(shè)備,如用戶終端、打印機(jī)等共享設(shè)備:指在同一時(shí)間段內(nèi)可以同時(shí)讓幾個(gè)作業(yè)使用的設(shè)備,當(dāng)然,在某一時(shí)刻,該設(shè)備只能為一個(gè)作業(yè)服務(wù)。適應(yīng)于高速設(shè)備,如磁盤虛擬設(shè)備:根據(jù)設(shè)備的使用性質(zhì)來決定一臺(tái)設(shè)備可以分給幾個(gè)進(jìn)程以提高該設(shè)備的使用率。如虛擬打印機(jī)4.按資源分配的角度分類1/11/20231、按()分類可將設(shè)備分為塊設(shè)備和字符設(shè)備。A.從屬關(guān)系B.操作特性C.共享屬性D.信息交換單位2、大多數(shù)低速設(shè)備都屬于()設(shè)備。A.獨(dú)占B.共享C.虛擬D.Spooling3、從資源分配的角度看,可以把設(shè)備分為獨(dú)占設(shè)備、共享設(shè)備和虛擬設(shè)備,打印機(jī)屬于________設(shè)備,而磁盤屬于__________設(shè)備。1/11/2023

5.1.2設(shè)備控制器1.設(shè)備控制器的概念

設(shè)備控制器是CPU與外圍設(shè)備之間的接口,是一個(gè)可編址設(shè)備,每一個(gè)地址對應(yīng)一個(gè)設(shè)備。它接收從CPU發(fā)來的命令,并去控制輸入輸出設(shè)備的工作,使CPU從繁雜的設(shè)備控制事務(wù)中解脫出來,提高CPU的使用效率。1/11/20232.作用:接收從CPU發(fā)來的命令,控制I/O設(shè)備工作3.功能:接收和識別命令數(shù)據(jù)交換地址識別標(biāo)識和報(bào)告設(shè)備的狀態(tài)差錯(cuò)控制1/11/20234.設(shè)備控制器的組成

(1).設(shè)備控制器與處理機(jī)的接口(2).設(shè)備控制器與設(shè)備的接口(3).I/O邏輯1/11/2023I/O系統(tǒng)的結(jié)構(gòu)CPU磁盤控制器存儲(chǔ)器打印機(jī)控制器其他控制器一、微型機(jī)I/O系統(tǒng):總線結(jié)構(gòu)磁盤驅(qū)動(dòng)器打印機(jī)1/11/2023二、主機(jī)系統(tǒng)輸入輸出結(jié)構(gòu)

當(dāng)主機(jī)所配置的輸入輸出設(shè)備較多時(shí),特別是配有較多的高速外設(shè)時(shí),采用總線型輸入輸出系統(tǒng)結(jié)構(gòu)會(huì)加重CPU與總線的負(fù)擔(dān)。因此,在這樣的輸入輸出系統(tǒng)中不宜采用單總線結(jié)構(gòu),而是增加一級輸入輸出通道,用來代替CPU與各設(shè)備控制器進(jìn)行通信,實(shí)現(xiàn)對控制器的控制。1/11/2023

1/11/20235.1.3I/O通道1、通道的引入

為了提高計(jì)算機(jī)系統(tǒng)的運(yùn)行效率,就要使CPU擺脫繁忙的I/O事務(wù),而配置專門處理I/O事務(wù)的機(jī)構(gòu)——通道。

通道的引入是為了建立獨(dú)立的I/O操作。它不僅要求數(shù)據(jù)傳送獨(dú)立于CPU,而且要求I/O操作的組織、管理、結(jié)束等也盡量獨(dú)立,以保證CPU有更多的時(shí)間從事計(jì)算。這樣就可以實(shí)現(xiàn)CPU計(jì)算和I/O操作的并行工作。1/11/2023思考題一

什么是通道?通道有哪些類型?1/11/20232、I/O通道概念

通道是一種硬件機(jī)構(gòu),又稱I/O處理機(jī)。輸入輸出通道是指專門負(fù)責(zé)輸入輸出工作的處理器。它有自己的指令系統(tǒng)(包含數(shù)據(jù)傳送指令和設(shè)備控制指令),獨(dú)立執(zhí)行自己的通道程序來實(shí)現(xiàn)內(nèi)存與外設(shè)之間的數(shù)據(jù)傳輸,從而使系統(tǒng)獲得CPU與外設(shè)并行處理的能力。1/11/20233、通道的類型

根據(jù)信息交換方式的不同,可把通道分成字節(jié)多路通道、數(shù)組多路通道和選擇通道三種。(1)字節(jié)多路通道

通常都含有許多非分配型子通道,其數(shù)量可以從幾十到數(shù)百個(gè),每一個(gè)子通道連接一臺(tái)輸入輸出設(shè)備,這些子通道按時(shí)間片輪轉(zhuǎn)方式共享主通道。

字節(jié)多路通道連接低速或中速設(shè)備時(shí),不會(huì)丟失信息。1/11/2023

選擇通道的數(shù)據(jù)傳送是按成批的方式進(jìn)行的,故傳送速率很高。(2)數(shù)據(jù)選擇通道選擇通道

它適用于連接高速I/O設(shè)備,如磁帶、磁盤等。選擇通道只有一個(gè)分配型子通道,即這個(gè)子通道可以連接多臺(tái)設(shè)備,但每次只能把子通道分配給一臺(tái)設(shè)備使用。一旦分配給某臺(tái)設(shè)備,子通道就被它獨(dú)占,即使暫時(shí)出現(xiàn)空閑,也不允許其他設(shè)備利用該子通道。直到它被釋放,再選擇另一臺(tái)設(shè)備為其服務(wù)。因此選擇通道的利用率是很低的。1/11/2023

這種通道綜合了字節(jié)多路通道分時(shí)并行工作和選擇通道傳輸速率高的特點(diǎn)。它具有多個(gè)非分配型子通道,每個(gè)子通道連接一臺(tái)中、高速I/O設(shè)備,如:磁帶、磁鼓、磁盤等,因而通道所連接的幾個(gè)設(shè)備可以并行工作。

數(shù)組多路通道技術(shù)相當(dāng)于通道程序的多道程序設(shè)計(jì)技術(shù)。(3)數(shù)組多路通道1/11/2023CPU字節(jié)多路通道

打印機(jī)1打印機(jī)2I/O控制器

I/O控制器

內(nèi)存

選擇通道成組多路通道

磁盤

I/O控制器

磁盤

I/O控制器

I/O控制器I/O控制器

磁帶

磁帶

存在這三種通道的計(jì)算機(jī)系統(tǒng)的各硬件的連接關(guān)系如圖所示:1/11/2023思考題二設(shè)備管理中,什么是“瓶頸”現(xiàn)象?如何解決?1/11/2023

通道命令和通道程序

通道有自己的指令系統(tǒng),為了與CPU的指令相區(qū)別,通道的指令被稱為“通道命令字”。通道命令字條數(shù)不多,主要涉及控制、轉(zhuǎn)移、讀、寫及查詢等功能。0783132474863每條通道命令由四個(gè)字段組成:(1)操作碼(0~7):表示通道要執(zhí)行的命令;(2)數(shù)據(jù)主存始址:表示本命令要訪問的主存數(shù)據(jù)區(qū)的起始地址;(3)特征位(32~47,只使用了32~36位,其余未用):37~39位必須置0,否則認(rèn)為通道命令錯(cuò)。1/11/2023

通道程序存放在內(nèi)存中,由I/O指令啟動(dòng)執(zhí)行。用戶請求I/O時(shí),CPU對通道的通信是向通道發(fā)出查詢、啟動(dòng)和停止通道程序工作,而通道向CPU的通信則采用中斷方式。其執(zhí)行過程如圖所示。1/11/2023用戶I/O請求

查詢設(shè)備忙閑?

調(diào)用通道程序

執(zhí)行通道程序

I/O操作完成,發(fā)中斷請求

CPU響應(yīng)中斷,進(jìn)行結(jié)束處理

以I/O指令啟動(dòng)通道結(jié)束通道工作

進(jìn)入設(shè)備請求隊(duì)列,等待忙不忙

通道程序的執(zhí)行過程

1/11/20235、通道工作過程(1)當(dāng)進(jìn)程有I/O請求時(shí),系統(tǒng)首先查詢設(shè)備狀態(tài)。若忙,進(jìn)程進(jìn)入設(shè)備請求隊(duì)列等待;若閑,CPU發(fā)指令指明I/O操作、設(shè)備號和對應(yīng)通道。(2)對應(yīng)通道收到CPU發(fā)來的啟動(dòng)指令后,讀出內(nèi)存中的通道指令程序、設(shè)置對應(yīng)設(shè)備的控制狀態(tài)寄存器的初值。(3)設(shè)備按通道指令的求,把數(shù)據(jù)送往內(nèi)存指定區(qū)域。(4)若傳送結(jié)束,I/O控制器通過中斷請求線發(fā)中斷信號請求CPU做中斷處理。(5)中斷處理結(jié)束后,CPU返回到被中斷進(jìn)程處繼續(xù)執(zhí)行。(6)當(dāng)進(jìn)程調(diào)度程序選中這個(gè)已得到數(shù)據(jù)的進(jìn)程后,才能進(jìn)行加工處理。1/11/2023思考題三通道的作用是什么?

通道是一個(gè)獨(dú)立于CPU的專管輸入/輸出控制的處理器,它控制內(nèi)存與外部設(shè)備直接進(jìn)行數(shù)據(jù)交換。

它有自己的通道指令,這些通道指令受CPU啟動(dòng),并在操作結(jié)束時(shí)向CPU發(fā)中斷信號。

通道方式進(jìn)一步減輕了CPU的工作負(fù)擔(dān),增加了計(jì)算機(jī)系統(tǒng)的并行工作程度。1/11/20235.1.4總線系統(tǒng)1、總線基本概念

在計(jì)算機(jī)系統(tǒng)內(nèi)各種子系統(tǒng),如CPU、內(nèi)存、I/O設(shè)備等之間,構(gòu)建公用的信號或數(shù)據(jù)傳輸通道這種可共享的傳輸通道稱為總線。1/11/20232、總線的分類1/11/2023當(dāng)用戶進(jìn)程通過系統(tǒng)調(diào)用提出I/O請求時(shí),從系統(tǒng)響應(yīng)此請求開始,至系統(tǒng)完成用戶要求的I/O操作,并喚醒相應(yīng)的等待I/O完成的進(jìn)程為止,這整個(gè)過程稱為I/O控制過程。5.2I/O控制方式1/11/2023I/O控制過程包括以下步驟:(1)響應(yīng)I/O請求,為在具體物理設(shè)備上進(jìn)行I/O操作做準(zhǔn)備。包括將邏輯設(shè)備名轉(zhuǎn)換為物理設(shè)備名(設(shè)備分配)、I/O請求的合法性等。(2)設(shè)備驅(qū)動(dòng),控制設(shè)備完成I/O操作,對每類設(shè)備分別設(shè)置不同的設(shè)備驅(qū)動(dòng)程序。(3)中斷處理,I/O操作完成之后,設(shè)備控制器向CPU發(fā)送中斷信號,CPU響應(yīng)后轉(zhuǎn)向相應(yīng)的中斷處理程序進(jìn)行善后處理。1/11/2023I/O操作的控制方式一般有四種:查詢方式中斷方式直接內(nèi)存存取方式通道方式

它們的主要差別在于處理器和外設(shè)并行工作的方式和程度的不同。1/11/2023查詢方式是最簡單的I/O控制方式。在設(shè)備控制器中有兩個(gè)寄存器,一個(gè)是狀態(tài)寄存器,由其中的一個(gè)狀態(tài)位的值反映設(shè)備的忙或閑;另一個(gè)是數(shù)據(jù)緩沖寄存器。當(dāng)設(shè)備啟動(dòng)時(shí),狀態(tài)寄存器的啟動(dòng)位為1,此時(shí)外設(shè)把數(shù)據(jù)送往數(shù)據(jù)緩沖寄存器,并將狀態(tài)寄存器的狀態(tài)位置1。CPU執(zhí)行完一條指令后就測試狀態(tài)位,如果為1,就把數(shù)據(jù)寄存器中的數(shù)據(jù)取到內(nèi)存;若狀態(tài)位為0,則再測試,直到狀態(tài)寄存器的狀態(tài)位為1,然后再讀取數(shù)據(jù)。所以此種方式也稱循環(huán)測試I/O方式5.2.1查詢方式1/11/2023就緒向設(shè)備控制器發(fā)讀命令讀設(shè)備控制器的狀態(tài)檢查狀態(tài)從設(shè)備控制器中讀入字向存儲(chǔ)器中寫字傳送完成CPU->I/OCPU->內(nèi)存I/O->CPU出錯(cuò)I/O->CPU完成下條指令未完成未就緒1/11/2023步驟:

(1)當(dāng)用戶需要輸入數(shù)據(jù)時(shí),由處理器向設(shè)備控制器發(fā)出一條輸入輸出指令,啟動(dòng)設(shè)備進(jìn)行輸入(2)當(dāng)用戶進(jìn)程需要向設(shè)備輸出數(shù)據(jù)時(shí),也必須同樣發(fā)出啟動(dòng)命令啟動(dòng)設(shè)備輸出,并等待輸出操作完成。特點(diǎn):

工作過程簡單,CPU的利用率低。在要求不高的場合下常被采用,而且不能支持多道程序。程序直接控制方式適用于早期的無中斷的計(jì)算機(jī)系統(tǒng)。1/11/2023

查詢方式是主機(jī)向外設(shè)詢問,而引入中斷后,每當(dāng)設(shè)備完成I/O操作,它便以中斷請求方式主動(dòng)向CPU匯報(bào)。因此,CPU一旦啟動(dòng)I/O設(shè)備后便可轉(zhuǎn)去處理其他程序,僅在接到I/O中斷信息請求時(shí)才花費(fèi)極少時(shí)間去處理。

5.2.2中斷方式1/11/20231、中斷概念

所謂中斷,是指處理機(jī)在執(zhí)行進(jìn)程的過程中,由于某些事件的出現(xiàn),中止當(dāng)前進(jìn)程的運(yùn)行,轉(zhuǎn)而去處理出現(xiàn)的事件,待處理完畢后返回原來被中斷處繼續(xù)執(zhí)行或調(diào)度其他進(jìn)程執(zhí)行。2、中斷源

引起中斷的事件稱為中斷源。(1)強(qiáng)迫性中斷源硬件故障、程序性錯(cuò)誤、外部事件、I/O中斷事件(2)自愿性中斷源1/11/20233、步驟(1)進(jìn)程需要數(shù)據(jù)時(shí),將允許啟動(dòng)和允許中斷的控制字寫入設(shè)備控制狀態(tài)寄存器中,啟動(dòng)該設(shè)備進(jìn)行輸入操作。(2)該進(jìn)程放棄處理機(jī),等待輸入的完成。操作系統(tǒng)進(jìn)程調(diào)度程序調(diào)度其他就緒進(jìn)程占用處理機(jī)。(3)當(dāng)輸入完成時(shí),輸入設(shè)備通過中斷請求線向CPU發(fā)出中斷請求信號。CPU在接收到中斷信號之后,轉(zhuǎn)向中斷處理程序。(4)中斷處理程序首先保護(hù)現(xiàn)場,然后把輸入緩沖寄存器中的數(shù)據(jù)傳送到某一特定單元中去,同時(shí)將等待輸入完成的那個(gè)進(jìn)程喚醒,進(jìn)入就緒狀態(tài),最后恢復(fù)現(xiàn)場,并返回到被中斷的進(jìn)程繼續(xù)執(zhí)行。(5)在以后的某一時(shí)刻,操作系統(tǒng)進(jìn)程調(diào)度程序選中提出的請求并得到獲取數(shù)據(jù)的進(jìn)程,該進(jìn)程從約定的內(nèi)存特定單元中取出數(shù)據(jù)繼續(xù)工作1/11/2023向設(shè)備控制器發(fā)讀命令讀設(shè)備控制器的狀態(tài)檢查狀態(tài)從設(shè)備控制器中讀入字向存儲(chǔ)器中寫字傳送完成完成下條指令CPU->I/OCPU->內(nèi)存I/O->CPU出錯(cuò)I/O->CPU未完成CPU做其他中斷1/11/2023例如,打印機(jī)每打一行需要60ms,在查詢方式中,大約有59.99ms,CPU都處于循環(huán)等待中,而以中斷方式處理的話,CPU僅花費(fèi)0.1ms時(shí)間來處理I/O設(shè)備發(fā)來的中斷,其余的59.99ms都可以用來做別的事情。所以中斷方式比查詢方式節(jié)省CPU的時(shí)間。1/11/2023

中斷方式的方法是當(dāng)設(shè)備完成I/O操作后,主動(dòng)向CPU報(bào)告,CPU只用少量時(shí)間處理I/O中斷,并將數(shù)據(jù)取回。在多道程序中的環(huán)境下,一個(gè)程序或進(jìn)程啟動(dòng)I/O設(shè)備并允許中斷后,不是自己主動(dòng)去執(zhí)行別的程序或繼續(xù)執(zhí)行主流程,而是應(yīng)當(dāng)把自己掛起,控制權(quán)交還給進(jìn)程調(diào)度程序。在中斷處理程序中,完成指定的I/O操作之后應(yīng)把等待此結(jié)果的進(jìn)程喚醒,而后由進(jìn)程調(diào)度程序在適當(dāng)時(shí)機(jī)把此進(jìn)程投入運(yùn)行。1/11/2023某進(jìn)程其他進(jìn)程輸入中斷處理中斷調(diào)度調(diào)度喚醒啟動(dòng)I/O并允許中斷阻塞等待處理輸入的數(shù)據(jù)保護(hù)現(xiàn)場輸入處理喚醒等待進(jìn)程恢復(fù)現(xiàn)場多道程序下的中斷處理方式1/11/20234、特點(diǎn)

中斷控制方式比程序直接控制方式提高了CPU的利用率。每輸入輸出一個(gè)數(shù)據(jù)都會(huì)發(fā)生中斷,傳輸一組數(shù)據(jù)需要多次中斷,浪費(fèi)了CPU的處理時(shí)間。中斷控制方式應(yīng)用于現(xiàn)代計(jì)算機(jī)系統(tǒng)中。1/11/20231、DMA控制方式的引入

引入的原因:中斷處理方式提高了主機(jī)的利用率,但是每次中斷都要保存現(xiàn)場信息,恢復(fù)現(xiàn)場等,仍占用CPU時(shí)間。在傳送數(shù)據(jù)量大、速度高的情況下,中斷方式就不適應(yīng)了。為了進(jìn)一步減少CPU對外設(shè)操作干預(yù)而引入直接存儲(chǔ)器訪問方式。5.2.3直接內(nèi)存存取方式1/11/20232、DMA控制方式

是指對I/O設(shè)備的控制由DMA控制器完成,在DMA控制器的作用下,設(shè)備和主存之間可以成批地進(jìn)行數(shù)據(jù)交換,而不用CPU的干涉。5.2.3直接內(nèi)存存取方式1/11/2023 3、DMA控制器的組成:DMA控制器的組成命令控制器與設(shè)備接口主機(jī)—控制器接口內(nèi)存CPU系統(tǒng)總線I/O控制邏輯CRMARDCDR┇count1/11/20234、DMA工作步驟:

①當(dāng)進(jìn)程要求設(shè)備輸入一批數(shù)據(jù)時(shí),CPU將設(shè)備存放輸入數(shù)據(jù)的內(nèi)存始址以及要傳送的字節(jié)數(shù)分別送入DMA控制器中的地址寄存器和傳送字節(jié)計(jì)數(shù)器;另外,還要將中斷位和啟動(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。③輸入設(shè)備不斷地挪用CPU工作周期,將數(shù)據(jù)寄存器中的數(shù)據(jù)源源不斷地寫入內(nèi)存,直到所要求的字節(jié)全部傳送完畢。④DMA控制器在傳送字節(jié)數(shù)完成時(shí),通過中斷請求線發(fā)出中斷信號,CPU收到中斷信號后轉(zhuǎn)中斷處理程序,喚醒等待輸入完成的進(jìn)程,并返回被中斷的程序。⑤在以后的某個(gè)時(shí)刻,進(jìn)程調(diào)度程序選中提出請求輸入的進(jìn)程,該進(jìn)程從指定的內(nèi)存始址取出數(shù)據(jù)做進(jìn)一步處理。1/11/2023CPU向控制器發(fā)出啟動(dòng)DMA通知和有關(guān)參數(shù)控制器向內(nèi)存發(fā)出詢問請求訪問內(nèi)存(讀、寫)計(jì)數(shù)器減1結(jié)束否發(fā)中斷NYDMA的實(shí)現(xiàn)流程1/11/20235、DMA方式特點(diǎn):

(1)數(shù)據(jù)傳送的基本單位是數(shù)據(jù)塊; (2)所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存,或者相反; (3)僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí),才需中斷CPU,請求干預(yù),整塊數(shù)據(jù)的傳送是在DMA控制器控制下完成的。

缺點(diǎn):

DMA方式只能完成簡單的數(shù)據(jù)傳送、計(jì)數(shù)、內(nèi)存地址加1或減1等操作,不能滿足復(fù)雜的I/O操作要求。1/11/20236、DMA方式與中斷的主要區(qū)別

(1)中斷方式是在數(shù)據(jù)緩沖寄存區(qū)滿后,發(fā)中斷請求,CPU進(jìn)行中斷處理;DMA方式則是在所要求傳送的數(shù)據(jù)塊全部傳送結(jié)束時(shí)要求CPU進(jìn)行中斷處理,大大減少了CPU進(jìn)行中斷處理的次數(shù)。(2)中斷方式的數(shù)據(jù)傳送是由CPU控制完成的;DMA方式則是在DMA控制器的控制下不經(jīng)過CPU控制完成的。1/11/20235.2.4I/O通道控制方式1、概念

通道控制方式是一種以主存為中心,是設(shè)備與主存直接交換數(shù)據(jù)的控制方式。CPU只需要發(fā)出啟動(dòng)指令,指出通道相應(yīng)的操作和輸入輸出設(shè)備,該指令就可以啟動(dòng)通道并使該通道從主存中調(diào)出相應(yīng)的通道指令執(zhí)行,完成一組數(shù)據(jù)塊的輸入/輸出。

1/11/20232、通道控制方式步驟

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

通道所需要的CPU干預(yù)更少,并可以實(shí)現(xiàn)CPU、通道和輸入輸出設(shè)備三者之間的并行操作,從而更有效地提高整個(gè)系統(tǒng)資源的利用率。通道控制方式適用于現(xiàn)代計(jì)算機(jī)系統(tǒng)中的大量數(shù)據(jù)交換。1/11/2023通道和DMA控制器的區(qū)別(1)一個(gè)DMA控制器只能連接同類外設(shè),且如果是多臺(tái)同類外設(shè),則它們只能是以串行方式工作。一個(gè)通道可以連接多個(gè)不同類型的設(shè)備控制器,而一個(gè)設(shè)備控制器又可以管理一臺(tái)或多臺(tái)外圍設(shè)備,這就構(gòu)成了典型的多級層次結(jié)構(gòu),眾多外設(shè)均可在通道控制下同時(shí)工作;(2)DMA控制是借助硬件完成數(shù)據(jù)交換的,而通道是執(zhí)行通道程序完成數(shù)據(jù)的;(3)DMA控制器需要CPU對多個(gè)外設(shè)進(jìn)行初始化。CPU只需發(fā)一個(gè)I/O指令啟動(dòng)通道,由通道自己完成外設(shè)的初始化。1/11/2023綜上所述,在前三種I/O控制方式中,CPU直接對設(shè)備控制器和I/O接口編程,可以簡化接口的設(shè)計(jì)。對于非DMA傳送,需要CPU實(shí)際去完成數(shù)據(jù)傳送。對于高速數(shù)據(jù)傳送可以使用DMA,但還是需要CPU設(shè)置設(shè)備控制器,初始化DMA操作和操作完畢去檢查端口傳送狀態(tài)。而通道不同于DMA控制器,它能夠去取和執(zhí)行它自己的指令;而且這些指令的功能已不僅僅是數(shù)據(jù)傳送,還包括檢索、分支轉(zhuǎn)移,甚至一些簡單的算術(shù)、邏輯運(yùn)算。1/11/2023大、中型計(jì)算機(jī)系統(tǒng)普遍用通道方式去控制設(shè)備完成I/O操作,以提高CPU與外設(shè),外設(shè)與外設(shè)并行的程度。一些小型機(jī)和絕大多數(shù)微型機(jī)都是以CPU直接控制設(shè)備接口和設(shè)備控制器以查詢、中斷或DMA方式完成I/O操作,以降低系統(tǒng)造價(jià)。1/11/2023思考題四

綜上所述的4種I/O控制方式,分別適合用于何種場合?1/11/2023課堂練習(xí)題1、從下面關(guān)于設(shè)備屬性的論述中,選擇一條正確的描述。()A.字符設(shè)備的一個(gè)基本特征是可尋址的,即能指定輸入時(shí)的源地址和輸出時(shí)的目標(biāo)地址B.共享設(shè)備必須是可尋址的和隨機(jī)訪問的設(shè)備C.共享設(shè)備是指在同一時(shí)刻,允許多個(gè)進(jìn)程同時(shí)訪問的設(shè)備D.在分配共享設(shè)備和獨(dú)占設(shè)備時(shí),都可能引起進(jìn)程死鎖2、()在一般大型計(jì)算機(jī)系統(tǒng)中,主機(jī)對外圍設(shè)備的控制可通過通道、控制器和設(shè)備三個(gè)層次來實(shí)現(xiàn)。從下述敘述中選出一條正確的敘述。A控制器可控制通道,設(shè)備在通道控制下工作B通道控制控制器,設(shè)備在控制器控制下工作C通道和控制器分別控制設(shè)備D控制器控制通道和設(shè)備的工作1/11/20231、通過硬件和軟件的擴(kuò)充,把原來獨(dú)立的設(shè)備改造成能為若干用戶共享的設(shè)備,這種設(shè)備稱為?。

2、引起中斷發(fā)生的事件稱為?。

3、如果I/O設(shè)備與存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)交換不經(jīng)過CPU來完成,這種數(shù)據(jù)交換方式是?。4、常用的I/O控制方式有程序I/O方式、?

、?、?.5、DMA是指允許?和?之間直接交換數(shù)據(jù)的設(shè)備。在DMA中必須設(shè)置地址寄存器,用于存放?,還必須設(shè)置?寄存器,用來暫存交換的數(shù)據(jù)。6、設(shè)備控制器是?和?之間的接口,它接受來自?的I/O命令,并用于控制?的工作。

7、按從屬關(guān)系對I/O設(shè)備分類,可分為系統(tǒng)設(shè)備和?兩類。1/11/20235.3緩沖管理5.3.1緩沖的引入

1、引入的原因(1)緩和CPU與輸入輸出設(shè)備間速度不匹配的矛盾(2)減少對CPU的中斷頻率,放寬對中斷響應(yīng)時(shí)間的限制。(3)提高CPU與輸入輸出設(shè)備間的并行性。1/11/20232、緩沖技術(shù)的實(shí)現(xiàn)思想

建立一個(gè)緩沖區(qū),當(dāng)進(jìn)程要執(zhí)行讀寫操作時(shí),首先向申請一塊內(nèi)存區(qū)域作為緩沖區(qū),然后,將要傳送的數(shù)據(jù)高速送到緩沖區(qū)。如果是讀操作,則根據(jù)進(jìn)程要求,把當(dāng)前需要的邏輯記錄從緩沖區(qū)中選出并傳送給進(jìn)程。若為寫操作,則不斷把數(shù)據(jù)填到緩沖區(qū),直到它被填滿為止。1/11/20233、實(shí)現(xiàn)緩沖的方法

(1)硬件緩沖。硬件緩沖采用專用硬件緩沖器,一般由外設(shè)自帶的專用寄存器構(gòu)成。(2)軟件緩沖。在內(nèi)存中專門開辟若干單元作為緩沖區(qū)為各種設(shè)備服務(wù)。1/11/20235.3.2單緩沖和雙緩沖一、單緩沖

單緩沖即是在發(fā)送者和接收者之間只有一個(gè)緩沖區(qū)過程:當(dāng)一個(gè)用戶進(jìn)程要求輸入數(shù)據(jù)時(shí),操作系統(tǒng)控制輸入設(shè)備將數(shù)據(jù)送往緩沖區(qū)存放,再送往用戶進(jìn)程的數(shù)據(jù)存儲(chǔ)區(qū)。1/11/2023特點(diǎn)在主存中只有一個(gè)緩沖區(qū)。對于塊設(shè)備,該緩沖區(qū)可以存放一塊數(shù)據(jù),對于字符設(shè)備,該緩沖區(qū)可以存放一行數(shù)據(jù)。設(shè)備和處理器對緩沖區(qū)的操作是串行的,傳輸速度慢。在任一時(shí)刻,只能進(jìn)行單向的數(shù)據(jù)傳輸,并且傳輸數(shù)據(jù)量較少。優(yōu)點(diǎn)是設(shè)計(jì)簡單,容易實(shí)現(xiàn)缺點(diǎn)是發(fā)送者和接收者不能并行工作1/11/2023二、雙緩沖

雙緩沖可在發(fā)送者與接收者之間設(shè)兩個(gè)緩沖區(qū)緩沖區(qū)1和緩沖區(qū)2。

過程:發(fā)送者將數(shù)據(jù)送滿緩沖區(qū)1,接收者從緩沖區(qū)1取數(shù)據(jù)時(shí),發(fā)送者則可將數(shù)據(jù)送入緩沖區(qū)2,當(dāng)接收者將緩沖區(qū)1取空后,又可到緩沖區(qū)2中取數(shù)據(jù),這時(shí)發(fā)送者再將數(shù)據(jù)送入緩沖區(qū)1。于是,發(fā)送者和接收者交替使用兩個(gè)緩沖區(qū),達(dá)到了并行工作的目的。1/11/2023特點(diǎn)在主存中設(shè)置兩個(gè)緩沖區(qū),完成數(shù)據(jù)的傳輸。兩個(gè)緩沖區(qū)可以交替使用,提高了處理器和輸入設(shè)備的并行操作能力。在任一時(shí)刻,可以進(jìn)行雙向的數(shù)據(jù)傳輸。一個(gè)緩沖區(qū)用于輸入,另一個(gè)用于輸出。適用于輸入/輸出、生產(chǎn)者/消費(fèi)者速度基本相匹配的情況。當(dāng)傳輸數(shù)據(jù)量較大,或者兩者的速度相差較遠(yuǎn)時(shí),雙緩沖區(qū)效率較低,還是不能解決兩者并行工作問題。1/11/2023三、循環(huán)緩沖

由于雙緩沖并不能真正解決實(shí)際系統(tǒng)中的并行操作,為了能夠進(jìn)一步提高系統(tǒng)操作的并行程度,可以通過增加緩沖區(qū)的個(gè)數(shù),即實(shí)現(xiàn)多緩沖區(qū)方式。為了更好地控制和使用這些緩沖區(qū),將多個(gè)緩沖區(qū)組成環(huán)形,稱為循環(huán)緩沖技術(shù)。循環(huán)緩沖技術(shù)是在內(nèi)存中分配大小相等的存儲(chǔ)區(qū)作為緩沖區(qū),并將這些緩沖區(qū)連接起來,每個(gè)緩沖區(qū)中有一個(gè)指向下一個(gè)緩沖區(qū)的指針,最后一個(gè)緩沖區(qū)的指針指向第一個(gè)緩沖區(qū)1/11/2023

為了充分利用這些緩沖資源,使進(jìn)程的處理和I/O設(shè)備的工作具有較好的連續(xù)性,提高設(shè)備的利用率,將緩沖區(qū)分為以下兩種類型:(1)空緩沖區(qū)。準(zhǔn)備接收輸入的數(shù)據(jù)。(2)滿緩沖區(qū)。用于存放可供使用的數(shù)據(jù)。過程:

當(dāng)循環(huán)緩沖接收數(shù)據(jù)時(shí),將待傳送的數(shù)據(jù)送入EMPTY指向的空緩沖區(qū),填滿后,讓EMPTY指向下一個(gè)空緩沖區(qū)。每次申請一個(gè)空緩沖區(qū)時(shí),需要判斷EMPTY是否與FULL相等。若相等,表示系統(tǒng)中已沒有空緩沖區(qū),輸入進(jìn)程需要等待;否則,可以繼續(xù)輸入。若要從緩沖區(qū)取數(shù)據(jù)時(shí),直接到FULL所指向的緩沖區(qū)中取,然后讓FULL指向下一個(gè)滿緩沖區(qū)。同樣,每次FULL指針移動(dòng)時(shí),需要判斷FULL是否與EMPTY相等。若相等,表示緩沖區(qū)已無數(shù)據(jù)可取,等待緩沖區(qū)滿后繼續(xù)操作。1/11/2023特點(diǎn):在主存中設(shè)置多個(gè)緩沖區(qū)。讀和寫可以并行處理,適用于某種特定的輸入輸出進(jìn)程和計(jì)算進(jìn)程,如輸入/輸出、生產(chǎn)者/消費(fèi)者速度不相匹配的情況。循環(huán)緩沖區(qū)屬于專用緩沖區(qū)。當(dāng)系統(tǒng)較大時(shí),使用多個(gè)這樣的緩沖區(qū)要消耗大量的主存空間,降低緩沖區(qū)的使用效率。兩個(gè)缺點(diǎn):(1)當(dāng)系統(tǒng)的資源較多時(shí),就要占用大量的緩沖區(qū),增加內(nèi)存開銷。(2)可能會(huì)出現(xiàn)某個(gè)設(shè)備的緩沖不夠用,而其他設(shè)備有多個(gè)空閑緩沖區(qū)的情況,導(dǎo)致循環(huán)緩沖的利用率不高。1/11/2023四、緩沖池上述的循環(huán)緩沖區(qū)僅適用于某特定的I/O進(jìn)程和計(jì)算進(jìn)程,是專用緩沖結(jié)構(gòu),而不是針對整個(gè)系統(tǒng)的公用緩沖結(jié)構(gòu)。當(dāng)系統(tǒng)較大時(shí),會(huì)有很多這樣的緩沖結(jié)構(gòu),這不僅要消耗大量的內(nèi)存空間,而且其利用率不高。為了提高緩沖區(qū)的利用率,目前普遍采用公用緩沖池結(jié)構(gòu),在緩沖池中設(shè)置了可供多個(gè)并發(fā)進(jìn)程共享的緩沖區(qū)。1/11/2023如圖所示,緩沖池是由多個(gè)大小相同的緩沖區(qū)組成,同管理程序統(tǒng)一對緩沖池進(jìn)行管理。當(dāng)某個(gè)進(jìn)程需要使用緩沖區(qū)時(shí),由管理程序?qū)⒕彌_池中合適的緩沖區(qū)分配給它,使用完畢,再將緩沖區(qū)釋放回緩沖池。

1/11/2023為便于管理,系統(tǒng)將相同類型的緩沖區(qū)鏈成一個(gè)隊(duì)列,緩沖池中共有三種隊(duì)列:(1)空緩沖隊(duì)列。(2)輸入隊(duì)列。(3)輸出隊(duì)列。這三種隊(duì)列各有指向其首緩沖區(qū)的隊(duì)首指針和指向尾緩沖區(qū)的隊(duì)尾指針。系統(tǒng)根據(jù)需要從這三種隊(duì)列中取出緩沖區(qū),對緩沖區(qū)進(jìn)行存數(shù)據(jù)、取數(shù)據(jù)操作。這些緩沖區(qū)稱為工作緩沖區(qū)。緩沖池中有四種工作緩沖區(qū):(1)收容輸入工作緩沖區(qū)。(2)提取輸入工作緩沖區(qū)。(3)收容輸出工作緩沖區(qū)。(4)提取輸出工作緩沖區(qū)。1/11/2023對緩沖池管理提供兩個(gè)基本操作(過程):(1)getbuf(type):用于從type所指定的隊(duì)列的隊(duì)首,摘下一個(gè)緩沖區(qū);(2)putbuf(type,number):用于將用參數(shù)number所指示的緩沖區(qū),掛在type隊(duì)列上。1/11/2023下面是緩沖池在具體的工作過程中,對緩沖池中的緩沖區(qū)實(shí)施管理和使用的情況:(1)當(dāng)輸入設(shè)備要進(jìn)行數(shù)據(jù)輸入時(shí),先從空緩沖區(qū)隊(duì)列的隊(duì)首摘取一個(gè)空緩沖區(qū),將它作為收容輸入工作緩沖區(qū),在其裝滿輸入數(shù)據(jù)后,再將它掛到輸入數(shù)據(jù)隊(duì)列的隊(duì)尾。(2)當(dāng)某個(gè)計(jì)算進(jìn)程需要輸入數(shù)據(jù)時(shí),從輸入隊(duì)列中取出一個(gè)緩沖區(qū)作為輸入工作緩沖區(qū),進(jìn)程從中提取數(shù)據(jù),取空后,將該緩沖區(qū)掛到空緩沖區(qū)隊(duì)列的隊(duì)尾。(3)當(dāng)某個(gè)計(jì)算進(jìn)程想輸出數(shù)據(jù)時(shí),從空緩沖區(qū)隊(duì)首摘下一個(gè)空緩沖區(qū)作為收容輸出工作緩沖區(qū),在其裝滿計(jì)算進(jìn)程的輸出數(shù)據(jù)后,將它掛到輸出隊(duì)列的隊(duì)尾。(4)當(dāng)輸出設(shè)備進(jìn)行數(shù)據(jù)輸出時(shí),從輸出隊(duì)列取下一個(gè)緩沖區(qū)作為提取輸出工作緩沖區(qū),當(dāng)其數(shù)據(jù)全送到輸出設(shè)備后,再將它掛到空緩沖隊(duì)列尾。1/11/2023特點(diǎn)

緩沖池結(jié)構(gòu)復(fù)雜,在主存中設(shè)置公用緩沖池,在池中設(shè)置多個(gè)可以供多個(gè)進(jìn)程共享的緩沖區(qū)。緩沖區(qū)既可以用于輸入,又可以用于輸出(即共享)。緩沖池的設(shè)置,減少了主存空間的消耗,提高了主存的利用率,適應(yīng)于現(xiàn)代操作系統(tǒng)。無論是多緩沖,還是緩沖池,由于緩沖器是臨界資源,因此在使用緩沖區(qū)時(shí)都有一個(gè)申請、釋放和互斥的問題。1/11/2023緩沖和緩存的差異

緩沖與緩存的基本原理和作用是相似的,如果不加區(qū)分的話,都可以稱之為緩沖。但兩者之間確實(shí)存在細(xì)微的差異:緩沖的作用在于協(xié)調(diào)速度不匹配的I/O傳輸過程;而緩存的作用在于減少對設(shè)備的實(shí)際訪問次數(shù)。這個(gè)差異導(dǎo)致了兩者的管理方法有所不同。1/11/2023

一般來說,緩沖區(qū)的生命期較短,當(dāng)進(jìn)程開始數(shù)據(jù)傳輸時(shí)建立,一旦數(shù)據(jù)傳輸完畢,將立即釋放緩沖區(qū),它只起暫存數(shù)據(jù)的作用。而緩存區(qū)的生命期較長,緩存的數(shù)據(jù)可以長時(shí)間地保存在緩存區(qū)中,服務(wù)于各種應(yīng)用目的。如文件系統(tǒng)中的i節(jié)點(diǎn)緩存、目錄項(xiàng)緩存等在整個(gè)系統(tǒng)運(yùn)行期間都存在于內(nèi)存中,由文件系統(tǒng)管理和使用。

1/11/2023另外,緩沖區(qū)的管理相對簡單,系統(tǒng)只需提供簡單的分配算法以及同步機(jī)制即可。而緩存區(qū)的管理則需要利用更復(fù)雜的算法,以提高訪問的命中率,最大限度地發(fā)揮緩存的作用。例如,磁盤的緩存算法要確定哪些數(shù)據(jù)應(yīng)存放在緩存中,哪些數(shù)據(jù)應(yīng)從緩存中撤出等。

在應(yīng)用上,進(jìn)程間的通信多使用緩沖技術(shù),而設(shè)備的I/O往往使用緩沖兼緩存技術(shù)。1/11/20235.4I/O軟件

分層結(jié)構(gòu)的底層是設(shè)備相關(guān)部分,稱為設(shè)備驅(qū)動(dòng)程序。它們直接和相應(yīng)的設(shè)備打交道,負(fù)責(zé)設(shè)備的具體驅(qū)動(dòng)和控制。上層通常是和設(shè)備無關(guān)的,這個(gè)部分接受來自用戶層的訪問請求,并把這些訪問請求傳給具體的設(shè)備驅(qū)動(dòng)程序,再將驅(qū)動(dòng)程序的執(zhí)行結(jié)果進(jìn)行轉(zhuǎn)換,傳給用戶1/11/20235.4I/O軟件的設(shè)計(jì)目標(biāo)和原則設(shè)備無關(guān)性錯(cuò)誤處理同步/異步傳輸必須能處理獨(dú)占設(shè)備和共享設(shè)備的I/O操作1/11/2023為實(shí)現(xiàn)以上四個(gè)目標(biāo),I/O系統(tǒng)應(yīng)組織成以下四個(gè)層次:(1)中斷處理程序(2)設(shè)備驅(qū)動(dòng)程序(3)與設(shè)備無關(guān)的I/O軟件(4)用戶空間的I/O軟件1/11/20235.4.2中斷處理程序

中斷事件通常由硬件發(fā)現(xiàn)。對出現(xiàn)的事件進(jìn)行處理的程序稱為中斷處理程序。

中斷處理程序是由操作系統(tǒng)處理的,屬于操作系統(tǒng)的組成部分。

中斷處理程序位于I/O系統(tǒng)的最低層。當(dāng)進(jìn)程需要進(jìn)行I/O操作時(shí),操作系統(tǒng)應(yīng)將該進(jìn)程掛起,即進(jìn)入阻塞,直至I/O操作結(jié)束并發(fā)生中斷。當(dāng)中斷發(fā)生時(shí),中斷處理程序執(zhí)行相應(yīng)的操作,以解除相應(yīng)進(jìn)程的阻塞狀態(tài)。1/11/2023一個(gè)完整的中斷處理過程包括以下四步:

(1)中斷請求:由中斷源向CPU提出中斷請求(軟中斷除外)。

(2)中斷響應(yīng):CPU在收到中斷請求并具備響應(yīng)條件的情況下,進(jìn)行中斷響應(yīng),以實(shí)現(xiàn)向中斷服務(wù)程序的過渡。(3)中斷服務(wù):CPU在執(zhí)行中斷服務(wù)程序期間,要進(jìn)行具體的中斷服務(wù)。(4)中斷返回:中斷服務(wù)程序的最后一條指令應(yīng)是中斷返回指令。當(dāng)執(zhí)行到該指令時(shí),便返回到被終止的程序,從斷點(diǎn)處繼續(xù)執(zhí)行。1/11/2023中斷請求:

中斷源需要通過中斷線送到中斷控制器的輸入端,這稱為中斷請求。

中斷控制器是一個(gè)硬件裝置,它負(fù)責(zé)捕獲中斷請求,并以一定的方式向CPU提交中斷。由于同時(shí)可能會(huì)有多個(gè)中斷信號產(chǎn)生,它們需要共用有限的中斷線。因此,當(dāng)設(shè)備要使用中斷線時(shí)就要先進(jìn)行中斷請求(IRQ),以獲得中斷線的使用權(quán)。1/11/2023中斷響應(yīng)

對中斷請求的整個(gè)處理過程是由硬件和軟件相結(jié)合的一整套中斷機(jī)構(gòu)實(shí)施的。中斷響應(yīng)由硬件實(shí)施,中斷處理主要由軟件實(shí)施。中斷響應(yīng)是CPU對中斷源中斷請求的響應(yīng),包括保護(hù)斷點(diǎn)和將程序轉(zhuǎn)向中斷服務(wù)程序的入口地址。

在處理器執(zhí)行完一條指令后,硬件的中斷裝置就立即檢查有無中斷事件發(fā)生。若無,繼續(xù)執(zhí)行下一條指令;若有,則停止現(xiàn)行進(jìn)程,由操作系統(tǒng)中的中斷處理程序占用處理器,這一過程稱為“中斷響應(yīng)”。1/11/2023一般說來,中斷響應(yīng)過程順序執(zhí)行下述動(dòng)作:

(1)中止當(dāng)前進(jìn)程的執(zhí)行;(2)對被響應(yīng)的中斷進(jìn)行應(yīng)答;

(3)保存當(dāng)前進(jìn)程的斷點(diǎn)信息(主要是程序狀態(tài)字PSW和程序計(jì)數(shù)器PC);

(4)轉(zhuǎn)到中斷處理程序入口。1/11/2023中斷處理

中斷處理主要由軟件實(shí)施。響應(yīng)中斷后,CPU轉(zhuǎn)去執(zhí)行相應(yīng)的中斷處理程序。每個(gè)中斷都對應(yīng)一個(gè)特定的中斷處理程序,因而系統(tǒng)中會(huì)有許多中斷處理程序,如時(shí)鐘中斷處理程序、鍵盤中斷處理程序等。在設(shè)備的驅(qū)動(dòng)程序中包含了對該設(shè)備所有中斷的處理程序。

1/11/2023中斷處理過程:

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

1.喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程2.保護(hù)被中斷進(jìn)程的現(xiàn)場3.分析中斷原因、轉(zhuǎn)入相應(yīng)的設(shè)備中斷處理程序4.進(jìn)行中斷處理5.恢復(fù)被中斷進(jìn)程的現(xiàn)場

中斷處理程序的工作是對傳輸?shù)慕Y(jié)果進(jìn)行必要的處理。1/11/2023多中斷的處理

對于中斷處理過程中又發(fā)生中斷,引起多中斷處理的問題,通常有兩種處理方法。

(1)處理一個(gè)中斷時(shí)禁止中斷對任何新中斷置之不理,在此期間發(fā)生的中斷將保持掛起狀態(tài),當(dāng)再次允許中斷時(shí),新中斷信號被處理器檢測到再予以處理(2)中斷按照優(yōu)先權(quán)分級允許優(yōu)先級高的中斷打斷優(yōu)先級低的中斷處理過程1/11/20235.4.3設(shè)備驅(qū)動(dòng)程序

設(shè)備驅(qū)動(dòng)程序是驅(qū)動(dòng)物理設(shè)備直接進(jìn)行各種操作的軟件,它可看作I/O系統(tǒng)和物理設(shè)備的接口。設(shè)備驅(qū)動(dòng)程序包括了所有與設(shè)備有關(guān)的代碼。每一個(gè)設(shè)備驅(qū)動(dòng)程序只處理一種設(shè)備或者一類密切相關(guān)的設(shè)備。

1/11/2023設(shè)備驅(qū)動(dòng)程序的功能:(1)實(shí)現(xiàn)邏輯設(shè)備到物理設(shè)備的轉(zhuǎn)換。(2)發(fā)出I/O命令,啟動(dòng)相應(yīng)的I/O設(shè)備,完成相應(yīng)的I/O操作。1/11/2023設(shè)備驅(qū)動(dòng)程序與設(shè)備控制器交互的大致過程

驅(qū)動(dòng)程序?qū)⒖刂泼畎l(fā)到控制器的命令寄存器中,控制器啟動(dòng)設(shè)備進(jìn)行I/O操作。當(dāng)數(shù)據(jù)準(zhǔn)備好后,驅(qū)動(dòng)程序負(fù)責(zé)與控制器交互,完成數(shù)據(jù)傳輸工作。控制器將設(shè)備產(chǎn)生的狀態(tài)信息存入狀態(tài)寄存器中,供驅(qū)動(dòng)程序查詢。當(dāng)有設(shè)備中斷事件發(fā)生時(shí),控制器發(fā)出中斷請求信號,系統(tǒng)進(jìn)入中斷處理程序進(jìn)行處理。1/11/2023設(shè)備處理方式有三類:

一是為每一類設(shè)備設(shè)置一個(gè)進(jìn)程,專門執(zhí)行這類設(shè)備的輸入輸出操作。二是在整個(gè)系統(tǒng)中設(shè)置一個(gè)輸入輸出進(jìn)程,專門負(fù)責(zé)對系統(tǒng)中所有各類設(shè)備的輸入輸出操作。三是不設(shè)置專門的設(shè)備處理進(jìn)程,只為各類設(shè)備設(shè)置相應(yīng)的設(shè)備處理程序,供用戶進(jìn)程或系統(tǒng)進(jìn)程調(diào)用。1/11/2023設(shè)備驅(qū)動(dòng)程序的特點(diǎn)

(1)驅(qū)動(dòng)程序主要是在請求輸入輸出的進(jìn)程與設(shè)備控制器之間的一個(gè)通信程序。(2)驅(qū)動(dòng)程序與輸入輸出設(shè)備的特性密切相關(guān)。因而對不同類型的設(shè)備應(yīng)配置不同的驅(qū)動(dòng)程序(3)驅(qū)動(dòng)程序與輸入輸出控制方式緊密相關(guān)。(4)驅(qū)動(dòng)程序與硬件緊密相關(guān),其部分被固化在ROM中。1/11/2023設(shè)備驅(qū)動(dòng)程序的處理過程:

1.將抽象要求轉(zhuǎn)化為具體要求2.檢查輸入輸出請求的合法性3.讀出和檢查設(shè)備的狀態(tài)4.傳送必要的參數(shù)5.設(shè)置工作方式6.啟動(dòng)輸入輸出設(shè)備1/11/20235.4.4設(shè)備獨(dú)立性軟件

為了實(shí)現(xiàn)設(shè)備獨(dú)立性而引入了邏輯設(shè)備和物理設(shè)備這兩個(gè)概念。在應(yīng)用程序中,使用邏輯設(shè)備名稱來請求使用某類設(shè)備;而系統(tǒng)在實(shí)際執(zhí)行時(shí),還必須使用物理設(shè)備名稱。

因此,系統(tǒng)須具有將邏輯設(shè)備名稱轉(zhuǎn)換為某物理設(shè)備名稱的功能,這非常類似于存儲(chǔ)器管理中所介紹的邏輯地址和物理地址的概念。

1/11/20231.邏輯設(shè)備與物理設(shè)備的概念

物理設(shè)備是一個(gè)具體的設(shè)備。系統(tǒng)為了能識別全部外設(shè),給每臺(tái)外設(shè)分配一個(gè)唯一不變的名字,稱為物理設(shè)備名。系統(tǒng)在實(shí)際工作時(shí)使用物理設(shè)備名。邏輯設(shè)備是對實(shí)際物理設(shè)備屬性的抽象,它并不限于某個(gè)具體設(shè)備。用戶在編程時(shí),不用關(guān)心系統(tǒng)具體配置了哪些設(shè)備,也不需要了解各種設(shè)備的物理特性,而只是按照慣例為所用的設(shè)備起個(gè)邏輯名字,稱為邏輯設(shè)備名。1/11/20232.設(shè)備獨(dú)立性

設(shè)備獨(dú)立性也稱設(shè)備無關(guān)性,指用戶編程時(shí)所使用的設(shè)備與實(shí)際使用的設(shè)備無關(guān)。為此,要求用戶程序?qū)斎胼敵鲈O(shè)備的請求采用邏輯設(shè)備名;而在程序?qū)嶋H執(zhí)行時(shí)使用物理設(shè)備名,它們之間的關(guān)系類似存儲(chǔ)管理中的邏輯地址和物理地址的關(guān)系。1/11/2023

用戶程序以邏輯設(shè)備名來請求使用某類設(shè)備時(shí),系統(tǒng)將在該類設(shè)備中,根據(jù)設(shè)備的使用情況,將任一臺(tái)合適的物理設(shè)備分配給程序。

在實(shí)現(xiàn)了設(shè)備獨(dú)立性的功能后,可帶來以下兩方面的好處:1)設(shè)備分配時(shí)的靈活性2)易于實(shí)現(xiàn)I/O重定向1/11/20235.4.5用戶層I/O軟件盡管大部分I/O軟件屬于操作系統(tǒng),但是也有一小部分是與用戶程序鏈接在一起的庫例程,甚至是在核心外運(yùn)行的完整程序。系統(tǒng)調(diào)用,包括I/O系統(tǒng)調(diào)用,通常是庫例程調(diào)用。在如下C語句:count=write(fd,buffer,nbyte);中,所調(diào)用的庫函數(shù)write()將與用戶程序鏈接在一起,并包含在運(yùn)行時(shí)的二進(jìn)制代碼中。這一類庫例程顯然也是I/O系統(tǒng)的一部分。標(biāo)準(zhǔn)I/O庫包含相當(dāng)多涉及I/O的庫例程,它們作為用戶程序的一部分運(yùn)行。1/11/2023總結(jié)I/O系統(tǒng)各層的主要功能如下:

(1)用戶進(jìn)程層執(zhí)行輸入/輸出系統(tǒng)調(diào)用,對I/O數(shù)據(jù)進(jìn)行格式化,為假脫機(jī)輸入/輸出做準(zhǔn)備。

(2)獨(dú)立于設(shè)備的軟件實(shí)現(xiàn)設(shè)備的命名、設(shè)備的保護(hù)、成塊處理、緩沖技術(shù)和設(shè)備分配。

(3)設(shè)備驅(qū)動(dòng)程序設(shè)置設(shè)備寄存器、檢查設(shè)備的執(zhí)行狀態(tài)。

(4)中斷處理程序負(fù)責(zé)I/O完成時(shí),喚醒設(shè)備驅(qū)動(dòng)程序進(jìn)程,進(jìn)行中斷處理。

(5)硬件層實(shí)現(xiàn)物理I/O的操作。1/11/20235.5設(shè)備分配

設(shè)備分配是由I/O系統(tǒng)中的設(shè)備分配程序完成的。每當(dāng)進(jìn)程提出I/O請求時(shí),設(shè)備分配程序便按照一定的策略把所需的設(shè)備分配給進(jìn)程使用。設(shè)備分配的原則是要盡可能地讓設(shè)備忙碌,充分發(fā)揮設(shè)備的使用效率。1/11/20235.5.1設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備控制表DCT控制器控制表COCT系統(tǒng)設(shè)備表SDT通道控制表CHCT(有時(shí)有)1/11/20231.設(shè)備控制表系統(tǒng)為每個(gè)設(shè)備配置一張?jiān)O(shè)備控制表,用于記錄設(shè)備的特性及與輸入輸出控制器連接的情況。

該表在系統(tǒng)生成時(shí)或在該設(shè)備和系統(tǒng)連接時(shí)創(chuàng)建,但表中的內(nèi)容則根據(jù)系統(tǒng)執(zhí)行情況而被動(dòng)態(tài)地修改。1/11/2023表目1┊設(shè)備控制表集合設(shè)備控制表設(shè)備控制表1/11/20232.系統(tǒng)設(shè)備表SDT系統(tǒng)設(shè)備表也稱為設(shè)備類表,整個(gè)系統(tǒng)配置一張。它記錄了已被連接到系統(tǒng)中的所有物理設(shè)備的情況,并為每個(gè)物理設(shè)備設(shè)一個(gè)表項(xiàng)。1/11/2023表目1┊系統(tǒng)設(shè)備表1/11/20233.控制器控制表COCT系統(tǒng)為每個(gè)控制器配置了一張控制器控制表,以反映控制器的使用狀態(tài)。1/11/2023表目1┊控制器表

控制器表其中控制器表中包括:控制器標(biāo)識符、控制器狀態(tài)、與控制器連接的通道表指針、控制器隊(duì)列的隊(duì)首指針和隊(duì)尾指針。與設(shè)備控制表的表目類似,不再重復(fù)。1/11/20234.通道控制表CHCT

系統(tǒng)為每個(gè)通道配置一張通道控制表,以反映通道的使用狀態(tài)。該表只在通道控制方式的系統(tǒng)中存在,每個(gè)通道一張。1/11/2023表目1┊通道表通道表其中通道表中包括:通道標(biāo)識符、通道狀態(tài)、與通道連接的控制器表首址、通道隊(duì)列的隊(duì)首指針和隊(duì)尾指針。與設(shè)備控制表的表目類似,不再重復(fù)。1/11/2023這幾張表的關(guān)系:

在系統(tǒng)設(shè)備表中有指向設(shè)備控制表的指針,在設(shè)備控制表中有指向該設(shè)備控制器控制表的指針,在控制器控制表中有指向與該控制器連接的通道控制表的指針。系統(tǒng)就是通過這種關(guān)系進(jìn)行設(shè)備的分配與回收的。1/11/20235.5.2設(shè)備分配時(shí)應(yīng)考慮的因素1.設(shè)備的使用性質(zhì)

按照設(shè)備自身的使用性質(zhì),可以采用以下三種不同的分配方式:獨(dú)享分配、共享分配、虛擬分配。獨(dú)享分配適用于大多數(shù)低速設(shè)備,如打印機(jī)。共享分配適應(yīng)于高速設(shè)備,如磁盤。虛擬分配適應(yīng)于虛擬設(shè)備。根據(jù)設(shè)備的使用性質(zhì)來決定一臺(tái)設(shè)備可以分給幾個(gè)進(jìn)程。1/11/20232.設(shè)備分配的算法

當(dāng)有多個(gè)進(jìn)程同時(shí)請求設(shè)備時(shí),系統(tǒng)應(yīng)采用某種策略決定將設(shè)備分配給哪個(gè)進(jìn)程使用。主要的分配策略有先來先服務(wù)和優(yōu)先級兩種。

(1)先來先服務(wù)算法根據(jù)進(jìn)程對某設(shè)備提出請求的先后次序,將這些進(jìn)程排成一個(gè)設(shè)備請求隊(duì)列,設(shè)備分配程序總是把設(shè)備首先分配給隊(duì)首的進(jìn)程。先來先服務(wù)的算法簡單、公平,但無法滿足某些緊迫進(jìn)程對I/O響應(yīng)時(shí)間的要求。(2)優(yōu)先級算法的策略是對高優(yōu)先權(quán)進(jìn)程的I/O請求也賦予高優(yōu)先權(quán),這有助于這種進(jìn)程盡快完成。在利用該算法形成設(shè)備隊(duì)列時(shí),將優(yōu)先級高的進(jìn)程排在設(shè)備請求隊(duì)列的前面,而對于同優(yōu)先級的I/O請求,則按先來先服務(wù)的原則排隊(duì)。1/11/20233.設(shè)備分配的安全性設(shè)備分配的安全性是指在設(shè)備分配中應(yīng)防止發(fā)生進(jìn)程的死鎖。設(shè)備分配的安全性采用的方法有靜態(tài)分配策略和動(dòng)態(tài)分配策略,它們可以防止進(jìn)程死鎖。

(1)靜態(tài)分配策略。靜態(tài)分配策略是在作業(yè)級進(jìn)行的,用戶作業(yè)開始執(zhí)行前,由系統(tǒng)一次分配給該作業(yè)所要求的全部設(shè)備、控制器和通道,直到該作業(yè)撤消為止。靜態(tài)分配不會(huì)出現(xiàn)死鎖,但是,設(shè)備利用率低。(2)動(dòng)態(tài)分配策略。動(dòng)態(tài)分配策略是在進(jìn)程執(zhí)行過程中,根據(jù)執(zhí)行的需要所進(jìn)行的設(shè)備分配。動(dòng)態(tài)分配提高了設(shè)備的利用率,但是分配不當(dāng),會(huì)造成進(jìn)程的死鎖。1/11/20234.設(shè)備的獨(dú)立性

設(shè)備的獨(dú)立性是指用戶在編制程序時(shí)所使用的設(shè)備與實(shí)際使用的設(shè)備無關(guān)。為此,要求用戶程序?qū)斎胼敵鲈O(shè)備的請求采用邏輯設(shè)備名,而在程序?qū)嶋H執(zhí)行時(shí)使用物理設(shè)備名,它們之間的關(guān)系類似存儲(chǔ)管理中的邏輯地址和物理地址的關(guān)系。1/11/20235.5.3獨(dú)占設(shè)備的分配程序在一個(gè)具有I/O通道的系統(tǒng)中,當(dāng)進(jìn)程提出I/O請求時(shí),對獨(dú)占設(shè)備的分配過程是:

首先為其進(jìn)行分配合適的設(shè)備,然后分配控制器,最后分配通道。1/11/20231.分配設(shè)備分配設(shè)備的過程如圖示:

當(dāng)進(jìn)程提出I/O請求后,首先根據(jù)進(jìn)程提出的邏輯設(shè)備名,查找到與之對應(yīng)的物理設(shè)備名,檢索系統(tǒng)設(shè)備表SDT,以獲得該設(shè)備的設(shè)備控制表DCT。查看設(shè)備控制表中設(shè)備的狀態(tài)。若設(shè)備忙,將該進(jìn)程PCB放入設(shè)備請求隊(duì)列中;否則,系統(tǒng)可根據(jù)一定的算法判定分配此設(shè)備給進(jìn)程是否安全。若不安全,將進(jìn)程的PCB塊也放入設(shè)備請求隊(duì)列。若有設(shè)備空閑,且分配安全,就將該設(shè)備分配給進(jìn)程。1/11/2023121第七章設(shè)備管理2.分配控制器在系統(tǒng)把設(shè)備分配給請求輸入輸出的進(jìn)程后,再到設(shè)備控制表中找到與該設(shè)備相連的控制器控制表,從該表的狀態(tài)字段中可知該控制器是否忙碌。若控制器忙,則將進(jìn)程插入到等待該控制器的隊(duì)列;否則,將該控制器分配給進(jìn)程,即修改控制器控制表,把狀態(tài)字段的值由“0”改為進(jìn)程名。1/11/2023122第七章設(shè)備管理3.分配通道在分配完設(shè)備控制器后,從控制器控制表中找到與該控制器相連的通道控制表,從該表的狀態(tài)字段中可知該通道是否忙碌。若通道處于忙碌狀態(tài),則將該進(jìn)程插入到等待該通道的隊(duì)列;否則,將該通道分配給進(jìn)程,即修改通道控制表,把狀態(tài)字段的值由“0”改為進(jìn)程名。1/11/2023123第七章設(shè)備管理設(shè)備回收

當(dāng)進(jìn)程撤消或設(shè)備使用完畢后,要進(jìn)行設(shè)備的回收,設(shè)備回收的過程如圖所示。設(shè)備回收的步驟:(1)系統(tǒng)根據(jù)進(jìn)程名在設(shè)備分配表中找到相應(yīng)的記錄,把設(shè)備狀態(tài)修改為“0”表示未分配,若該設(shè)備的等待隊(duì)列不空,則喚醒隊(duì)首進(jìn)程,進(jìn)行設(shè)備分配;(2)到該設(shè)備的控制器控制表中,把其狀態(tài)由進(jìn)程名改為“0”,若該控制器的等待隊(duì)列不空,則喚醒隊(duì)首進(jìn)程,進(jìn)行控制器分配;(3)到該控制器的通道控制表中,把其狀態(tài)由進(jìn)程名改為“0”,若該通道的等待隊(duì)列不空,則喚醒隊(duì)首進(jìn)程,進(jìn)行通道分配;(4)在系統(tǒng)設(shè)備表中,把回收設(shè)備臺(tái)數(shù)添加到“現(xiàn)存設(shè)備臺(tái)數(shù)”中。

1/11/2023124第七章設(shè)備管理對設(shè)備分配程序的改進(jìn)

以上設(shè)備分配程序有兩個(gè)特點(diǎn):

一是,進(jìn)程是以物理設(shè)備名來提出輸入輸出請求的。

二是,系統(tǒng)采用的是單通路的輸入輸出系統(tǒng)結(jié)構(gòu)。這樣的系統(tǒng)容易產(chǎn)生“瓶頸”現(xiàn)象。

為此,對設(shè)備分配程序做以下改進(jìn):

(1)增加設(shè)備的獨(dú)立性。進(jìn)程應(yīng)以邏輯設(shè)備名請求輸入輸出。系統(tǒng)首先根據(jù)系統(tǒng)設(shè)備表找到第一個(gè)該類設(shè)備的設(shè)備分配表,若該設(shè)備忙,則查找第二個(gè)該類設(shè)備的設(shè)備分配表,僅當(dāng)所有該類設(shè)備都忙時(shí),才把進(jìn)程掛在該類設(shè)備的等待隊(duì)列上。這樣通過增加設(shè)備的獨(dú)立性,提高了設(shè)備分配的安全性。1/11/2023125第七章設(shè)備管理(2)考慮多通路情況。系統(tǒng)采用多通路的輸入輸出系統(tǒng)結(jié)構(gòu),如圖示:即一個(gè)設(shè)備可以由多個(gè)控制器控制,一個(gè)控制器可以由多個(gè)通道控制(即增加圖中的虛線部分)。這樣,可以防止系統(tǒng)出現(xiàn)“瓶頸”現(xiàn)象。也就是對控制器和通道的分配,同樣經(jīng)過幾次反復(fù),只要有一個(gè)控制器或通道可用,系統(tǒng)就可以把它分配給進(jìn)程。這樣,就增加了分配控制器和通道的可能性,提高了設(shè)備分配的效率。返回1/11/2023126第七章設(shè)備管理5.5.4SPOOLing技術(shù)虛擬設(shè)備技術(shù)

虛擬設(shè)備:指通過某種虛擬技術(shù),將一臺(tái)物理設(shè)備變換成若干臺(tái)邏輯設(shè)備,從而實(shí)現(xiàn)多個(gè)用戶對該物理設(shè)備的同時(shí)共享。由于多臺(tái)邏輯設(shè)備實(shí)際上并不存在,而只是給用戶的一種感覺,因此被稱作虛擬設(shè)備。過程:當(dāng)進(jìn)程中請求獨(dú)享設(shè)備時(shí),系統(tǒng)將共享設(shè)備的一部分存儲(chǔ)空間分配給它。進(jìn)程與設(shè)備交換信息時(shí),系統(tǒng)把要交換的信息存放在這部分存儲(chǔ)空間,在適當(dāng)?shù)臅r(shí)候?qū)π畔⒆飨鄳?yīng)的處理。

1/11/2023SPOOLing的概念

為了緩和CPU的高速性與I/O設(shè)備低速性間的矛盾而引了脫機(jī)輸入、脫機(jī)輸出技術(shù),利用專門的外圍控制機(jī),將數(shù)據(jù)在低速I/O設(shè)備上與高速磁盤之間傳送。通過共享設(shè)備來模擬獨(dú)享設(shè)備所采用的操作是假脫機(jī)操作,或SPOOLing,即在聯(lián)機(jī)情況下外部設(shè)備設(shè)備同時(shí)操作。什么是SPOOLing系統(tǒng)?指在多道程序的環(huán)境下,利用多道程序中的一道或兩道程序來模擬外圍控制機(jī),從而在聯(lián)機(jī)的條件下實(shí)現(xiàn)脫機(jī)I/O的功能。1/11/2023SPOOLing系統(tǒng)的組成 1.輸入井和輸出井。2.輸入緩沖區(qū)和輸出緩沖區(qū)。3.輸入進(jìn)程和輸出進(jìn)程。1/11/2023假脫機(jī)技術(shù)的組成:(1)輸入井和輸出井。這是在磁盤上開辟的兩個(gè)大的存儲(chǔ)區(qū)。輸入井是模擬脫機(jī)輸入時(shí)的磁盤,用于收容輸入設(shè)備輸入的數(shù)據(jù)。輸出井是模擬脫機(jī)輸出時(shí)的磁盤,用于收容用戶程序的輸出數(shù)據(jù)。(2)輸入緩沖區(qū)和輸出緩沖區(qū)。它們是在主存中開辟的兩個(gè)緩沖區(qū)。輸入緩沖區(qū)用于暫存由輸入設(shè)備送來的數(shù)據(jù),以后再傳送到輸入井,輸出緩沖區(qū)用于暫存從輸出井送來的數(shù)據(jù),以后再傳送給輸出設(shè)備。(3)輸入進(jìn)程和輸出進(jìn)程。輸入進(jìn)程模擬脫機(jī)輸入時(shí)的外圍控制機(jī),將用戶要求的數(shù)據(jù)從輸入設(shè)備,通過輸入緩沖區(qū)送到輸入井。當(dāng)CPU需要數(shù)據(jù)時(shí),直接從輸入井讀入主存。輸出進(jìn)程模擬脫機(jī)輸出時(shí)的外圍控制機(jī),把用戶要求輸出的數(shù)據(jù),先從主存送到輸出井,待輸出設(shè)備空閑時(shí),再將輸出井中的數(shù)據(jù),經(jīng)過輸出緩沖區(qū)送到輸出設(shè)備上。1/11/2023思考題SPOOLing是如何實(shí)現(xiàn)輸入輸出的?

輸入進(jìn)程模擬脫機(jī)輸入時(shí)的外圍控制機(jī),將用戶要求的數(shù)據(jù)從輸入機(jī)通過輸入緩沖區(qū)再送到輸入井,當(dāng)CPU需要輸入數(shù)據(jù)時(shí),直接從輸入井讀入內(nèi)存;輸出進(jìn)程模擬脫機(jī)輸出時(shí)的外圍控制機(jī),把用戶要求輸出的數(shù)據(jù)先從內(nèi)存送到輸出井,待輸出設(shè)備空閑時(shí),再將輸出井中的數(shù)據(jù)經(jīng)過輸出緩沖區(qū)送到輸出設(shè)備上。1/11/2023用SPOOLing技術(shù)實(shí)現(xiàn)打印機(jī)共享例

系統(tǒng)在外存開辟了一個(gè)打印機(jī)輸出井和一個(gè)磁帶機(jī)輸入井。對用戶進(jìn)程來說,這就是一臺(tái)虛擬打印機(jī)和一臺(tái)虛擬磁帶機(jī)。當(dāng)進(jìn)程需要從磁帶機(jī)輸入數(shù)據(jù)時(shí),SPOOLing系統(tǒng)啟動(dòng)磁帶機(jī),將數(shù)據(jù)讀入磁帶機(jī)輸入井中,隨后進(jìn)程直接從輸入井提取數(shù)據(jù),不需再等待。當(dāng)進(jìn)程需要打印輸出時(shí),它們將數(shù)據(jù)高速地送入打印機(jī)輸出井,然后繼續(xù)運(yùn)行。在輸出井等待打印的數(shù)據(jù)形成打印隊(duì)列,由SPOOLing系統(tǒng)控制在適當(dāng)?shù)臅r(shí)候完成實(shí)際的打印工作。1/11/2023

虛擬設(shè)備除了可以減少進(jìn)程對設(shè)備的等待時(shí)間外,還可以解決多個(gè)進(jìn)程對獨(dú)占設(shè)備的競爭問題。例如,在設(shè)置了虛擬打印機(jī)的系統(tǒng)中,每個(gè)進(jìn)程都可以隨時(shí)執(zhí)行打印輸出操作,好像系統(tǒng)的打印機(jī)是自己獨(dú)占的。也就是說,使用虛擬設(shè)備永遠(yuǎn)不會(huì)引起進(jìn)程死鎖。1/11/2023

當(dāng)用戶進(jìn)程請求打印輸出時(shí),SPOOLing系統(tǒng)同意為它打印輸出,但并不真正立即把打印機(jī)分配給該用戶進(jìn)程,而只為它做兩件事:①由輸出進(jìn)程在輸出井中為之申請一個(gè)空閑磁盤塊區(qū),并將要打印的數(shù)據(jù)送入其中;②輸出進(jìn)程再為用戶進(jìn)程申請一張空白的用戶請求打印表,并將用戶的打印要求填入其中,再將該表掛到請求打印隊(duì)列上。1/11/2023思考題請說明SPOOLing系統(tǒng)是如何實(shí)現(xiàn)虛擬設(shè)備的?答:SPOOLing系統(tǒng)主要由輸入井和輸出井、輸入緩沖區(qū)和輸出緩沖區(qū)、輸入進(jìn)程和輸出三部分組成。當(dāng)要運(yùn)行用戶程序時(shí),由輸入進(jìn)程將用戶要求的程序和數(shù)據(jù)預(yù)先從輸入設(shè)備經(jīng)由輸入緩沖區(qū)送到輸入井,當(dāng)程序運(yùn)行需要輸入數(shù)據(jù)時(shí),直接從輸入井將數(shù)據(jù)讀入內(nèi)存。當(dāng)用戶程序要求輸出數(shù)據(jù)時(shí),由輸出進(jìn)程先將數(shù)據(jù)從內(nèi)存送到輸出井,待輸出設(shè)備空閑時(shí),再將輸出井中的數(shù)據(jù)經(jīng)由輸出緩沖區(qū)送到輸出設(shè)備上。由于磁盤是共享設(shè)備,輸入井及輸出井是磁盤上的兩個(gè)存儲(chǔ)區(qū)域,因此多個(gè)用戶進(jìn)程可以共享使用輸入井及輸出井,這樣,就將獨(dú)占型設(shè)備改造成了可共享使用的虛擬設(shè)備。1/11/2023SPOOLing系統(tǒng)特點(diǎn)1.提高了I/O速度。 2.將獨(dú)享設(shè)備改造為共享設(shè)備。 3.實(shí)現(xiàn)了虛擬設(shè)備功能。(1)提高了輸入輸出速度。SPOOLing技術(shù)引入了輸入井和輸出井,可以使輸入進(jìn)程、用戶進(jìn)程和輸出進(jìn)程同時(shí)工作,從而提高了輸入輸出速度。(2)將獨(dú)占設(shè)備改造為共享設(shè)備。由于SPOOLing技術(shù)把所有用戶進(jìn)程的輸出都送入輸出井,然后再由輸出進(jìn)程完成打印工作,而輸出井在磁盤上,為共享設(shè)備。這樣SPOOLing技術(shù)就把打印機(jī)等獨(dú)占設(shè)備改造成了共享設(shè)備。(3)實(shí)現(xiàn)了虛擬設(shè)備功能。由于SPOOLing技術(shù)實(shí)現(xiàn)了多個(gè)用戶進(jìn)程共同使用打印機(jī)這種獨(dú)占設(shè)備的情況,從而實(shí)現(xiàn)了把一個(gè)設(shè)備當(dāng)成多個(gè)設(shè)備來使用,即虛擬設(shè)備的功能。1/11/20235.6磁盤存儲(chǔ)器的管理5.6.1磁盤性能簡述磁盤的結(jié)構(gòu)

每個(gè)盤面上有許多磁道,從0開始按由外向里的次序順序編號,不同盤面上具有相同編號的磁道在同一個(gè)柱面上,把盤面上的磁道號稱為“柱面號”。

每個(gè)盤面有一個(gè)讀寫磁頭,所有的讀寫磁頭被固定在唯一的移動(dòng)臂上同時(shí)移動(dòng),把所有的讀寫磁頭按從上到下的次序從0開始進(jìn)行編號,稱為磁頭號。在磁盤初始化時(shí)把每個(gè)盤面劃分成相等數(shù)量的扇區(qū),按磁盤旋轉(zhuǎn)的反向從0開始給各扇區(qū)編號,稱為扇區(qū)號。

要確定一個(gè)塊所在的位置,必須給出三個(gè)參數(shù):柱面號、磁頭號、扇區(qū)號。1/11/2023磁盤的類型1)固定頭磁盤

這種磁盤在每條磁道上都有一讀/寫磁頭,所有的磁頭都被裝在一剛性磁臂中。通過這些磁頭可訪問所有各磁道,并進(jìn)行并行讀/寫,有效地提高了磁盤的I/O速度。這種結(jié)構(gòu)的磁盤主要用于大容量磁盤上。2)移動(dòng)頭磁盤

每一個(gè)盤面僅配有一個(gè)磁頭,也被裝入磁臂中。為能訪問該盤面上的所有磁道,該磁頭必須能移動(dòng)以進(jìn)行尋道??梢姡苿?dòng)磁頭僅能以串行方式讀/寫,致使其I/O速度較慢;但由于其結(jié)構(gòu)簡單,故仍廣泛應(yīng)用于中小型磁盤設(shè)備中。1/11/2023磁盤訪問時(shí)間啟動(dòng)磁盤執(zhí)行輸入輸出操作時(shí),要把移動(dòng)臂移動(dòng)到指定的柱面,再等待指定的扇區(qū)旋轉(zhuǎn)到磁頭位置下,然后讓指定的磁頭進(jìn)行讀寫,完成信息傳送。因此,執(zhí)行一次輸入輸出所花的時(shí)間有:

1)尋道時(shí)間——磁頭在移動(dòng)臂帶動(dòng)下移動(dòng)到指定柱面所花的時(shí)間。(Seek)2)延遲時(shí)間(Delay)——指定扇區(qū)旋轉(zhuǎn)到磁頭下所需的時(shí)間。3)傳輸時(shí)間——由磁頭進(jìn)行讀寫完成信息傳送的時(shí)間。1/11/20235.6.2磁盤調(diào)度1.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論