第8章輸入輸出設備管理_第1頁
第8章輸入輸出設備管理_第2頁
第8章輸入輸出設備管理_第3頁
第8章輸入輸出設備管理_第4頁
第8章輸入輸出設備管理_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機操作系統(tǒng)主講:四川大學計算機學院

杜忠軍第一頁,共七十四頁。第八章設備管理

(Devices

Management)教學目的:

設備管理不但要管理實際I/O操作的設備(如磁盤機、打印機),還要管理諸如設備控制器、DMA控制器、中斷控制器、I/O處理機(通道)等支持設備。設備管理包括各種設備分配、緩沖區(qū)管理和實際物理I/O設備操作,通過管理達到提高設備利用率和方便用戶。第二頁,共七十四頁。教學要求:了解設備的分類,熟悉設備管理的目標和功能。熟悉程序I/O方式、中斷方式、DMA方式和通道方式四種I/O的控制方式;掌握通道的概念,熟悉通道類型。熟悉緩沖的概念,熟悉單緩沖、雙緩沖和多緩沖和緩沖池工作原理。了解在進行設備分配時應考慮的設備的固有屬性、設備的分配算法、設備分配的安全性和設備的獨立性等因素;掌握設備分配中數(shù)據(jù)結構,熟悉設備分配的流程;掌握SPOOLing技術概念和SPOOLing系統(tǒng)的組成。熟悉設備處理程序的功能和處理方式,熟悉設備處理程序的處理過程。第三頁,共七十四頁。本章的主要內容如下:

輸入/輸出系統(tǒng)設備控制器輸入/輸出控制方式

緩沖管理

輸入/輸出軟件

設備分配與回收第四頁,共七十四頁。8.1輸入輸出系統(tǒng)8.1.1I/O系統(tǒng)1.大型機通道系統(tǒng)圖8.1大型計算機組織結構圖8.2通過網(wǎng)絡共享系統(tǒng)之間的設備第五頁,共七十四頁。通道1控制器1控制器2通道2內存控制器3控制器4設備1設備2設備3設備4第六頁,共七十四頁。8.1.1I/O系統(tǒng)-12.小型計算機和微型計算機總線系統(tǒng)圖8.3小型機總線的組織結構第七頁,共七十四頁。8.1.1I/O系統(tǒng)-2 1984年推出的工業(yè)標準結構ISA(IndustryStandardArchitecture)總線,其帶寬為2Mb/s,適用于處理器為80286的計算機。 1988年推出的擴展工業(yè)標準結構EISA(ExpansionIndustryStandardArchitecture)總線,帶寬可以達到32Mb/s,適用于處理器為80386類的計算機。 1990年,為了適應多媒體、高質量圖形處理技術和網(wǎng)絡應用,推出了適合處理器為80486類計算機的VESA(VideoElectronicStandardAssociation)總線,帶寬增加到132Mb/s。

1992年,隨著Pentium系列CPU的出現(xiàn),單總線結構已經不能滿足系統(tǒng)性能要求,推出了的具有全局總線和局部總線的PCI總線,如圖8.4所示。第八頁,共七十四頁。8.1.1I/O系統(tǒng)-3圖8.4通用計算機組織結構第九頁,共七十四頁。8.1.2設備分類

I/O設備的種類繁多,從OS觀點來看,其重要的性能指標有:數(shù)據(jù)傳輸速率、數(shù)據(jù)的傳輸單位、設備的共享屬性等。1.按傳輸速率分類低速設備:指傳輸速率為每秒鐘幾個字節(jié)到數(shù)百個字節(jié)的設備。典型的設備有鍵盤、鼠標、語音的輸入等;中速設備:指傳輸速率在每秒鐘數(shù)千個字節(jié)至數(shù)十千個字節(jié)的設備。典型的設備有行式打印機、激光打印機等;高速設備:指傳輸速率在數(shù)百千個字節(jié)至數(shù)兆字節(jié)的設備。典型的設備有磁帶機、磁盤機、光盤機等。第十頁,共七十四頁。8.1.2設備分類-12.按信息交換的單位分類塊設備(BlockDevice):指以數(shù)據(jù)塊為單位來組織和傳送數(shù)據(jù)信息的設備。這類設備用于存儲信息,有磁盤和磁帶等。它屬于有結構設備。典型的塊設備是磁盤,每個盤塊的大小為512B~4KB,磁盤設備的基本特征是:①傳輸速率較高,通常每秒鐘為幾兆位;②它是可尋址的,即可隨機地讀/寫任意一塊;③磁盤設備的I/O采用DMA方式。字符設備(CharacterDevice):指以單個字符為單位來傳送數(shù)據(jù)信息的設備。這類設備一般用于數(shù)據(jù)的輸入和輸出,有交互式終端、打印機等。它屬于無結構設備。字符設備的基本特征是:①傳輸速率較低;②不可尋址,即不能指定輸入時的源地址或輸出時的目標地址;③字符設備的I/O常采用中斷驅動方式。第十一頁,共七十四頁。8.1.2設備分類-23.按資源分配的角度分類獨占設備:指在一段時間內只允許一個用戶(進程)訪問的設備,大多數(shù)低速的I/O設備,如用戶終端、打印機等屬于這類設備。因為獨占設備屬于臨界資源,所以多個并發(fā)進程必須互斥地進行訪問。共享設備:指在一段時間內允許多個進程同時訪問的設備。顯然,共享設備必須是可尋址的和可隨機訪問的設備。典型的共享設備是磁盤。共享設備不僅可以獲得良好的設備利用率,而且是實現(xiàn)文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)的物質基礎。虛擬設備:指通過虛擬技術將一臺獨占設備變換為若干臺供多個用戶(進程)共享的邏輯設備。一般可以利用假脫機技術(SPOOLing技術)實現(xiàn)虛擬設備。第十二頁,共七十四頁。8.1.3設備管理的目標和功能1.設備管理的目標提高設備的利用率。為此,應盡量提高CPU與I/O設備之間的并行操作程度,主要利用的技術有:中斷技術、DMA技術、通道技術、緩沖技術。為用戶提供方便、統(tǒng)一的界面。所謂方便,是指用戶能獨立于具體設備的復雜物理特性之外而方便地使用設備。所謂統(tǒng)一,是指對不同的設備盡量使用統(tǒng)一的操作方式,例如各種字符設備用一種I/O操作方式。這就要求用戶操作的是簡便的邏輯設備,而具體的I/O物理設備由操作系統(tǒng)去實現(xiàn),這種性能常常被稱為設備的獨立性。第十三頁,共七十四頁。8.1.3設備管理的目標和功能-12.設備管理功能設備分配。指設備管理程序按照一定的算法把某一個I/O設備、及其相應的設備控制器和通道分配給某一用戶(進程),對于未分配到的進程,則插入等待隊列中。緩沖區(qū)管理。為了解決CPU與I/O之間速度不匹配的矛盾,在它們之間配置了緩沖區(qū)。這樣設備管理程序又要負責管理緩沖區(qū)的建立、分配和釋放。實現(xiàn)物理I/O設備的操作。對于具有通道的系統(tǒng),設備管理程序根據(jù)用戶提出的I/O請求,生成相應的通道程序并提交給通道,然后用專門的通道指令啟動通道,對指定的設備進行I/O操作,并能響應通道的中斷請求。對于未設置通道的系統(tǒng),設備管理程序直接驅動設備進行I/O操作。第十四頁,共七十四頁。8.1.3設備管理的目標和功能-2虛擬設備。通過SPOOLing技術將獨占設備改造成多個邏輯設備,可以實現(xiàn)對獨占設備的共享。第十五頁,共七十四頁。8.2設備控制器為了便于設計和計算機實現(xiàn),通常將輸入/輸出設備分為機械部分和電子部分。機械部分為通常意義上的輸入/輸出設備本身的硬件組成和結構,如打印機、掃描儀等,電子部分為設備控制器,也稱為適配器。輸入/輸出設備通過設備控制器進入計算機系統(tǒng),操作系統(tǒng)通過設備控制器管理設備。8.2.1設備控制器及其主要功能

