版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
設(shè)備控制器是計算機中的一個實體,主要職責(zé)是控制一個或多個I/O設(shè)備,以實現(xiàn)I/O設(shè)備和計算機之間的數(shù)據(jù)交換。它是CPU與I/O設(shè)備之間的接口,接收從CPU發(fā)來的命令,并去控制I/O設(shè)備工作,使處理機從繁雜的設(shè)備控制事務(wù)中解脫出來。第七章設(shè)備管理7.2I/O控制方式7.3I/O系統(tǒng)7.4磁盤管理7.5緩沖管理7.2
I/O控制方式
7.2.1程序I/O方式7.2.2中斷驅(qū)動I/O控制方式7.2.3直接存儲器訪問(DMA)I/O控制方式
DMA控制器,使傳輸以字節(jié)為單位轉(zhuǎn)為以數(shù)據(jù)塊為單位。7.2.4I/O通道控制方式
使I/O的組織和數(shù)據(jù)的傳送,都能獨立進行,無需CPU干預(yù)。7.2
I/O控制方式
7.2.1程序I/O方式(程序直接控制方式)早期的計算機系統(tǒng)中,由于無中斷機構(gòu),處理機對I/O設(shè)備的控制采取程序I/O(ProgrammedI/O)方式,或稱為忙—等待方式,即在處理機向控制器發(fā)出一條I/O指令啟動輸入設(shè)備輸入數(shù)據(jù)時,要同時把狀態(tài)寄存器中的忙/閑標(biāo)志busy置為1,然后便不斷地循環(huán)測試busy。當(dāng)busy=1時,表示輸入機尚未輸完一個字(符),處理機應(yīng)繼續(xù)對該標(biāo)志進行測試,直至busy=0,表明輸入機已將輸入數(shù)據(jù)送入控制器的數(shù)據(jù)寄存器中。于是處理機將數(shù)據(jù)寄存器中的數(shù)據(jù)取出,送入內(nèi)存指定單元中,這樣便完成了一個字(符)的I/O。接著再去啟動讀下一個數(shù)據(jù),并置busy=1。程序I/O方式流程圖
7.2.2中斷驅(qū)動I/O控制方式
進程執(zhí)行過程中發(fā)i/o請求進程轉(zhuǎn)入睡眠狀態(tài)cpu調(diào)度新進程I/O完畢,設(shè)備控制器發(fā)中斷信號,cpu收到中斷,處理中斷并接收數(shù)據(jù)使發(fā)出I/O請求的進程就緒cpu可以調(diào)度一個進程執(zhí)行。7.2.3直接存儲器訪問(DMA)I/O控制方式
1.DMA(DirectMemoryAccess)控制方式的引入雖然中斷驅(qū)動I/O比程序I/O方式更有效,但須注意,它仍是以字(節(jié))為單位進行I/O的,每當(dāng)完成一個字(節(jié))的I/O時,控制器便要向CPU請求一次中斷。換言之,采用中斷驅(qū)動I/O方式時的CPU是以字(節(jié))為單位進行干預(yù)的。如果將這種方式用于塊設(shè)備的I/O,顯然是極其低效的。例如,為了從磁盤中讀出1KB的數(shù)據(jù)塊,需要中斷CPU1K次。為了進一步減少CPU對I/O的干預(yù)而引入了直接存儲器訪問方式。該方式的特點是:
(1)數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊,即在CPU與I/O設(shè)備之間,每次傳送至少一個數(shù)據(jù)塊;
(2)所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存的,或者相反;
(3)僅在傳送一個或多個數(shù)據(jù)塊的開始和結(jié)束時,才需CPU干預(yù),整塊數(shù)據(jù)的傳送是在控制器的控制下完成的。可見,DMA方式較之中斷驅(qū)動方式,又是成百倍地減少了CPU對I/O的干預(yù),進一步提高了CPU與I/O設(shè)備的并行操作程度。
2.DMA控制器的組成
DMA控制器由三部分組成:主機與DMA控制器的接口;DMA控制器與塊設(shè)備的接口;I/O控制邏輯。下圖示出了DMA控制器的組成。這里主要介紹主機與控制器之間的接口。
圖5-8
DMA控制器的組成
為了實現(xiàn)在主機與控制器之間成塊數(shù)據(jù)的直接交換,必須在DMA控制器中設(shè)置如下四類寄存器:
(1)命令/狀態(tài)寄存器(CR)。用于接收從CPU發(fā)來的I/O命令,或有關(guān)控制信息,或設(shè)備的狀態(tài)。
(2)內(nèi)存地址寄存器(MAR)。在輸入時,它存放把數(shù)據(jù)從設(shè)備傳送到內(nèi)存的起始目標(biāo)地址;在輸出時,它存放由內(nèi)存到設(shè)備的內(nèi)存源地址。
(3)數(shù)據(jù)寄存器(DR)。用于暫存從設(shè)備到內(nèi)存,或從內(nèi)存到設(shè)備的數(shù)據(jù)。
(4)數(shù)據(jù)計數(shù)器(DC)。存放本次CPU要讀或?qū)懙淖?節(jié))數(shù)。
3.DMA工作過程我們以從磁盤讀入數(shù)據(jù)為例,來說明DMA方式的工作流程。當(dāng)CPU要從磁盤讀入一數(shù)據(jù)塊時,便向磁盤控制器發(fā)送一條讀命令。該命令被送到其中的命令寄存器(CR)中。同時,還須發(fā)送本次要將數(shù)據(jù)讀入的內(nèi)存起始目標(biāo)地址,該地址被送入內(nèi)存地址寄存器(MAR)中;本次要讀數(shù)據(jù)的字(節(jié))數(shù)則送入數(shù)據(jù)計數(shù)器(DC)中,還須將磁盤中的源地址直接送至DMA控制器的I/O控制邏輯上。然后,啟動DMA控制器進行數(shù)據(jù)傳送,以后,CPU便可去處理其它任務(wù)。此后,整個數(shù)據(jù)傳送過程便由DMA控制器進行控制。當(dāng)DMA控制器已從磁盤中讀入一個字(節(jié))的數(shù)據(jù)并送入數(shù)據(jù)寄存器(DR)后,再挪用一個存儲器周期,將該字(節(jié))傳送到MAR所指示的內(nèi)存單元中。接著便對MAR內(nèi)容加1,將DC內(nèi)容減1。若減1后DC內(nèi)容不為0,表示傳送未完,便繼續(xù)傳送下一個字(節(jié));否則,由DMA控制器發(fā)出中斷請求。圖5-9是DMA方式的工作流程。
圖5-9DMA方式的工作流程圖
7.2.4I/O通道控制方式
1.I/O通道控制方式的引入雖然DMA方式比起中斷方式來已經(jīng)顯著地減少了CPU的干預(yù),即已由以字(節(jié))為單位的干預(yù)減少到以數(shù)據(jù)塊為單位的干預(yù),但CPU每發(fā)出一條I/O指令,也只能去讀(或?qū)?一個連續(xù)的數(shù)據(jù)塊。而當(dāng)我們需要一次去讀多個數(shù)據(jù)塊且將它們分別傳送到不同的內(nèi)存區(qū)域,或者相反時,則須由CPU分別發(fā)出多條I/O指令及進行多次中斷處理才能完成。
I/O通道方式是DMA方式的發(fā)展,它可進一步減少CPU的干預(yù),即把對一個數(shù)據(jù)塊的讀(或?qū)?為單位的干預(yù)減少為對一組數(shù)據(jù)塊的讀(或?qū)?及有關(guān)的控制和管理為單位的干預(yù)。同時,又可實現(xiàn)CPU、通道和I/O設(shè)備三者的并行操作,從而更有效地提高整個系統(tǒng)的資源利用率。例如,當(dāng)CPU要完成一組相關(guān)的讀(或?qū)?操作及有關(guān)控制時,只需向I/O通道發(fā)送一條I/O指令,以給出其所要執(zhí)行的通道程序的首址和要訪問的I/O設(shè)備,通道接到該指令后,通過執(zhí)行通道程序便可完成CPU指定的I/O任務(wù)。
2.通道程序通道是通過執(zhí)行通道程序,并與設(shè)備控制器共同實現(xiàn)對I/O設(shè)備的控制的。通道程序是由一系列通道指令(或稱為通道命令)所構(gòu)成的。通道指令與一般的機器指令不同,在它的每條指令中都包含下列諸信息:
(1)操作碼。操作碼規(guī)定了指令所執(zhí)行的操作,如讀、寫、控制等操作。
(2)內(nèi)存地址。內(nèi)存地址標(biāo)明字符送入內(nèi)存(讀操作)和從內(nèi)存取出(寫操作)時的內(nèi)存首址。
(3)計數(shù)。該信息表示本條指令所要讀(或?qū)?數(shù)據(jù)的字節(jié)數(shù)。
(4)通道程序結(jié)束位P。該位用于表示通道程序是否結(jié)束。P=1表示本條指令是通道程序的最后一條指令。
(5)記錄結(jié)束標(biāo)志R。R=0表示本通道指令與下一條指令所處理的數(shù)據(jù)是同屬于一個記錄;R=1表示這是處理某記錄的最后一條指令。
下面示出了一個由六條通道指令所構(gòu)成的簡單的通道程序。該程序的功能是將內(nèi)存中不同地址的數(shù)據(jù)寫成多個記錄。其中,前三條指令是分別將813~892單元中的80個字符和1034~1173單元中的140個字符及5830~5889單元中的60個字符寫成一個記錄;第4條指令是單獨寫一個具有300個字符的記錄;第5、6條指令共寫含500個字符的記錄。
7.3
I/O系統(tǒng)設(shè)備分配與回收當(dāng)某進程向系統(tǒng)提出I/O請求時,設(shè)備分配程序按一定策略分配設(shè)備、控制器和通道,形成一條數(shù)據(jù)傳輸通路,以供主機和設(shè)備間信息交換。設(shè)備分配策略由于在多道程序系統(tǒng)中,進程數(shù)多于資源數(shù),引起資源的競爭。因此,要有一套合理的分配原則考慮的因素:I/O設(shè)備的固有屬性I/O設(shè)備的分配算法設(shè)備分配的安全性與設(shè)備的無關(guān)性
(1)獨占設(shè)備的分配
要考慮充分發(fā)揮效率,避免由于不合理的分配策略造成死鎖。
靜態(tài)分配:在運行前,完成設(shè)備分配;運行結(jié)束時,收回設(shè)備。
缺點:設(shè)備利用率低。
動態(tài)分配:在進程運行過程中,當(dāng)用戶提出設(shè)備要求時,進行分配,一旦停止使用,立即收回。
優(yōu)點:效率好
缺點:分配策略不好時,產(chǎn)生死鎖。
7.3.1設(shè)備分配1、設(shè)備的固有屬性(2)共享設(shè)備分配由于同時有多個進程同時訪問,且訪問頻繁,就會影響整個設(shè)備使用效率,影響系統(tǒng)效率。要考慮多個訪問請求到達時服務(wù)的順序,使平均非無時間越短越好。(3)虛擬設(shè)備分配可虛擬設(shè)備是指一臺物理設(shè)備在采用虛擬技術(shù)后,可變成多臺邏輯上的所謂虛擬設(shè)備,因而說,一臺可虛擬設(shè)備是可共享的設(shè)備,可以將它同時分配給多個進程使用,并對這些訪問該(物理)設(shè)備的先后次序進行控制。2、設(shè)備分配中的安全性從進程運行的安全性考慮,設(shè)備分配有以下兩種方式。(1)
安全分配方式在這種分配方式中,每當(dāng)進程發(fā)出I/O請求后,便進入阻塞狀態(tài),直到其I/O操作完成時才被喚醒。缺點是進程進展緩慢,即CPU與I/O設(shè)備是串行工作的。
(2)
不安全分配方式進程在發(fā)出I/O請求后仍繼續(xù)運行,需要時又發(fā)出第二個I/O請求、第三個I/O請求等。僅當(dāng)進程所請求的設(shè)備已被另一進程占用時,請求進程才進入阻塞狀態(tài)。3、設(shè)備的獨立性設(shè)備獨立性也稱設(shè)備無關(guān)性指用戶程序獨立于具體物理設(shè)備。即用戶只需說明使用哪類設(shè)備,如打印機或顯示器(邏輯設(shè)備名),無需指定某個具體設(shè)備(物理設(shè)備名)。操作系統(tǒng)統(tǒng)一合理地進行設(shè)備分配。設(shè)備獨立性的優(yōu)點設(shè)備分配時的靈活性易于實現(xiàn)I/O重定向設(shè)備獨立性的實現(xiàn)——邏輯設(shè)備表操作系統(tǒng)實現(xiàn)邏輯設(shè)備到物理設(shè)備的轉(zhuǎn)換。邏輯設(shè)備表(LogicalUnitTable,LUT)
LUT的設(shè)置:
整個系統(tǒng)一張(單用戶系統(tǒng))一個用戶一張(多用戶系統(tǒng))3、設(shè)備獨立性應(yīng)用程序獨立于具體使用的物理設(shè)備。使用邏輯設(shè)備名稱來請求使用某類設(shè)備;而系統(tǒng)在實際執(zhí)行時,還必須使用物理設(shè)備名稱。邏輯設(shè)備名稱轉(zhuǎn)換為某物理設(shè)備名稱的功能,類似于存儲器管理中所介紹的邏輯地址和物理地址的概念。設(shè)備獨立性,即不能因為設(shè)備的忙碌、故障或更換而影響程序的運行,向用戶屏蔽物理設(shè)備,呈現(xiàn)給用戶的一個操作簡單的邏輯設(shè)備。4、設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)
1、設(shè)備控制表(DCT)系統(tǒng)為每一個設(shè)備都配置了一張設(shè)備控制表,用于記錄本設(shè)備的情況,如圖所示。
圖設(shè)備控制表
2.控制器控制表、通道控制表和系統(tǒng)設(shè)備表
(1)控制器控制表(COCT)。系統(tǒng)為每一個控制器都設(shè)置了一張用于記錄本控制器情況的控制器控制表,如圖(a)所示。
(2)通道控制表(CHCT)。每個通道都配有一張通道控制表,如圖5-21(b)所示。
(3)系統(tǒng)設(shè)備表(SDT)。這是系統(tǒng)范圍的數(shù)據(jù)結(jié)構(gòu),其中記錄了系統(tǒng)中全部設(shè)備的情況。每個設(shè)備占一個表目,其中包括有設(shè)備類型、設(shè)備標(biāo)識符、設(shè)備控制表及設(shè)備驅(qū)動程序的入口等項,如圖(c)所示。
圖
COCT、CHCT和SDT5、設(shè)備分配算法對設(shè)備進行分配的算法,與進程調(diào)度的算法有些相似之處,但前者相對簡單,通常只采用以下兩種分配算法:
(1)先來先服務(wù)。當(dāng)有多個進程對同一設(shè)備提出I/O請求時,該算法是根據(jù)諸進程對某設(shè)備提出請求的先后次序,將這些進程排成一個設(shè)備請求隊列,設(shè)備分配程序總是把設(shè)備首先分配給隊首進程。
(2)優(yōu)先級高者優(yōu)先。在進程調(diào)度中的這種策略,是優(yōu)先權(quán)高的進程優(yōu)先獲得處理機。如果對這種高優(yōu)先權(quán)進程所提出的I/O請求也賦予高優(yōu)先權(quán),顯然有助于這種進程盡快完成。在利用該算法形成設(shè)備隊列時,將優(yōu)先權(quán)高的進程排在設(shè)備隊列前面,而對于優(yōu)先級相同的I/O請求,則按先來先服務(wù)原則排隊。
7.3.2SPOOLing技術(shù)
1.什么是SPOOLing為了緩和CPU的高速性與I/O設(shè)備低速性間的矛盾而引入了脫機輸入、脫機輸出技術(shù)。該技術(shù)是利用專門的外圍控制機,將低速I/O設(shè)備上的數(shù)據(jù)傳送到高速磁盤上;或者相反。事實上,當(dāng)系統(tǒng)中引入了多道程序技術(shù)后,完全可以利用其中的一道程序,來模擬脫機輸入時的外圍控制機功能,把低速I/O設(shè)備上的數(shù)據(jù)傳送到高速磁盤上;再用另一道程序來模擬脫機輸出時外圍控制機的功能,把數(shù)據(jù)從磁盤傳送到低速輸出設(shè)備上。這樣,便可在主機的直接控制下,實現(xiàn)脫機輸入、輸出功能。此時的外圍操作與CPU對數(shù)據(jù)的處理同時進行,我們把這種在聯(lián)機情況下實現(xiàn)的同時外圍操作稱為SPOOLing(SimultaneausPeriphernalOperatingOnLine),或稱為假脫機操作。
引入:在多道批處理系統(tǒng)中,專門利用一道程序(SPOOLing程序)來完成對設(shè)備的I/O操作。無需使用外圍I/O處理機。利用假脫機技術(shù)可把獨享設(shè)備轉(zhuǎn)變?yōu)榫哂泄蚕硖卣鞯奶摂M設(shè)備,從而提高設(shè)備利用率。
2.SPOOLing系統(tǒng)的組成由上所述得知,SPOOLing技術(shù)是對脫機輸入、輸出系統(tǒng)的模擬。相應(yīng)地,SPOOLing系統(tǒng)必須建立在具有多道程序功能的操作系統(tǒng)上,而且還應(yīng)有高速隨機外存的支持,這通常是采用磁盤存儲技術(shù)。
SPOOLing系統(tǒng)主要有以下三部分:
(1)輸入井和輸出井。這是在磁盤上開辟的兩個大存儲空間。輸入井是模擬脫機輸入時的磁盤設(shè)備,用于暫存I/O設(shè)備輸入的數(shù)據(jù);輸出井是模擬脫機輸出時的磁盤,用于暫存用戶程序的輸出數(shù)據(jù)。
(2)輸入緩沖區(qū)和輸出緩沖區(qū)。為了緩和CPU和磁盤之間速度不匹配的矛盾,在內(nèi)存中要開辟兩個緩沖區(qū):輸入緩沖區(qū)和輸出緩沖區(qū)。輸入緩沖區(qū)用于暫存由輸入設(shè)備送來的數(shù)據(jù),以后再傳送到輸入井。輸出緩沖區(qū)用于暫存從輸出井送來的數(shù)據(jù),以后再傳送給輸出設(shè)備。
(3)輸入進程SPi和輸出進程SPo。這里利用兩個進程來模擬脫機I/O時的外圍控制機。其中,進程SPi模擬脫機輸入時的外圍控制機,將用戶要求的數(shù)據(jù)從輸入機通過輸入緩沖區(qū)再送到輸入井,當(dāng)CPU需要輸入數(shù)據(jù)時,直接從輸入井讀入內(nèi)存;進程SPo模擬脫機輸出時的外圍控制機,把用戶要求輸出的數(shù)據(jù)先從內(nèi)存送到輸出井,待輸出設(shè)備空閑時,再將輸出井中的數(shù)據(jù)經(jīng)過輸出緩沖區(qū)送到輸出設(shè)備上。
圖5-22
SPOOLing系統(tǒng)的組成
3.共享打印機打印機是經(jīng)常要用到的輸出設(shè)備,屬于獨占設(shè)備。利用SPOOLing技術(shù),可將之改造為一臺可供多個用戶共享的設(shè)備,從而提高設(shè)備的利用率,也方便了用戶。共享打印機技術(shù)已被廣泛地用于多用戶系統(tǒng)和局域網(wǎng)絡(luò)中。當(dāng)用戶進程請求打印輸出時,SPOOLing系統(tǒng)同意為它打印輸出,但并不真正立即把打印機分配給該用戶進程,而只為它做兩件事:①
由輸出進程在輸出井中為之申請一個空閑磁盤塊區(qū),并將要打印的數(shù)據(jù)送入其中;②
輸出進程再為用戶進程申請一張空白的用戶請求打印表,并將用戶的打印要求填入其中,再將該表掛到請求打印隊列上。如果還有進程要求打印輸出,系統(tǒng)仍可接
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度股東一致行動人產(chǎn)業(yè)扶貧合作合同3篇
- 西藏農(nóng)牧學(xué)院《食品加工類綜合技能訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版?zhèn)}儲質(zhì)押貸款協(xié)議書3篇
- 二零二五年度房地產(chǎn)投資信托基金資金監(jiān)管合同3篇
- 無錫城市職業(yè)技術(shù)學(xué)院《供應(yīng)商履約與合同管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版標(biāo)準(zhǔn)勞務(wù)合作安全合同范本版B版
- 二零二五版國際貿(mào)易融資貸款定金合同范本3篇
- 二零二五年油氣田開發(fā)井筒工程技術(shù)服務(wù)與地質(zhì)風(fēng)險及安全監(jiān)控協(xié)議3篇
- 二零二五年度蟲害防治與生態(tài)農(nóng)業(yè)園合作服務(wù)協(xié)議2篇
- 2024房地產(chǎn)委托銷售合同
- 春季餐飲營銷策劃
- 文化沖突與民族認(rèn)同建構(gòu)-洞察分析
- 企業(yè)會計機構(gòu)的職責(zé)(2篇)
- 《疥瘡的防治及治療》課件
- Unit4 What can you do Part B read and write (說課稿)-2024-2025學(xué)年人教PEP版英語五年級上冊
- 2025年MEMS傳感器行業(yè)深度分析報告
- 《線控底盤技術(shù)》2024年課程標(biāo)準(zhǔn)(含課程思政設(shè)計)
- 學(xué)校對口幫扶計劃
- 倉庫倉儲安全管理培訓(xùn)課件模板
- 風(fēng)力發(fā)電場運行維護手冊
- 河道旅游開發(fā)合同
評論
0/150
提交評論