計(jì)算機(jī)操作系統(tǒng)設(shè)備管理課程_第1頁
計(jì)算機(jī)操作系統(tǒng)設(shè)備管理課程_第2頁
計(jì)算機(jī)操作系統(tǒng)設(shè)備管理課程_第3頁
計(jì)算機(jī)操作系統(tǒng)設(shè)備管理課程_第4頁
計(jì)算機(jī)操作系統(tǒng)設(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)系最親密部分。經(jīng)過本章學(xué)習(xí),讀者應(yīng)該掌握以下內(nèi)容:數(shù)據(jù)傳輸方式中止技術(shù)緩沖技術(shù)設(shè)備分配技術(shù)設(shè)備獨(dú)立性設(shè)備驅(qū)動10/2/第1頁5.1.I/O系統(tǒng)5.2.I/O控制方式

5.3.緩沖管理

5.4.I/O軟件5.5.設(shè)備分配5.6.磁盤存放器管理10/2/第2頁設(shè)備管理目標(biāo)

依據(jù)設(shè)備請求情況,按照一定算法,選擇和分配輸入輸出設(shè)備方便進(jìn)行數(shù)據(jù)傳輸操作;控制輸入輸入設(shè)備和CPU或內(nèi)存之間交換數(shù)據(jù),同時提升設(shè)備和設(shè)備之間、CPU和設(shè)備之間,以及進(jìn)程和進(jìn)程之間并行操作度,以使操作系統(tǒng)取得最正確效率;為用戶提供一個友好透明接口,把用戶和設(shè)備硬件特征分開,使得用戶在編制應(yīng)用程序時無須包括詳細(xì)設(shè)備,系統(tǒng)按用戶要求控制設(shè)備工作。10/2/第3頁設(shè)備管理功效設(shè)備分配與回收緩沖管理設(shè)備處理虛擬設(shè)備10/2/第4頁5.1.1I/O設(shè)備

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

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

如,顯示器、打印機(jī)、投影儀等。3.按設(shè)備使用特征分類10/2/第8頁獨(dú)占設(shè)備:這類設(shè)備在用戶作業(yè)整個運(yùn)行期間必須為此用戶所占有,即多個作業(yè)對某一外設(shè)訪問應(yīng)該是互斥,一旦系統(tǒng)將這類設(shè)備分配給某個作業(yè),便由該設(shè)備獨(dú)占,直至釋放該資源。大多數(shù)低速I/O設(shè)備,如用戶終端、打印機(jī)等共享設(shè)備:指在同一時間段內(nèi)能夠同時讓幾個作業(yè)使用設(shè)備,當(dāng)然,在某一時刻,該設(shè)備只能為一個作業(yè)服務(wù)。適應(yīng)于高速設(shè)備,如磁盤虛擬設(shè)備:依據(jù)設(shè)備使用性質(zhì)來決定一臺設(shè)備能夠分給幾個進(jìn)程以提升該設(shè)備使用率。如虛擬打印機(jī)4.按資源分配角度分類10/2/第9頁1、按()分類可將設(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è)備。10/2/第10頁

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

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

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

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

10/2/第16頁5.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有更多時間從事計(jì)算。這么就能夠?qū)崿F(xiàn)CPU計(jì)算和I/O操作并行工作。10/2/第17頁思索題一

什么是通道?通道有哪些類型?10/2/第18頁2、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è)并行處理能力。10/2/第19頁3、通道類型

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

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

字節(jié)多路通道連接低速或中速設(shè)備時,不會丟失信息。10/2/第20頁

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

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

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

數(shù)組多路通道技術(shù)相當(dāng)于通道程序多道程序設(shè)計(jì)技術(shù)。(3)數(shù)組多路通道10/2/第22頁CPU字節(jié)多路通道

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

I/O控制器

內(nèi)存

選擇通道成組多路通道

磁盤

I/O控制器

磁盤

I/O控制器

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

磁帶

磁帶

存在這三種通道計(jì)算機(jī)系統(tǒng)各硬件連接關(guān)系如圖所表示:10/2/第23頁思索題二設(shè)備管理中,什么是“瓶頸”現(xiàn)象?怎樣處理?10/2/第24頁通道命令和通道程序

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