接收和識別處理器命令:設備控制器具有命令寄存器和譯碼器,將處理器的命令接收到命令寄存器中并對命令進行譯碼。

設備控制:根據(jù)接收和譯碼后的處理器命令對設備采取相應的控制。

數(shù)據(jù)交換:實現(xiàn)處理器與設備控制器之間、設備控制器與設備之間的數(shù)據(jù)交換。

識別設備地址:系統(tǒng)中的每一個設備都有一個地址,設備控制器能夠識別所控制設備的地址。

了解和報告設備的狀態(tài):設備控制器中的控制/狀態(tài)寄存器能夠存儲接收到的設備狀態(tài)信息,并將信息上傳給處理器。第十六頁,共七十四頁。8.2.2設備控制器的組成

圖8.5設備控制器組成設備控制器實現(xiàn)了處理器與設備之間的數(shù)據(jù)、控制和地址信息等信息的傳輸。設備控制器的組成如圖8.5所示,設備控制器由控制/狀態(tài)寄存器、數(shù)據(jù)寄存器、與處理機接口、與設備接口等構成。第十七頁,共七十四頁。8.2.2設備控制器的組成-1一個設備控制器接口連接一臺設備,一臺設備控制器有多個接口,可以連接多個設備。在設備控制器與設備的接口中存在數(shù)據(jù)、控制和狀態(tài)三種類型的信號。設備控制器與設備之間的接口通常是低級的字符接口,設備控制器將字符數(shù)據(jù)封裝成數(shù)據(jù)塊,以更大的數(shù)據(jù)格式傳送到計算機的內存。在編址方式上存在有內存映像編址和輸入/輸出獨立編址兩種形式??刂破鞫丝诤蛢却孢M行統(tǒng)一地編址。主機把輸入/輸出端口看作一個存儲單元,對輸入/輸出設備的讀寫操作等同于對存儲器的操作。優(yōu)點是不需要專門的輸入/輸出指令。缺點是對輸入/輸出端口操作的指令需要占用內存空間??刂破鞫丝讵毩⒎峙涞刂房臻g。與內存的地址空間沒有關系,主機使用專門的輸入/輸出指令對端口進行操作。獨立編址的優(yōu)點是外部設備不占用內存的地址空間。缺點是對輸入/輸出端口操作的指令類型少,操作不靈活。Intel8086/8088,分配給輸入/輸出端口的地址空間為64K,即:0000H~0FFFFH,只能用IN和OUT指令對其進行讀寫操作。第十八頁,共七十四頁。8.3I/O控制方式

隨著計算機技術的發(fā)展,I/O的控制方式也在不斷地發(fā)展。一般可分為:程序I/O方式、中斷方式、DMA方式和通道方式。I/O的控制方式發(fā)展的目標是盡量減少主機對I/O控制的干預。8.3.1程序輪詢方式在早期的計算機系統(tǒng)中,由于沒有中斷機構,處理機對I/O設備直接進行控制,采取程序輪詢I/O(ProgrammedI/O)方式或稱為忙-等待方式,即在CPU向設備控制器發(fā)出一條I/O指令啟動I/O設備進行數(shù)據(jù)傳輸時,要同時把狀態(tài)寄存器中的忙/閑標志busy置為1,然后便不斷地循環(huán)測試busy。當busy=l時,表示該I/O設備尚未輸入完一個字(符),CPU應繼續(xù)對該標志進行測試,直至busy=0,表示該I/O設備已將輸入數(shù)據(jù)送入到I/O控制器的數(shù)據(jù)寄存器中,于是CPU將從數(shù)據(jù)寄存器中取出數(shù)據(jù),送入內存的指定單元,接著,再啟動去讀下一個數(shù)據(jù),并置busy=l。第十九頁,共七十四頁。8.3.1程序輪詢方式-1第二十頁,共七十四頁。8.3.1程序輪詢方式-2

在程序I/O方式中,由于CPU的速度遠遠高于I/O設備,導致CPU的絕大部分時間都處于等待I/O設備完成而循環(huán)測試之中,造成了CPU的極大浪費。但是它管理簡單,在要求不高的場合可以被采用。8.3.2中斷控制(Interrupt-drivenI/O)方式