通道程序存放在內(nèi)存中,由I/O指令開啟執(zhí)行。用戶請求I/O時,CPU對通道通信是向通道發(fā)出查詢、開啟和停頓通道程序工作,而通道向CPU通信則采取中止方式。其執(zhí)行過程如圖所表示。10/2/第26頁用戶I/O請求

查詢設(shè)備忙閑?

調(diào)用通道程序

執(zhí)行通道程序

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

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

以I/O指令開啟通道結(jié)束通道工作

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

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

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

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

它有自己通道指令,這些通道指令受CPU開啟,并在操作結(jié)束時向CPU發(fā)中止信號。

通道方式深入減輕了CPU工作負(fù)擔(dān),增加了計(jì)算機(jī)系統(tǒng)并行工作程度。10/2/第29頁5.1.4總線系統(tǒng)1、總線基本概念

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

它們主要差異在于處理器和外設(shè)并行工作方式和程度不一樣。10/2/第34頁查詢方式是最簡單I/O控制方式。在設(shè)備控制器中有兩個存放器,一個是狀態(tài)存放器,由其中一個狀態(tài)位值反應(yīng)設(shè)備忙或閑;另一個是數(shù)據(jù)緩沖存放器。當(dāng)設(shè)備開啟時,狀態(tài)存放器開啟位為1,此時外設(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查詢方式10/2/第35頁就緒向設(shè)備控制器發(fā)讀命令讀設(shè)備控制器狀態(tài)檢驗(yàn)狀態(tài)從設(shè)備控制器中讀入字向存放器中寫字傳送完成CPU->I/OCPU->內(nèi)存I/O->CPU犯錯I/O->CPU完成下條指令未完成未就緒10/2/第36頁步驟:

(1)當(dāng)用戶需要輸入數(shù)據(jù)時,由處理器向設(shè)備控制器發(fā)出一條輸入輸出指令,開啟設(shè)備進(jìn)行輸入

(2)當(dāng)用戶進(jìn)程需要向設(shè)備輸出數(shù)據(jù)時,也必須一樣發(fā)出開啟命令開啟設(shè)備輸出,并等候輸出操作完成。特點(diǎn):

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

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

5.2.2中止方式10/2/第38頁1、中止概念

所謂中止,是指處理機(jī)在執(zhí)行進(jìn)程過程中,因?yàn)橐恍┦录霈F(xiàn),中止當(dāng)前進(jìn)程運(yùn)行,轉(zhuǎn)而去處理出現(xiàn)事件,待處理完成后返回原來被中止處繼續(xù)執(zhí)行或調(diào)度其它進(jìn)程執(zhí)行。2、中止源

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

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

中止控制方式比程序直接控制方式提升了CPU利用率。每輸入輸出一個數(shù)據(jù)都會發(fā)生中止,傳輸一組數(shù)據(jù)需要屢次中止,浪費(fèi)了CPU處理時間。中止控制方式應(yīng)用于當(dāng)代計(jì)算機(jī)系統(tǒng)中。10/2/第45頁1、DMA控制方式引入

引入原因:中止處理方式提升了主機(jī)利用率,不過每次中止都要保留現(xiàn)場信息,恢復(fù)現(xiàn)場等,仍占用CPU時間。在傳送數(shù)據(jù)量大、速度高情況下,中止方式就不適應(yīng)了。為了深入降低CPU對外設(shè)操作干預(yù)而引入直接存放器訪問方式。5.2.3直接內(nèi)存存取方式10/2/第46頁2、DMA控制方式

是指對I/O設(shè)備控制由DMA控制器完成,在DMA控制器作用下,設(shè)備和主存之間能夠成批地進(jìn)行數(shù)據(jù)交換,而不用CPU干涉。5.2.3直接內(nèi)存存取方式10/2/第47頁

3、DMA控制器組成:DMA控制器組成命令控制器與設(shè)備接口主機(jī)—控制器接口內(nèi)存CPU系統(tǒng)總線I/O控制邏輯CRMARDCDR┇count10/2/第48頁4、DMA工作步驟:

①當(dāng)進(jìn)程要求設(shè)備輸入一批數(shù)據(jù)時,CPU將設(shè)備存放輸入數(shù)據(jù)內(nèi)存始址以及要傳送字節(jié)數(shù)分別送入DMA控制器中地址存放器和傳送字節(jié)計(jì)數(shù)器;另外,還要將中止位和開啟位置為1,以開啟設(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ù)完成時,經(jīng)過中止請求線發(fā)出中止信號,CPU收到中止信號后轉(zhuǎn)中止處理程序,喚醒等候輸入完成進(jìn)程,并返回被中止程序。⑤在以后某個時刻,進(jìn)程調(diào)度程序選中提出請求輸入進(jìn)程,該進(jìn)程從指定內(nèi)存始址取出數(shù)據(jù)做深入處理。10/2/第49頁CPU向控制器發(fā)出開啟DMA通知和相關(guān)參數(shù)控制器向內(nèi)存發(fā)出問詢請求訪問內(nèi)存(讀、寫)計(jì)數(shù)器減1結(jié)束否發(fā)中止NYDMA實(shí)現(xiàn)流程10/2/第50頁5、DMA方式特點(diǎn):

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

缺點(diǎn):

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

(1)中止方式是在數(shù)據(jù)緩沖存放區(qū)滿后,發(fā)中止請求,CPU進(jìn)行中止處理;

DMA方式則是在所要求傳送數(shù)據(jù)塊全部傳送結(jié)束時要求CPU進(jìn)行中止處理,大大降低了CPU進(jìn)行中止處理次數(shù)。(2)中止方式數(shù)據(jù)傳送是由CPU控制完成;

DMA方式則是在DMA控制器控制下不經(jīng)過CPU控制完成。10/2/第52頁5.2.4I/O通道控制方式1、概念

通道控制方式是一個以主存為中心,是設(shè)備與主存直接交換數(shù)據(jù)控制方式。

CPU只需要發(fā)出開啟指令,指出通道對應(yīng)操作和輸入輸出設(shè)備,該指令就能夠開啟通道并使該通道從主存中調(diào)出對應(yīng)通道指令執(zhí)行,完成一組數(shù)據(jù)塊輸入/輸出。

10/2/第53頁2、通道控制方式步驟

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

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

總而言之4種I/O控制方式,分別適適用于何種場所?10/2/第59頁課堂練習(xí)題1、從下面關(guān)于設(shè)備屬性敘述中,選擇一條正確描述。()A.字符設(shè)備一個基本特征是可尋址,即能指定輸入時源地址和輸出時目標(biāo)地址B.共享設(shè)備必須是可尋址和隨機(jī)訪問設(shè)備C.共享設(shè)備是指在同一時刻,允許多個進(jìn)程同時訪問設(shè)備D.在分配共享設(shè)備和獨(dú)占設(shè)備時,都可能引發(fā)進(jìn)程死鎖2、()在普通大型計(jì)算機(jī)系統(tǒng)中,主機(jī)對外圍設(shè)備控制可經(jīng)過通道、控制器和設(shè)備三個層次來實(shí)現(xiàn)。從下述敘述中選出一條正確敘述。A控制器可控制通道,設(shè)備在通道控制下工作B通道控制控制器,設(shè)備在控制器控制下工作C通道和控制器分別控制設(shè)備D控制器控制通道和設(shè)備工作10/2/第60頁1、經(jīng)過硬件和軟件擴(kuò)充,把原來獨(dú)立設(shè)備改造成能為若干用戶共享設(shè)備,這種設(shè)備稱為?。2、引發(fā)中止發(fā)生事件稱為?。3、假如I/O設(shè)備與存放設(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è)備和?兩類。10/2/第61頁5.3緩沖管理5.3.1緩沖引入

1、引入原因(1)緩解CPU與輸入輸出設(shè)備間速度不匹配矛盾(2)降低對CPU中止頻率,放寬對中止響應(yīng)時間限制。(3)提升CPU與輸入輸出設(shè)備間并行性。10/2/第62頁2、緩沖技術(shù)實(shí)現(xiàn)思想

建立一個緩沖區(qū),當(dāng)進(jìn)程要執(zhí)行讀寫操作時,首先向申請一塊內(nèi)存區(qū)域作為緩沖區(qū),然后,將要傳送數(shù)據(jù)高速送到緩沖區(qū)。假如是讀操作,則依據(jù)進(jìn)程要求,把當(dāng)前需要邏輯統(tǒng)計(jì)從緩沖區(qū)中選出并傳送給進(jìn)程。若為寫操作,則不停把數(shù)據(jù)填到緩沖區(qū),直到它被填滿為止。10/2/第63頁3、實(shí)現(xiàn)緩沖方法

(1)硬件緩沖。硬件緩沖采取專用硬件緩沖器,普通由外設(shè)自帶專用存放器組成。(2)軟件緩沖。在內(nèi)存中專門開辟若干單元作為緩沖區(qū)為各種設(shè)備服務(wù)。10/2/第64頁5.3.2單緩沖和雙緩沖一、單緩沖

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

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

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

因?yàn)殡p緩沖并不能真正處理實(shí)際系統(tǒng)中并行操作,為了能夠深入提升系統(tǒng)操作并行程度,能夠經(jīng)過增加緩沖區(qū)個數(shù),即實(shí)現(xiàn)多緩沖區(qū)方式。為了更加好地控制和使用這些緩沖區(qū),將多個緩沖區(qū)組成環(huán)形,稱為循環(huán)緩沖技術(shù)。循環(huán)緩沖技術(shù)是在內(nèi)存中分配大小相等存放區(qū)作為緩沖區(qū),并將這些緩沖區(qū)連接起來,每個緩沖區(qū)中有一個指向下一個緩沖區(qū)指針,最終一個緩沖區(qū)指針指向第一個緩沖區(qū)10/2/第69頁

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

10/2/第73頁為便于管理,系統(tǒng)將相同類型緩沖區(qū)鏈成一個隊(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ū)。10/2/第74頁對緩沖池管理提供兩個基本操作(過程):

(1)getbuf(type):用于從type所指定隊(duì)列隊(duì)首,摘下一個緩沖區(qū);(2)putbuf(type,number):用于將用參數(shù)number所指示緩沖區(qū),掛在type隊(duì)列上。10/2/第75頁下面是緩沖池在詳細(xì)工作過程中,對緩沖池中緩沖區(qū)實(shí)施管理和使用情況:(1)當(dāng)輸入設(shè)備要進(jìn)行數(shù)據(jù)輸入時,先從空緩沖區(qū)隊(duì)列隊(duì)首摘取一個空緩沖區(qū),將它作為收容輸入工作緩沖區(qū),在其裝滿輸入數(shù)據(jù)后,再將它掛到輸入數(shù)據(jù)隊(duì)列隊(duì)尾。(2)當(dāng)某個計(jì)算進(jìn)程需要輸入數(shù)據(jù)時,從輸入隊(duì)列中取出一個緩沖區(qū)作為輸入工作緩沖區(qū),進(jìn)程從中提取數(shù)據(jù),取空后,將該緩沖區(qū)掛到空緩沖區(qū)隊(duì)列隊(duì)尾。(3)當(dāng)某個計(jì)算進(jìn)程想輸出數(shù)據(jù)時,從空緩沖區(qū)隊(duì)首摘下一個空緩沖區(qū)作為收容輸出工作緩沖區(qū),在其裝滿計(jì)算進(jìn)程輸出數(shù)據(jù)后,將它掛到輸出隊(duì)列隊(duì)尾。(4)當(dāng)輸出設(shè)備進(jìn)行數(shù)據(jù)輸出時,從輸出隊(duì)列取下一個緩沖區(qū)作為提取輸出工作緩沖區(qū),當(dāng)其數(shù)據(jù)全送到輸出設(shè)備后,再將它掛到空緩沖隊(duì)列尾。10/2/第76頁特點(diǎn)

緩沖池結(jié)構(gòu)復(fù)雜,在主存中設(shè)置公用緩沖池,在池中設(shè)置多個能夠供多個進(jìn)程共享緩沖區(qū)。緩沖區(qū)既能夠用于輸入,又能夠用于輸出(即共享)。緩沖池設(shè)置,降低了主存空間消耗,提升了主存利用率,適應(yīng)于當(dāng)代操作系統(tǒng)。不論是多緩沖,還是緩沖池,因?yàn)榫彌_器是臨界資源,所以在使用緩沖區(qū)時都有一個申請、釋放和互斥問題。10/2/第77頁緩沖和緩存差異