在現(xiàn)代計算機系統(tǒng)中,對I/O設備的控制,廣泛地采用中斷驅動方式,即當某進程要啟動某個I/O設備時,便由CPU向相應的設備控制器發(fā)出一條I/O命令,然后立即返回繼續(xù)執(zhí)行原來的任務。設備控制器便按照該命令的要求去控制I/O設備。此時,CPU與I/O設備處于并行工作狀態(tài)。例如,在輸入時,當設備控制器收到CPU發(fā)來的讀命令后,便準備接收從相應輸入設備送來的數(shù)據(jù)。一旦數(shù)據(jù)進入數(shù)據(jù)寄存器,控制器便通過控制線向CPU發(fā)送一中斷信號,由CPU檢查輸入過程中是否出錯,若無錯,便向控制器發(fā)取走數(shù)據(jù)的信號,然后便通過控制器將數(shù)據(jù)寫入指定內存單元。第二十一頁,共七十四頁。8.3.2中斷控制(Interrupt-drivenI/O)方式-1第二十二頁,共七十四頁。8.3.2中斷控制(Interrupt-drivenI/O)方式-2圖8.6個人計算機的部分設備控制器信息第二十三頁,共七十四頁。8.3.2中斷控制(Interrupt-drivenI/O)方式-3

所以,中斷驅動方式在I/O設備輸入數(shù)據(jù)的過程中,無需CPU干預,可以使CPU與I/O設備并行工作。僅當輸完一個數(shù)據(jù)時,才需CPU花費極短的時間去進行中斷處理。從而大大地提高了整個系統(tǒng)的資源利用率及吞吐量,特別是CPU的利用率。8.3.3DMA(DirectMemoryAccess

)控制方式

中斷驅動I/O方式雖然大大提高了主機的利用率,但是它以字(節(jié))為單位進行數(shù)據(jù)傳送,每完成一個字(節(jié))的傳送,控制器便要向CPU請求一次中斷(做保存現(xiàn)場信息,恢復現(xiàn)場等工作),仍然占用了CPU的許多時間。這種方式對于高速的塊設備的I/O控制顯然是不適合。為了進一步減少CPU對I/O的干預,引入了直接存儲器訪問(DirectMemoryAccess)控制方式。該方式的特點是:1.它作為高速的外圍設備與內存之間成批的數(shù)據(jù)交換,但是不對數(shù)據(jù)再做加工處理,數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊,I/O操作的類型比較簡單。第二十四頁,共七十四頁。8.3.3DMA控制方式-12.它需要使用一個專門的DMA控制器(DMAC)。DMAC中有控制、狀態(tài)寄存器、傳送字節(jié)計數(shù)器、內存地址寄存器和數(shù)據(jù)緩沖寄存器。3.它采用盜竊總線控制權的方法,由DMAC送出內存地址和發(fā)出內存讀、設備寫或設備讀、內存寫的控制信號來完成內存與設備之間的直接數(shù)據(jù)傳送,而不用CPU的干預。有的DMA傳送甚至不經過DMAC的數(shù)據(jù)緩沖寄存器的再吞吐,傳輸速率非常高。4.僅在傳送一個或多個數(shù)據(jù)塊的開始和結束時,才需CPU干預,整塊數(shù)據(jù)的傳送是在控制器的控制下完成的。可見,DMA方式較之中斷驅動方式,又是成百倍地減少了CPU對I/O控制的干預,進一步提高了CPU與I/O設備的并行操作程度。第二十五頁,共七十四頁。8.3.3DMA控制方式-2圖8.7DMA方式第二十六頁,共七十四頁。8.3.3DMA控制方式-3圖8.8DMA控制器組成DMA控制器由內存地址寄存器(MAR)、數(shù)據(jù)寄存器(DR)、命令/狀態(tài)寄存器(CR)、數(shù)據(jù)計數(shù)器(DC)以及中斷和控制邏輯等構成,如圖8.8所示。第二十七頁,共七十四頁。8.3.4I/O通道控制方式1.I/O通道控制方式的引入雖然DMA方式比中斷驅動方式已顯著地減少了CPU的干預,即由以字(節(jié))為單位的干預減少到以數(shù)據(jù)塊為單位的干預。但是CPU每發(fā)出一條I/O指令,也只能去讀(或寫)一個連續(xù)的數(shù)據(jù)塊。而當我們需要一次去讀多個離散的數(shù)據(jù)塊且將它們分別傳送到不同的內存區(qū)域,或者相反時,則需由CPU分別發(fā)出多條I/O指令及進行多次中斷處理,才能完成。由于DMA每次只能執(zhí)行一條I/O指令,不能滿足復雜的I/O操作要求。在大、中型計算機系統(tǒng)中,普遍采用由專用的I/O處理機來接受CPU的委托,獨立執(zhí)行自己的通道程序來實現(xiàn)I/O設備與內存之間的信息交換,這就是通道技術。通道技術可以進一步減少CPU的干預,即把對一個數(shù)據(jù)塊為單位的讀(或寫)的干預,減少到對一組數(shù)據(jù)塊為單位的讀(或寫)的有關的控制和管理的干預。這樣可實現(xiàn)CPU、通道和I/O設備三者之間的并行工作,從而更有效地提高了整個系統(tǒng)的資源利用率和運行速度。第二十八頁,共七十四頁。8.3.4I/O通道控制方式-12.通道程序通道是通過執(zhí)行通道程序,并與設備控制器來共同實現(xiàn)對I/O設備的控制。通道程序是由一系列的通道指令(或稱為通道命令)所構成。通道指令與一般的機器指令不同,在每條指令中包含的信息較多,有操作碼、內存地址、計數(shù)(讀或寫數(shù)據(jù)的字節(jié)數(shù))、通道程序結束位P和記錄結束標志R。3.通道類型由于外圍設備的種類較多,且其傳輸速率相差很大,所以通道也具有多種類型。根據(jù)信息交換方式,可以把通道分成以下三種類型:字節(jié)多路通道(ByteMultiplexorChannel)在這種通道中,通常都含有較多個(8,16,32)非分配型子通道,每一個子通道連接一臺I/O設備。這些子通道按時間片輪轉方式共享主通道。一個子通道完成一個字節(jié)的傳送后,立即讓出字節(jié)多路通道(主通道),給另一個子通道使用。它適用于連接低速或中速設備,如打印機、終端等。第二十九頁,共七十四頁。8.3.4I/O通道控制方式-2圖8.9字節(jié)多路通道第三十頁,共七十四頁。8.3.4I/O通道控制方式-3數(shù)組選擇通道(BlockSelectorChannel)這種通道雖然可以連接多臺I/O設備,但是它只有一個分配型子通道,在一段時間內只能執(zhí)行一道通道程序、控制一臺設備進行數(shù)據(jù)傳送,其數(shù)據(jù)傳送是按數(shù)組方式進行。即當某臺設備一旦占用了該通道,就被它獨占,直至該設備傳送完畢釋放該通道為止。可見,它適于連接高速設備(如磁盤機、磁帶機),但是這種通道的利用率較低。圖8.10數(shù)組選擇通道第三十一頁,共七十四頁。8.3.4I/O通道控制方式-4數(shù)組多路通道(BlockMultiplexorChannel)