緩沖與緩存基本原理和作用是相同,假如不加區(qū)分話,都能夠稱之為緩沖。但二者之間確實(shí)存在細(xì)微差異:緩沖作用在于協(xié)調(diào)速度不匹配I/O傳輸過程;而緩存作用在于降低對設(shè)備實(shí)際訪問次數(shù)。這個差異造成了二者管理方法有所不一樣。10/2/第78頁

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

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

在應(yīng)用上,進(jìn)程間通信多使用緩沖技術(shù),而設(shè)備I/O往往使用緩沖兼緩存技術(shù)。10/2/第80頁5.4I/O軟件

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

(1)中止處理程序

(2)設(shè)備驅(qū)動程序

(3)與設(shè)備無關(guān)I/O軟件

(4)用戶空間I/O軟件10/2/第83頁5.4.2中止處理程序

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

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

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

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

(2)中止響應(yīng):CPU在收到中止請求并具備響應(yīng)條件情況下,進(jìn)行中止響應(yīng),以實(shí)現(xiàn)向中止服務(wù)程序過渡。

(3)中止服務(wù):CPU在執(zhí)行中止服務(wù)程序期間,要進(jìn)行詳細(xì)中止服務(wù)。

(4)中止返回:中止服務(wù)程序最終一條指令應(yīng)是中止返回指令。當(dāng)執(zhí)行到該指令時,便返回到被終止程序,從斷點(diǎn)處繼續(xù)執(zhí)行。10/2/第85頁中止請求:

中止源需要經(jīng)過中止線送到中止控制器輸入端,這稱為中止請求。

中止控制器是一個硬件裝置,它負(fù)責(zé)捕捉中止請求,并以一定方式向CPU提交中止。因?yàn)橥瑫r可能會有多個中止信號產(chǎn)生,它們需要共用有限中止線。所以,當(dāng)設(shè)備要使用中止線時就要先進(jìn)行中止請求(IRQ),以取得中止線使用權(quán)。10/2/第86頁中止響應(yīng)

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

在處理器執(zhí)行完一條指令后,硬件中止裝置就馬上檢驗(yàn)有沒有中止事件發(fā)生。若無,繼續(xù)執(zhí)行下一條指令;若有,則停頓現(xiàn)行進(jìn)程,由操作系統(tǒng)中中止處理程序占用處理器,這一過程稱為“中止響應(yīng)”。10/2/第87頁普通說來,中止響應(yīng)過程次序執(zhí)行下述動作:

(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)到中止處理程序入口。10/2/第88頁中止處理

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

10/2/第89頁中止處理過程:

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

1.喚醒被阻塞驅(qū)動程序進(jìn)程

2.保護(hù)被中止進(jìn)程現(xiàn)場

3.分析中止原因、轉(zhuǎn)入對應(yīng)設(shè)備中止處理程序

4.進(jìn)行中止處理

5.恢復(fù)被中止進(jìn)程現(xiàn)場

中止處理程序工作是對傳輸結(jié)果進(jìn)行必要處理。10/2/第91頁多中止處理

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

(1)處理一個中止時禁止中止對任何新中止置之不理,在此期間發(fā)生中止將保持掛起狀態(tài),當(dāng)再次允許中止時,新中止信號被處理器檢測到再給予處理

(2)中止按照優(yōu)先權(quán)分級允許優(yōu)先級高中止打斷優(yōu)先級低中止處理過程10/2/第92頁5.4.3設(shè)備驅(qū)動程序

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

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

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

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

(1)驅(qū)動程序主要是在請求輸入輸出進(jìn)程與設(shè)備控制器之間一個通信程序。

(2)驅(qū)動程序與輸入輸出設(shè)備特征親密相關(guān)。因而對不一樣類型設(shè)備應(yīng)配置不一樣驅(qū)動程序

(3)驅(qū)動程序與輸入輸出控制方式緊密相關(guān)。

(4)驅(qū)動程序與硬件緊密相關(guān),其部分被固化在ROM中。10/2/第97頁設(shè)備驅(qū)動程序處理過程:

1.將抽象要求轉(zhuǎn)化為詳細(xì)要求

2.檢驗(yàn)輸入輸出請求正當(dāng)性

3.讀出和檢驗(yàn)設(shè)備狀態(tài)

4.傳送必要參數(shù)

5.設(shè)置工作方式

6.開啟輸入輸出設(shè)備10/2/第98頁5.4.4設(shè)備獨(dú)立性軟件

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

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

10/2/第99頁1.邏輯設(shè)備與物理設(shè)備概念

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

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

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

在實(shí)現(xiàn)了設(shè)備獨(dú)立性功效后,可帶來以下兩方面好處:

1)設(shè)備分配時靈活性

2)易于實(shí)現(xiàn)I/O重定向10/2/第102頁5.4.5用戶層I/O軟件盡管大部分I/O軟件屬于操作系統(tǒng),不過也有一小部分是與用戶程序鏈接在一起庫例程,甚至是在關(guān)鍵外運(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)行時二進(jìn)制代碼中。這一類庫例程顯然也是I/O系統(tǒng)一部分。標(biāo)準(zhǔn)I/O庫包含相當(dāng)多包括I/O庫例程,它們作為用戶程序一部分運(yùn)行。10/2/第103頁總結(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ū)動程序設(shè)置設(shè)備存放器、檢驗(yàn)設(shè)備執(zhí)行狀態(tài)。

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

(5)硬件層實(shí)現(xiàn)物理I/O操作。10/2/第104頁5.5設(shè)備分配

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

該表在系統(tǒng)生成時或在該設(shè)備和系統(tǒng)連接時創(chuàng)建,但表中內(nèi)容則依據(jù)系統(tǒng)執(zhí)行情況而被動態(tài)地修改。10/2/第107頁表目1┊設(shè)備控制表集合設(shè)備控制表設(shè)備控制表10/2/第108頁2.系統(tǒng)設(shè)備表SDT

系統(tǒng)設(shè)備表也稱為設(shè)備類表,整個系統(tǒng)配置一張。它統(tǒng)計(jì)了已被連接到系統(tǒng)中全部物理設(shè)備情況,并為每個物理設(shè)備設(shè)一個表項(xiàng)。10/2/第109頁表目1┊系統(tǒng)設(shè)備表10/2/第110頁3.控制器控制表COCT

系統(tǒng)為每個控制器配置了一張控制器控制表,以反應(yīng)控制器使用狀態(tài)。10/2/第111頁表目1┊控制器表

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

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

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

按照設(shè)備本身使用性質(zhì),能夠采取以下三種不一樣分配方式:獨(dú)享分配、共享分配、虛擬分配。獨(dú)享分配適合用于大多數(shù)低速設(shè)備,如打印機(jī)。共享分配適應(yīng)于高速設(shè)備,如磁盤。虛擬分配適應(yīng)于虛擬設(shè)備。依據(jù)設(shè)備使用性質(zhì)來決定一臺設(shè)備能夠分給幾個進(jìn)程。10/2/第116頁2.設(shè)備分配算法

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

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

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

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

首先為其進(jìn)行分配適當(dāng)設(shè)備,然后分配控制器,最終分配通道。10/2/第120頁1.分配設(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)程。10/2/第121頁2.分配控制器在系統(tǒng)把設(shè)備分配給請求輸入輸出進(jìn)程后,再到設(shè)備控制表中找到與該設(shè)備相連控制器控制表,從該表狀態(tài)字段中可知該控制器是否忙碌。若控制器忙,則將進(jìn)程插入到等候該控制器隊(duì)列;不然,將該控制器分配給進(jìn)程,即修改控制器控制表,把狀態(tài)字段值由“0”改為進(jìn)程名。10/2/第122頁3.分配通道在分配完設(shè)備控制器后,從控制器控制表中找到與該控制器相連通道控制表,從該表狀態(tài)字段中可知該通道是否忙碌。若通道處于忙碌狀態(tài),則將該進(jìn)程插入到等候該通道隊(duì)列;不然,將該通道分配給進(jìn)程,即修改通道控制表,把狀態(tài)字段值由“0”改為進(jìn)程名。10/2/第123頁設(shè)備回收