數(shù)組選擇通道雖然有很高的傳輸速率,但它每次只允許一個設備傳輸數(shù)據(jù)。數(shù)組多路通道是將數(shù)組選擇通道的傳輸速率高和字節(jié)多路通道的分時并行操作的優(yōu)點結合起來,形成的一種新的通道。它含有多個非分配型子通道,可以連接多臺高、中速的外圍設備,其數(shù)據(jù)傳送卻是按數(shù)組方式進行。所以這種通道既具有很高的數(shù)據(jù)傳輸速率,又能獲得令人滿意的通道利用率。圖8.11數(shù)組多路通道第三十二頁,共七十四頁。8.3.4I/O通道控制方式-53.通道的工作過程通道中的運算控制部件有:用于記錄通道程序在內存地址的通道地址字CAW、用于保存正在執(zhí)行的通道指令的通道命令字CCW、用于存放通道執(zhí)行后返回結果的通道狀態(tài)字CSW、用于存放傳輸數(shù)據(jù)的通道數(shù)據(jù)字CDW。通道有專門的通道指令,這些指令可以完成空操作、讀操作、寫操作、控制、轉移操作,用這些指令可以編寫通道程序,并在通道中執(zhí)行程序。命令格式一般包括操作碼、數(shù)據(jù)傳輸內存地址、特征位、計數(shù)器。

通道輸入/輸出的工作過程如下:(1)當處理器執(zhí)行用戶程序中遇到輸入/輸出請求時,根據(jù)請求生成通道程序放入內存(也可事先編好放入內存),并將該通道程序的首地址放入通道的CAW中。(2)處理器執(zhí)行“啟動輸入/輸出”指令,并啟動通道工作。當通道接收到“啟動輸入/輸出”指令后,從通道的CAW中取出通道程序的首地址,根據(jù)首地址取出第一條指令放入通道的CCW中,并向處理器發(fā)應答信號。此時處理器可繼續(xù)執(zhí)行其他程序,而通道則開始執(zhí)行通道程序。第三十三頁,共七十四頁。8.3.4I/O通道控制方式-6(3)通道程序完成輸入/輸出,啟動輸入/輸出設備,執(zhí)行完成。(4)如果還有下一條指令,則繼續(xù)執(zhí)行,否則輸入/輸出完成。(5)當通道傳輸完最后一條指令時,向處理器發(fā)輸入/輸出中斷,通道停止工作。(6)處理器接收中斷信號,從通道的CSW中取得有關信息,決定下一步做什么。4.具有通道的計算機系統(tǒng)在計算機系統(tǒng)中,一個處理器可以連接若干個通道,一個通道可以連接若干個設備控制器,一個設備控制器可以連接若干個設備。處理器通過執(zhí)行輸入、輸出指令實現(xiàn)對通道的控制,通道通過執(zhí)行通道指令實現(xiàn)對設備控制器的控制,設備控制器發(fā)出讀寫和管理操作實施對設備的控制和完成輸入、輸出。第三十四頁,共七十四頁。8.3.4I/O通道控制方式-7在一般的主機系統(tǒng)中,單通道輸入/輸出的可靠性不高,為了增加系統(tǒng)的可靠性,可采用多通道,并在通道和設備控制器之間采用交叉連接,如圖8.12所示。圖8.12交叉連接的系統(tǒng)第三十五頁,共七十四頁。8.3.4I/O通道控制方式-8IBM390計算機系統(tǒng)的輸入/輸出系統(tǒng)采用的是通道子系統(tǒng),如圖8.13所示。通道路徑可以分為并行通道路徑和串行通道路徑,右邊部分為串行通道路徑,左邊部分則為并發(fā)通道路徑,分別連接不同速度的輸入/輸出設備。圖8.13IBM390系統(tǒng)第三十六頁,共七十四頁。8.4緩沖(Buffering)技術

目前為了解決CPU與I/O設備間速度不匹配的矛盾,提高的I/O速度和設備利用率,在所有的I/O設備與處理機(內存)之間,都使用了緩沖區(qū)來交換數(shù)據(jù)。所以OS必須組織和管理好這些緩沖區(qū)。8.4.1緩沖的引入1.改善CPU與I/O設備間速度不匹配的矛盾例如一個程序,它時而進行長時間的計算而沒有輸出,時而又陣發(fā)性把輸出送到打印機。由于打印機的速度跟不上CPU,而使得CPU長時間的等待。如果設置了緩沖區(qū),程序輸出的數(shù)據(jù)先送到緩沖區(qū)暫存,然后由打印機慢慢地輸出。這時,CPU不必等待,可以繼續(xù)執(zhí)行程序。實現(xiàn)了CPU與I/O設備之間的并行工作。事實上,凡在數(shù)據(jù)的到達速率與其離去速率不同的地方,都可設置緩沖,以緩和它們之間速度不匹配的矛盾。眾所周知,通常的程序都是時而計算,時而輸出的。第三十七頁,共七十四頁。8.4.1緩沖的引入-12.可以減少對CPU的中斷頻率,放寬對中斷響應時間的限制如果I/O操作每傳送一個字節(jié)就要產生一次中斷,那么設置了n個字節(jié)的緩沖區(qū)后,則可以等到緩沖區(qū)滿才產生中斷,這樣中斷次數(shù)就減少到1/n,而且中斷響應的時間也可以相應的放寬。3.提高CPU和I/O設備之間的并行性緩沖的引入可顯著提高CPU和設備的并行操作程度,提高系統(tǒng)的吞吐量和設備的利用率。第三十八頁,共七十四頁。8.4.2單緩沖(SingleBuffer) 每當一個用戶進程發(fā)出一個I/O請求時,OS便在主存中為之分配一個緩沖區(qū)。例如,CPU要從磁盤上讀一塊數(shù)據(jù)進行計算,先從磁盤把一塊數(shù)據(jù)讀入到緩沖區(qū)中,然后由OS將緩沖區(qū)的數(shù)據(jù)傳送到用戶區(qū),最后由CPU對這一塊數(shù)據(jù)進行計算,可見第一步和最后一步是可以并行執(zhí)行的,這樣就提高了CPU和外設的利用率。但是對緩沖區(qū)中數(shù)據(jù)的輸入和提取是串行工作的。(如下圖所示)