當(dāng)進(jìn)程撤消或設(shè)備使用完成后,要進(jìn)行設(shè)備回收,設(shè)備回收過程如圖所表示。設(shè)備回收步驟:(1)系統(tǒng)依據(jù)進(jìn)程名在設(shè)備分配表中找到對應(yīng)統(tǒng)計(jì),把設(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è)備臺數(shù)添加到“現(xiàn)存設(shè)備臺數(shù)”中。

10/2/第124頁對設(shè)備分配程序改進(jìn)

以上設(shè)備分配程序有兩個特點(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è)備表找到第一個該類設(shè)備設(shè)備分配表,若該設(shè)備忙,則查找第二個該類設(shè)備設(shè)備分配表,僅當(dāng)全部該類設(shè)備都忙時,才把進(jìn)程掛在該類設(shè)備等候隊(duì)列上。這么經(jīng)過增加設(shè)備獨(dú)立性,提升了設(shè)備分配安全性。10/2/第125頁(2)考慮多通路情況。系統(tǒng)采取多通路輸入輸出系統(tǒng)結(jié)構(gòu),如圖示:即一個設(shè)備能夠由多個控制器控制,一個控制器能夠由多個通道控制(即增加圖中虛線部分)。這么,能夠預(yù)防系統(tǒng)出現(xiàn)“瓶頸”現(xiàn)象。也就是對控制器和通道分配,一樣經(jīng)過幾次重復(fù),只要有一個控制器或通道可用,系統(tǒng)就能夠把它分配給進(jìn)程。這么,就增加了分配控制器和通道可能性,提升了設(shè)備分配效率。返回10/2/第126頁5.5.4SPOOLing技術(shù)虛擬設(shè)備技術(shù)

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

10/2/第127頁SPOOLing概念

為了緩解CPU高速性與I/O設(shè)備低速性間矛盾而引了脫機(jī)輸入、脫機(jī)輸出技術(shù),利用專門外圍控制機(jī),將數(shù)據(jù)在低速I/O設(shè)備上與高速磁盤之間傳送。經(jīng)過共享設(shè)備來模擬獨(dú)享設(shè)備所采取操作是假脫機(jī)操作,或SPOOLing,即在聯(lián)機(jī)情況下外部設(shè)備設(shè)備同時操作。什么是SPOOLing系統(tǒng)?指在多道程序環(huán)境下,利用多道程序中一道或兩道程序來模擬外圍控制機(jī),從而在聯(lián)機(jī)條件下實(shí)現(xiàn)脫機(jī)I/O功效。10/2/第128頁SPOOLing系統(tǒng)組成

1.輸入井和輸出井。

2.輸入緩沖區(qū)和輸出緩沖區(qū)。

3.輸入進(jìn)程和輸出進(jìn)程。10/2/第129頁假脫機(jī)技術(shù)組成:(1)輸入井和輸出井。這是在磁盤上開辟兩個大存放區(qū)。輸入井是模擬脫機(jī)輸入時磁盤,用于收容輸入設(shè)備輸入數(shù)據(jù)。輸出井是模擬脫機(jī)輸出時磁盤,用于收容用戶程序輸出數(shù)據(jù)。(2)輸入緩沖區(qū)和輸出緩沖區(qū)。它們是在主存中開辟兩個緩沖區(qū)。輸入緩沖區(qū)用于暫存由輸入設(shè)備送來數(shù)據(jù),以后再傳送到輸入井,輸出緩沖區(qū)用于暫存從輸出井送來數(shù)據(jù),以后再傳送給輸出設(shè)備。(3)輸入進(jìn)程和輸出進(jìn)程。輸入進(jìn)程模擬脫機(jī)輸入時外圍控制機(jī),將用戶要求數(shù)據(jù)從輸入設(shè)備,經(jīng)過輸入緩沖區(qū)送到輸入井。當(dāng)CPU需要數(shù)據(jù)時,直接從輸入井讀入主存。輸出進(jìn)程模擬脫機(jī)輸出時外圍控制機(jī),把用戶要求輸出數(shù)據(jù),先從主存送到輸出井,待輸出設(shè)備空閑時,再將輸出井中數(shù)據(jù),經(jīng)過輸出緩沖區(qū)送到輸出設(shè)備上。10/2/第130頁思索題SPOOLing是怎樣實(shí)現(xiàn)輸入輸出?

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

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

虛擬設(shè)備除了能夠降低進(jìn)程對設(shè)備等候時間外,還能夠處理多個進(jìn)程對獨(dú)占設(shè)備競爭問題。比如,在設(shè)置了虛擬打印機(jī)系統(tǒng)中,每個進(jìn)程都能夠隨時執(zhí)行打印輸出操作,好像系統(tǒng)打印機(jī)是自己獨(dú)占。也就是說,使用虛擬設(shè)備永遠(yuǎn)不會引發(fā)進(jìn)程死鎖。10/2/第133頁

當(dāng)用戶進(jìn)程請求打印輸出時,SPOOLing系統(tǒng)同意為它打印輸出,但并不真正馬上把打印機(jī)分配給該用戶進(jìn)程,而只為它做兩件事:①由輸出進(jìn)程在輸出井中為之申請一個空閑磁盤塊區(qū),并將要打印數(shù)據(jù)送入其中;②輸出進(jìn)程再為用戶進(jìn)程申請一張空白用戶請求打印表,并將用戶打印要求填入其中,再將該表掛到請求打印隊(duì)列上。10/2/第134頁思索題請說明SPOOLing系統(tǒng)是怎樣實(shí)現(xiàn)虛擬設(shè)備?答:SPOOLing系統(tǒng)主要由輸入井和輸出井、輸入緩沖區(qū)和輸出緩沖區(qū)、輸入進(jìn)程和輸出三部分組成。當(dāng)要運(yùn)行用戶程序時,由輸入進(jìn)程將用戶要求程序和數(shù)據(jù)預(yù)先從輸入設(shè)備經(jīng)由輸入緩沖區(qū)送到輸入井,當(dāng)程序運(yùn)行需要輸入數(shù)據(jù)時,直接從輸入井將數(shù)據(jù)讀入內(nèi)存。當(dāng)用戶程序要求輸出數(shù)據(jù)時,由輸出進(jìn)程先將數(shù)據(jù)從內(nèi)存送到輸出井,待輸出設(shè)備空閑時,再將輸出井中數(shù)據(jù)經(jīng)由輸出緩沖區(qū)送到輸出設(shè)備上。因?yàn)榇疟P是共享設(shè)備,輸入井及輸出井是磁盤上兩個存放區(qū)域,所以多個用戶進(jìn)程能夠共享使用輸入井及輸出井,這么,就將獨(dú)占型設(shè)備改造成了可共享使用虛擬設(shè)備。10/2/第135頁SPOOLing系統(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)程同時工作,從而提升了輸入輸出速度。

(2)將獨(dú)占設(shè)備改造為共享設(shè)備。因?yàn)镾POOLing技術(shù)把全部用戶進(jìn)程輸出都送入輸出井,然后再由輸出進(jìn)程完成打印工作,而輸出井在磁盤上,為共享設(shè)備。這么SPOOLing技術(shù)就把打印機(jī)等獨(dú)占設(shè)備改造成了共享設(shè)備。

(3)實(shí)現(xiàn)了虛擬設(shè)備功效。因?yàn)镾POOLing技術(shù)實(shí)現(xiàn)了多個用戶進(jìn)程共同使用打印機(jī)這種獨(dú)占設(shè)備情況,從而實(shí)現(xiàn)了把一個設(shè)備當(dāng)成多個設(shè)備來使用,即虛擬設(shè)備功效。10/2/第136頁5.6磁盤存放器管理5.6.1磁盤性能簡述磁盤結(jié)構(gòu)

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

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

要確定一個塊所在位置,必須給出三個參數(shù):柱面號、磁頭號、扇區(qū)號。10/2/第137頁磁盤類型

1)固定頭磁盤

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

2)移動頭磁盤

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

1)尋道時間——磁頭在移動臂帶動下移動到指定柱面所花時間。(Seek)

2)延遲時間(Delay)——指定扇區(qū)旋轉(zhuǎn)到磁頭下所需時間。

3)傳輸時間——由磁頭進(jìn)行讀寫完成信息傳送時間。10/2/第139頁5.6.2磁盤調(diào)度1.先進(jìn)先服務(wù)算法FCFS

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論