操作系統(tǒng)用戶進程輸入傳送I/O設備緩沖區(qū)用戶區(qū)第三十九頁,共七十四頁。8.4.2單緩沖(SingleBuffer)-1輸入傳輸計算

平均每批數(shù)據(jù)的處理(輸入、傳輸、計算)時間=max(輸入時間,計算時間)+傳輸時間第四十頁,共七十四頁。8.4.3雙緩沖(DoubleBuffer

雙緩沖工作方式基本方法是在設備輸入時,先將數(shù)據(jù)輸入到緩沖區(qū)A,裝滿后便轉向緩沖區(qū)B。此時OS可以從緩沖區(qū)A中提取數(shù)據(jù)傳送到用戶區(qū),最后由CPU對數(shù)據(jù)進行計算。(如下圖所示)

操作系統(tǒng)用戶進程

C

輸入T

傳送MI/O設備緩沖區(qū)A用戶區(qū)緩沖區(qū)B第四十一頁,共七十四頁。平均每批數(shù)據(jù)的處理(輸入、傳輸、計算)時間=max(輸入時間,計算時間+傳輸時間)A輸入傳輸計算B輸入第四十二頁,共七十四頁。8.4.4多緩沖(CircularBuffer

)雙緩沖可以實現(xiàn)對緩沖區(qū)中數(shù)據(jù)的輸入和提取,與CPU的計算,三者并行工作。所以雙緩沖進一步加快了I/O的速度,提高了設備的利用率。當對緩沖區(qū)中數(shù)據(jù)的輸入和提取的速度基本相匹配時,采用雙緩沖可使兩者并行工作,獲得較好的效果。但是如果兩者的速度相差甚遠時,雙緩沖的效果就不夠理想了。如果增加緩沖區(qū)的個數(shù),情況就會有所改善。第四十三頁,共七十四頁。8.4.4多緩沖(CircularBuffer

)-1我們可以將多個緩沖區(qū)組織成循環(huán)隊列的形式(如下圖所示)。例如對于用作輸入的循環(huán)緩沖區(qū),通常提供給輸入進程和計算進程使用,輸入進程不斷向空緩沖區(qū)中輸入數(shù)據(jù),計算進程則從滿緩沖區(qū)中提取數(shù)據(jù)用于計算。 操作系統(tǒng)用戶進程輸入傳送I/O設備

……緩沖區(qū)1用戶區(qū)緩沖區(qū)2緩沖區(qū)N第四十四頁,共七十四頁。8.4.4多緩沖(CircularBuffer

)-2循環(huán)緩沖的組織1空2空3空4滿5滿6滿空緩沖隊列頭指針E有數(shù)據(jù)緩沖隊列頭指針F第四十五頁,共七十四頁。8.4.4多緩沖(CircularBuffer

)-3進程同步(1)無空緩沖:E+1=F,輸入進程阻塞,計算進程在消耗一個緩沖后喚醒它。(2)無數(shù)據(jù):E=F,計算進程阻塞,輸入進程在裝滿一個緩沖后喚醒它。緩沖使用設置兩個過程(1)GetDatabuf:取有數(shù)據(jù)的緩沖,在取之前要檢查有無數(shù)據(jù)(見進程同步),F(xiàn)=(F+1)modN.(2)GetEmptybuf:取空緩沖,在取之前要檢查有無空緩沖(見進程同步),E=(E+1)modN.第四十六頁,共七十四頁。8.4.5緩沖池當系統(tǒng)配置較多的設備時,使用專用緩沖區(qū)就要消耗大量的內存空間,且其利用率不高。為了提高緩沖區(qū)的利用率,目前廣泛使用公用緩沖池,池中的緩沖區(qū)可供多個進程共享。對于同時用于輸入/輸出的公用緩沖池,至少含有三種類型的緩沖區(qū):空緩沖區(qū)、裝滿輸入數(shù)據(jù)的緩沖區(qū)和裝滿輸出數(shù)據(jù)的緩沖區(qū)。為了管理上的方便,可將相同類型的緩沖區(qū)鏈成一個隊列,于是就形成三個隊列:空緩沖區(qū)隊列、輸入緩沖區(qū)隊列和輸出緩沖區(qū)隊列。另外還應具有四種工作緩沖區(qū):⑴用于收容輸入數(shù)據(jù)的工作緩沖區(qū)(hin);⑵用于提取輸入數(shù)據(jù)的工作緩沖區(qū)(sin);⑶用于收容輸出數(shù)據(jù)的工作緩沖區(qū)(hout);⑷用于提取輸出數(shù)據(jù)的工作緩沖區(qū)(sout)??梢?,緩沖區(qū)工作在收容輸入、提取輸入、收容輸出和提取輸出四種工作方式下(如下圖5所示)。第四十七頁,共七十四頁。申請和歸還緩沖區(qū)(1)getbuf(type)(2)putbuf(type,bufnum)begin beginP(RS(type));P(MS(type));P(MS(type));addbuf(type,bufnum);takebuf(type);V(MS(type));V(MS(type))V(RS(type))endend第四十八頁,共七十四頁。8.4.5緩沖池-1其中,RS(type)是為每種緩沖隊列設置的同步信號量,MS(type)是為每種緩沖隊列設置的互斥信號量第四十九頁,共七十四頁。8.5輸入/輸出軟件I/O軟件的分層輸入/輸出軟件是實現(xiàn)輸入/輸出管理的軟件部分。輸入/輸出軟件設計目標是改善輸入/輸出設備的效率,實現(xiàn)統(tǒng)一標準的輸入/輸出設備管理方式。目前,輸入/輸出軟件設計最常用的方法是分層設計,分為四層,如下圖所示。第五十頁,共七十四頁。8.5.1中斷處理程序 在設備控制器控制下,I/O設備完成了I/O操作后,控制器(或通道)便向CPU發(fā)出一中斷請求,CPU響應后便轉向中斷處理程序,中斷處理程序大致包含以下幾步:當中斷處理程序開始執(zhí)行時,都必須去喚醒阻塞的驅動(程序)進程。在采用信號量機制時,可通過執(zhí)行V操作,將處于阻塞狀態(tài)的驅動(程序)進程喚醒。保護被中斷進程的CPU現(xiàn)場。分析中斷原因,轉入相應的設備中斷處理程序。進程中斷處理,判別此次I/O完成是正常結束中斷還是異常結束中斷,分別作相應處理?;謴捅恢袛噙M程或由調度程序選中的進程的CPU的現(xiàn)場。返回被中斷的進程,或進入新選中的進程繼續(xù)運行。 在UNIX中將以上對各類設備處理相同的部分集中起來,形成中斷總控程序,每當要進行中斷處理時,都要首先進入中斷總控程序,再按需要轉入不同的設備處理程序。第五十一頁,共七十四頁。8.5.2設備驅動程序 設備驅動程序通常又稱為設備處理程序,它是輸入/輸出進程與設備控制器之間的通信程序,簡稱為設備驅動進程。它的主要任務是接收上層軟件發(fā)來的抽象要求并將設備控制器發(fā)來的信號傳送給上層軟件。1.設備驅動程序的功能設備驅動程序包括所有與設備相關的代碼,因此,每個設備都有自己專用的驅動程序。設備驅動程序的主要功能如下:將上層軟件傳送來的用戶作業(yè)的邏輯輸入/輸出請求轉換為設備的具體要求。驗證用戶作業(yè)輸入/輸出請求的合法性,了解輸入/輸出設備的狀態(tài),傳遞有關參數(shù),設置設備的工作方式。發(fā)出輸入/輸出命令,啟動分配的輸入/輸出設備工作,執(zhí)行指定的輸入/輸出操作。第五十二頁,共七十四頁。8.5.2設備驅動程序-1及時響應設備控制器或通道發(fā)來的中斷請求,根據(jù)中斷類型調用相應的中斷處理程序進行處理。如果計算機系統(tǒng)設置有通道,設備驅動程序還應能夠根據(jù)用戶作業(yè)的輸入/輸出請求,自動地構成通道程序。設備出錯處理2.設備驅動程序的特點設備驅動程序是請求輸入/輸出的進程與設備控制器之間的一個通信程序。它將進程的輸入/輸出請求傳送給設備控制器,把設備控制器中所記錄的設備狀態(tài)、輸入/輸出操作完成情況傳送給請求輸入/輸出的進程。

設備驅動程序與輸入/輸出控制方式緊密相關。常用的設備控制方式是中斷和DMA方式。

設備驅動程序針對一類具體的設備工作,與設備硬件緊密相關,通常情況下,設備驅動程序需要用匯編語言書寫,目前有很多驅動程序的基本部分已經固化在ROM中。第五十三頁,共七十四頁。8.5.2設備驅動程序-23.設備驅動程序的處理過程將用戶和上層軟件對設備控制的抽象要求轉換成對設備的具體要求,如對抽象要求的盤塊號轉換為磁盤的盤面、磁道及扇區(qū)。檢查I/O請求的合理性。讀出和檢查設備的狀態(tài),確保設備處于就緒態(tài)。傳送必要的參數(shù),如傳送的字節(jié)數(shù),數(shù)據(jù)在主存的首址等。工作方式的設置。啟動I/O設備,并檢查啟動是否成功,如成功則將控制返回給I/O控制系統(tǒng),在I/O設備忙于傳送數(shù)據(jù)時,該用戶進程把自己阻塞,直至中斷到來才將它喚醒,而CPU可干別的事。第五十四頁,共七十四頁。8.5.2設備驅動程序-34.設備出錯處理

設備出錯處理由設備驅動程序完成。在設備使用上,大多數(shù)的設備出錯情況,只有驅動程序知道該如何處理。一般來講,設備驅動程序會根據(jù)使用出錯的情況不同,采用不同的處理方法。如果發(fā)生的錯誤很小,不影響設備的正常使用,設備驅動程序會忽略錯誤。如果發(fā)生的錯誤不能忽略,則設備驅動程序會采取重試的方法或報警的方法。如何報警、如何處理錯誤則與操作系統(tǒng)無關,可能需要人工解決。例如,使用打印機時出錯,打印機驅動程序通過系統(tǒng)通知用戶重試確認。如果打印機缺紙出錯,打印機驅動程序通過系統(tǒng)通知用戶處理,處理好后可繼續(xù)運行。使用磁盤時由于位示圖等關鍵信息出錯,則磁盤驅動程序通過系統(tǒng)打印出錯誤信息并終止執(zhí)行,驅動程序自身不能處理。第五十五頁,共七十四頁。8.5.3與設備無關的操作系統(tǒng)軟件

1.設備無關的軟件定義設備驅動程序與設備之間存在著緊密關系,即設備驅動程序不能獨立于設備,而最上層的用戶級輸入/輸出軟件卻要求用戶程序對設備的使用獨立于具體使用的物理設備,實現(xiàn)設備獨立性。因此,在設備驅動程序與用戶級輸入/輸出軟件之間需要再加上一層軟件,這層軟件是與設備無關的軟件,也稱為設備獨立性軟件。2.設備的邏輯名與物理名之間的映射正如用戶程序中要使用邏輯地址而不使用物理地址一樣,在用戶程序中使用設備的邏輯名而不使用設備的物理名。設備的邏輯名是系統(tǒng)中預先設計的統(tǒng)一名稱,不依賴于設備,可以是一個簡單的字符串或一個整數(shù),應用在與設備有關的所有軟件模塊中。設備的物理名是系統(tǒng)提供的標準名稱,是永久的、不可改變的。設備驅動程序需要將設備的邏輯名映射為物理名,并按照設備的邏輯名進行設備的分配和回收。第五十六頁,共七十四頁。8.5.3與設備無關的操作系統(tǒng)軟件-1邏輯設備表(logicalunittable)實現(xiàn)了設備的邏輯名到物理名的映射。

對于單用戶單進程系統(tǒng),整個系統(tǒng)設置一個邏輯設備表。由于系統(tǒng)中所有進程的設備分配情況都記錄在同一表中,不允許具有相同的邏輯設備名。對于多用戶多進程系統(tǒng),系統(tǒng)為每個用戶設置一個邏輯設備表。每當用戶登錄時,便為用戶建立一個進程,同時也為之建立一個邏輯設備表,并將該表放入進程的進程控制塊中,只需要查詢進程控制塊即可實現(xiàn)邏輯名到物理名的映射。在邏輯設備表中包含有邏輯設備名、物理設備名和設備驅動程序的入口地址等信息。當進程用邏輯設備名來請求分配輸入/輸出設備時,系統(tǒng)為它分配相應的物理設備,并在邏輯設備表上建立一個表目,寫上應用程序中使用的邏輯設備名和系統(tǒng)分配的物理設備名,以及該設備的驅動程序入口地址。一個用戶程序在使用磁盤、打印機等設備時,無需因為每一種設備類型的變化而修改程序,操作系統(tǒng)可以根據(jù)當時設備的配置情況自由分配適當類型的設備,一臺設備不能提供使用,可以用相同種類的設備來提供。第五十七頁,共七十四頁。8.5.3與設備無關的操作系統(tǒng)軟件-23.設備獨立性軟件為用戶使用設備提供了統(tǒng)一操作,通過限制操作的權限達到保護設備的目的有了設備獨立性軟件,無論何種設備,都可以向用戶輸入/輸出程序層提供統(tǒng)一的接口。對所有的設備,用戶的操作都是相同的,都通過read實現(xiàn)讀操作,從輸入設備讀取數(shù)據(jù)。通過write實現(xiàn)寫操作,將數(shù)據(jù)輸出到輸出設備。系統(tǒng)對每個設備設置讀寫權限,最終實現(xiàn)保護設備的目的。4.實現(xiàn)設備獨立性軟件的優(yōu)點實現(xiàn)設備獨立性軟件具有如下優(yōu)點。

使得設備分配時具有靈活性,提高了設備的利用率

易于實現(xiàn)輸入/輸出重定向,提高系統(tǒng)的可適用性用于輸入/輸出操作的設備可以更換,即重定向,而不必改變應用程序。第五十八頁,共七十四頁。8.5.4用戶級輸入/輸出軟件大多數(shù)的輸入/輸出軟件都在操作系統(tǒng)核心中實現(xiàn),只有與用戶程序鏈接在一起的庫函數(shù)以及運行在操作系統(tǒng)核心之外的其它程序才在用戶層實現(xiàn)。1.庫文件對輸入/輸出系統(tǒng)進行調用的系統(tǒng)函數(shù)屬于用戶級,如對設備的read、write操作。2.spooling程序技術(1)spooling程序技術定義脫機輸入/輸出是通過外圍控制機實現(xiàn)信息的輸入/輸出,輸入/輸出不需要主機的參與,使得主機的處理與輸入/輸出過程并行進行,提高了系統(tǒng)的效率,特別是處理器的效率。

第五十九頁,共七十四頁。8.5.4用戶級輸入/輸出軟件-1隨著計算機處理速度的提高,特別是多道程序的引入,外圍控制機的輸入/輸出控制功能可以用程序來模擬,用程序來替代外圍控制機。模擬輸入程序將大量需要處理的信息預先輸入到磁盤中暫存,實現(xiàn)了“預輸入”,當用戶作業(yè)需要輸入信息時則直接從磁盤中輸入。同樣,當用戶作業(yè)需要輸出信息時,會暫時將信息保存到磁盤中,待作業(yè)完成后,模擬輸出程序再將磁盤中的輸出信息輸出到輸出設備,實現(xiàn)了“緩輸出”。這樣的輸入/輸出是在主機的控制下,實現(xiàn)的脫機輸入/輸出,稱為spooling(simultaneausperiphernaloperationson-line),也稱為假脫機。第六十頁,共七十四頁。8.5.4用戶級輸入/輸出軟件-2(2)spooling系統(tǒng)的組成

第六十一頁,共七十四頁。8.5.4用戶級輸入/輸出軟件-3spooling系統(tǒng)主要包括如下四個部分:

輸入井和輸出井

輸入緩沖區(qū)和輸出緩沖區(qū)

預輸入進程SPI和緩輸出進程SPO

井管理程序

在作業(yè)執(zhí)行過程中,進程如果請求啟動某臺輸入/輸出設備操作,操作系統(tǒng)得到該請求并調出井管理程序,控制從相應的輸入井讀取數(shù)據(jù)或將信息輸出到輸出井。輸入井中的信息被作業(yè)取走后,輸入井應該歸還。同樣,如果輸出井中的信息被送入到輸出緩沖區(qū)后,輸出井也應該歸還。操作系統(tǒng)通過預輸入表和緩輸出表管理輸入作業(yè)和輸出作業(yè)。表中有作業(yè)名、作業(yè)狀態(tài)、文件名、設備類、數(shù)據(jù)起始位置、數(shù)據(jù)當前位置等信息。當輸入井或輸出井刪除時,作業(yè)信息也從表中刪除。井管理程序的主要工作就是管理預輸入表和緩輸出表及回收輸入井和輸出井。第六十二頁,共七十四頁。8.5.4用戶級輸入/輸出軟件-4(3)應用spooling技術實現(xiàn)共享打印機打印機屬于獨享設備,但利用spooling技術,可將它改造為一臺可供多個用戶共享的設備,從而提高設備的利用率,方便用戶的使用。當用戶進程申請打印輸出時,spooling系統(tǒng)同意為進程打印輸出,但并不真正分配打印機給該進程,而只為該進程做了兩件事。

輸出進程在輸出井中為之申請一空閑盤塊區(qū),并將要打印的數(shù)據(jù)送入其中;

輸出進程再為用戶進程請求一張空白的緩輸出表,并將用戶的打印要求填入表中,如果還有作業(yè)打印輸出,系統(tǒng)仍可以接收請求并將其寫入表中。打印機可能使用時間非常長,在用戶使用期間,其他用戶無法打印。為解決該問題,大多數(shù)操作系統(tǒng)都為打印機創(chuàng)建了一個特殊的守護進程,由守護進程從輸出井中取出用戶作業(yè)進行打印。而不需要用戶進程參與打印,這樣,用戶進程在將打印數(shù)據(jù)送入輸出井之后不需要等待打印,繼續(xù)運行。第六十三頁,共七十四頁。8.5.4用戶級輸入/輸出軟件(續(xù))(4)spooling技術的特點

提高了輸入/輸出速度如同脫機輸入輸出一樣,spooling提高了輸入/輸出速度,緩和了處理器與低速輸入/輸出設備之間速度不匹配的矛盾。

將獨占設備改造為共享設備通過輸入井和輸出井實現(xiàn)了獨占設備向共享設備的轉變。

實現(xiàn)了虛擬設備功能實現(xiàn)了將獨占設備變換為若干個對應的邏輯設備。第六十四頁,共七十四頁。8.6設備的分配和回收

在多道程序環(huán)境下,設備必須由系統(tǒng)分配。每當進程向系統(tǒng)提出I/O請求時,設備分配程序按照一定的策略,把其所需的設備及其有關資源(如緩沖區(qū)、控制器和通道)分配給該進程。在分配設備時還必須考慮系統(tǒng)的安全性,避免發(fā)生死鎖現(xiàn)象。8.6.1設備分配原則1.根據(jù)設備的固有屬性而采取的策略獨享方式:獨享方式是指將一個設備分配給某進程后,便一直由它獨占,直至該進程完成或釋放該設備為止,系統(tǒng)才能將該設備分配給其它進程使用。這種分配方式是對獨占設備采用的分配策略。它不僅往往造成設備利用率低,而且還會引起系統(tǒng)死鎖。第六十五頁,共七十四頁。8.6.1設備分配原則-1共享方式共享方式是指將共享設備(磁盤)同時分配給多個進程使用。但是這些進程對設備的訪問需進行合理的調度。虛擬方式 虛擬方式是指通過高速的共享設備,把一臺慢速的以獨占方式工作的物理設備改造成若干臺虛擬的同類邏輯設備,這就需要引入SPOOLing技術。虛擬設備屬于邏輯設備。2.設備分配算法(與進程的調度算法相似)先來先服務:當多個進程同時向某一設備提出I/O請求時,該算法就根據(jù)對該設備提出請求的先后次序將這些進程排列成一個設備請求隊列,設備分配程序把設備首先分配給隊首進程。優(yōu)先級高者優(yōu)先:對優(yōu)先權高的進程所提出的I/O請求賦予高優(yōu)先權,在形成設備隊列時,將優(yōu)先級高的進程排在設備隊列前面,先得到分配。而對于優(yōu)先權相同的I/O請求,則按先來先服務原則排隊分配。第六十六頁,共七十四頁。8.6.1設備分配原則-23.設備分配中的安全性安全分配方式每當進程發(fā)出一個I/O請求后,便進入阻塞狀態(tài),直到其I/O操作完成時才被喚醒。當它運行時不保持任何設備資源,打破了產生死鎖一個必要條件—“請求和保持”,所以這種分配方式是安全的。但是這種分配算法使得CPU與I/O設備串行工作,設備的利用率比較低。不安全分配方式進程發(fā)出一個I/O請求后仍可以繼續(xù)運行,需要時還可以發(fā)第二個I/O請求、第三個I/O請求。只有當進程所請求的設備已被另一個進程占用時,進程才進入阻塞狀態(tài)。這種分配方式是不安全,因為它可能具備“請求和保持”條件,從而可能造成系統(tǒng)死鎖。第六十七頁,共七十四頁。8.6.2設備數(shù)據(jù)結構設備分配程序是負責向對系統(tǒng)提出I/O請求的進程分配設備,及其相應的控制器和通道。數(shù)據(jù)結構有:系統(tǒng)設備表(SDT)、設備控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT)。每個表的具體內容如下圖所示。在整個系統(tǒng)中,有一張系統(tǒng)設備表(SDT),用于記錄系統(tǒng)中全部設備的信息。每個設備占一個表目,其中包括設備類型、設備標識符、設備控制表指針及設備驅動程序的入口地址等表項。系統(tǒng)為每一個設備都配置了一張設備控制表(DCT),用于記錄該設備的情況。表中除了有用于指示設備類型的字段和設備標識符字段外,還應有下列字段:第六十八頁,共七十四頁。8.6.2設備數(shù)據(jù)結構-1設備隊列的隊首指針:凡因請求本設備而未得到滿足的進程,其PCB都應按照一定的策略排成一個隊列,稱為設備請求隊列或簡稱為設備隊列。其隊首指針指向隊首PCB,在有的系統(tǒng)中還設置了隊尾指針。設備狀態(tài):當設備自身處于“忙”狀態(tài)時,將設備的忙標志置“l(fā)”。若與該設備相連接的控制器或通道處于“忙”狀態(tài),而不能啟動該設備,則將設備的等待標志置“l(fā)”。COCT表指針:該指針指向與該設備相連接的控制器的控制表。在具有多條通路的情況下,一個設備可與多個控制器相連接。此時,在DCT中應設置多個控制器表指針。重復執(zhí)行次數(shù):外部設備在傳送數(shù)據(jù)時,若發(fā)生信息傳送錯誤,系統(tǒng)并不立即認為傳送失敗,而是允許它重新傳送。只要在規(guī)定的重復次

溫馨提示

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

評論

0/150

提交評論