




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 計算機操作系統 主講: 四川大學計算機學院 杜忠軍第八章 設備管理 (Devices Management)教學目的: 設備管理不但要管理實際I/O操作的設備(如磁盤機、打印機),還要管理諸如設備控制器、DMA控制器、中斷控制器、I/O處理機(通道)等支持設備。設備管理包括各種設備分配、緩沖區管理和實際物理IO設備操作,通過管理達到提高設備利用率和方便用戶。教學要求:了解設備的分類,熟悉設備管理的目標和功能。熟悉程序I/O方式、中斷方式、DMA方式和通道方式四種I/O的控制方式;掌握通道的概念,熟悉通道類型。熟悉緩沖的概念,熟悉單緩沖、雙緩沖和多緩沖和緩沖池工作原理。了解在進行設備分配時應考
2、慮的設備的固有屬性、設備的分配算法、設備分配的安全性和設備的獨立性等因素;掌握設備分配中數據結構,熟悉設備分配的流程;掌握SPOOLing技術概念和SPOOLing系統的組成。熟悉設備處理程序的功能和處理方式,熟悉設備處理程序的處理過程。本章的主要內容如下: 輸入/輸出系統 設備控制器 輸入/輸出控制方式 緩沖管理 輸入/輸出軟件 設備分配與回收通道1控制器1控制器2通道2內存控制器3控制器4設備1設備2設備3設備48.1.1 I/O系統-12小型計算機和微型計算機總線系統圖8.3 小型機總線的組織結構8.1.1 I/O系統-3圖8.4 通用計算機組織結構8.1.2設備分類 I/O設備的種類繁
3、多,從OS觀點來看,其重要的性能指標有:數據傳輸速率、數據的傳輸單位、設備的共享屬性等。1按傳輸速率分類低速設備:指傳輸速率為每秒鐘幾個字節到數百個字節的設備。典型的設備有鍵盤、鼠標、語音的輸入等;中速設備:指傳輸速率在每秒鐘數千個字節至數十千個字節的設備。典型的設備有行式打印機、激光打印機等;高速設備:指傳輸速率在數百千個字節至數兆字節的設備。典型的設備有磁帶機、磁盤機、光盤機等。8.1.2設備分類-12按信息交換的單位分類塊設備(Block Device):指以數據塊為單位來組織和傳送數據信息的設備。這類設備用于存儲信息,有磁盤和磁帶等。它屬于有結構設備。典型的塊設備是磁盤,每個盤塊的大小
4、為512B4KB,磁盤設備的基本特征是:傳輸速率較高,通常每秒鐘為幾兆位;它是可尋址的,即可隨機地讀/寫任意一塊;磁盤設備的I/O采用DMA方式。字符設備(Character Device):指以單個字符為單位來傳送數據信息的設備。這類設備一般用于數據的輸入和輸出,有交互式終端、打印機等。它屬于無結構設備。字符設備的基本特征是:傳輸速率較低;不可尋址,即不能指定輸入時的源地址或輸出時的目標地址;字符設備的IO常采用中斷驅動方式。8.1.2設備分類-23按資源分配的角度分類獨占設備:指在一段時間內只允許一個用戶(進程)訪問的設備,大多數低速的I/O設備,如用戶終端、打印機等屬于這類設備。因為獨占
5、設備屬于臨界資源,所以多個并發進程必須互斥地進行訪問。共享設備:指在一段時間內允許多個進程同時訪問的設備。顯然,共享設備必須是可尋址的和可隨機訪問的設備。典型的共享設備是磁盤。共享設備不僅可以獲得良好的設備利用率,而且是實現文件系統和數據庫系統的物質基礎。虛擬設備:指通過虛擬技術將一臺獨占設備變換為若干臺供多個用戶(進程)共享的邏輯設備。一般可以利用假脫機技術(SPOOLing技術)實現虛擬設備。8.1.3 設備管理的目標和功能1設備管理的目標提高設備的利用率。為此,應盡量提高CPU與I/O設備之間的并行操作程度,主要利用的技術有:中斷技術、DMA技術、通道技術、緩沖技術。為用戶提供方便、統一
6、的界面。所謂方便,是指用戶能獨立于具體設備的復雜物理特性之外而方便地使用設備。所謂統一,是指對不同的設備盡量使用統一的操作方式,例如各種字符設備用一種I/O操作方式。這就要求用戶操作的是簡便的邏輯設備,而具體的I/O物理設備由操作系統去實現,這種性能常常被稱為設備的獨立性。8.1.3 設備管理的目標和功能-12. 設備管理功能設備分配。指設備管理程序按照一定的算法把某一個I/O設備、及其相應的設備控制器和通道分配給某一用戶(進程),對于未分配到的進程,則插入等待隊列中。緩沖區管理。為了解決CPU與I/O之間速度不匹配的矛盾,在它們之間配置了緩沖區。這樣設備管理程序又要負責管理緩沖區的建立、分配
7、和釋放。實現物理I/O設備的操作。對于具有通道的系統,設備管理程序根據用戶提出的I/O請求,生成相應的通道程序并提交給通道,然后用專門的通道指令啟動通道,對指定的設備進行I/O操作,并能響應通道的中斷請求。對于未設置通道的系統,設備管理程序直接驅動設備進行I/O操作。8.2 設備控制器 為了便于設計和計算機實現,通常將輸入/輸出設備分為機械部分和電子部分。機械部分為通常意義上的輸入/輸出設備本身的硬件組成和結構,如打印機、掃描儀等,電子部分為設備控制器,也稱為適配器。輸入/輸出設備通過設備控制器進入計算機系統,操作系統通過設備控制器管理設備。8.2.1 設備控制器及其主要功能接收和識別處理器命
8、令:設備控制器具有命令寄存器和譯碼器,將處理器的命令接收到命令寄存器中并對命令進行譯碼。 設備控制:根據接收和譯碼后的處理器命令對設備采取相應的控制。 數據交換:實現處理器與設備控制器之間、設備控制器與設備之間的數據交換。 識別設備地址:系統中的每一個設備都有一個地址,設備控制器能夠識別所控制設備的地址。 了解和報告設備的狀態:設備控制器中的控制/狀態寄存器能夠存儲接收到的設備狀態信息,并將信息上傳給處理器。 8.2.2 設備控制器的組成圖8.5 設備控制器組成 設備控制器實現了處理器與設備之間的數據、控制和地址信息等信息的傳輸。設備控制器的組成如圖8.5所示,設備控制器由控制/狀態寄存器、數
9、據寄存器、與處理機接口、與設備接口等構成。8.3 I/O控制方式 隨著計算機技術的發展,I/O的控制方式也在不斷地發展。一般可分為:程序I/O方式、中斷方式、DMA方式和通道方式。I/O的控制方式發展的目標是盡量減少主機對I/O控制的干預。8.3.1 程序輪詢方式 在早期的計算機系統中,由于沒有中斷機構,處理機對I/O設備直接進行控制,采取程序輪詢I/O(Programmed I/O)方式或稱為忙-等待方式,即在CPU向設備控制器發出一條I/O指令啟動I/O設備進行數據傳輸時,要同時把狀態寄存器中的忙/閑標志busy置為1,然后便不斷地循環測試busy。當busy=l時,表示該I/O設備尚未輸
10、入完一個字(符),CPU應繼續對該標志進行測試,直至busy=0,表示該I/O設備已將輸入數據送入到I/O控制器的數據寄存器中,于是CPU將從數據寄存器中取出數據,送入內存的指定單元,接著,再啟動去讀下一個數據,并置busy=l。8.3.1 程序輪詢方式-18.3.1 程序輪詢方式-2在程序I/O方式中,由于CPU的速度遠遠高于I/O設備,導致CPU的絕大部分時間都處于等待I/O設備完成而循環測試之中,造成了CPU的極大浪費。但是它管理簡單,在要求不高的場合可以被采用。8.3.2 中斷控制(Interrupt-driven I/O)方式 在現代計算機系統中,對I/O設備的控制,廣泛地采用中斷驅
11、動方式,即當某進程要啟動某個I/O設備時,便由CPU向相應的設備控制器發出一條I/O命令,然后立即返回繼續執行原來的任務。設備控制器便按照該命令的要求去控制I/O設備。此時, CPU與I/O設備處于并行工作狀態。例如,在輸入時,當設備控制器收到 CPU發來的讀命令后,便準備接收從相應輸入設備送來的數據。一旦數據進入數據寄存器,控制器便通過控制線向CPU發送一中斷信號,由CPU檢查輸入過程中是否出錯,若無錯,便向控制器發取走數據的信號,然后便通過控制器將數據寫入指定內存單元。8.3.2 中斷控制(Interrupt-driven I/O)方式-18.3.2 中斷控制(Interrupt-driv
12、en I/O)方式-2圖8.6 個人計算機的部分設備控制器信息8.3.2 中斷控制(Interrupt-driven I/O)方式-3 所以,中斷驅動方式在I/O設備輸入數據的過程中,無需 CPU干預,可以使CPU與I/O設備并行工作。僅當輸完一個數據時,才需 CPU花費極短的時間去進行中斷處理。從而大大地提高了整個系統的資源利用率及吞吐量,特別是CPU的利用率。8.3.3 DMA(Direct Memory Access )控制方式 中斷驅動I/O方式雖然大大提高了主機的利用率,但是它以字(節)為單位進行數據傳送,每完成一個字(節)的傳送,控制器便要向CPU請求一次中斷(做保存現場信息,恢復
13、現場等工作),仍然占用了CPU的許多時間。這種方式對于高速的塊設備的I/O控制顯然是不適合。為了進一步減少CPU對I/O的干預,引入了直接存儲器訪問(Direct Memory Access)控制方式。該方式的特點是:1它作為高速的外圍設備與內存之間成批的數據交換,但是不對數據再做加工處理,數據傳輸的基本單位是數據塊,I/O操作的類型比較簡單。8.3.3 DMA控制方式-2圖8.7 DMA方式8.3.3 DMA控制方式-3圖8.8 DMA控制器組成 DMA控制器由內存地址寄存器(MAR)、數據寄存器(DR)、命令/狀態寄存器(CR)、數據計數器(DC)以及中斷和控制邏輯等構成,如圖8.8所示。
14、8.3.4I/O通道控制方式-12通道程序 通道是通過執行通道程序,并與設備控制器來共同實現對I/O設備的控制。通道程序是由一系列的通道指令(或稱為通道命令)所構成。通道指令與一般的機器指令不同,在每條指令中包含的信息較多,有操作碼、內存地址、計數(讀或寫數據的字節數)、通道程序結束位P和記錄結束標志R。3.通道類型由于外圍設備的種類較多,且其傳輸速率相差很大,所以通道也具有多種類型。根據信息交換方式,可以把通道分成以下三種類型:字節多路通道(Byte Multiplexor Channel) 在這種通道中,通常都含有較多個(8,16,32)非分配型子通道,每一個子通道連接一臺I/O設備。這些
15、子通道按時間片輪轉方式共享主通道。一個子通道完成一個字節的傳送后,立即讓出字節多路通道(主通道),給另一個子通道使用。它適用于連接低速或中速設備,如打印機、終端等。8.3.4 I/O通道控制方式-2圖8.9 字節多路通道8.3.4 I/O通道控制方式-3數組選擇通道(Block Selector Channel) 這種通道雖然可以連接多臺I/O設備,但是它只有一個分配型子通道,在一段時間內只能執行一道通道程序、控制一臺設備進行數據傳送,其數據傳送是按數組方式進行。即當某臺設備一旦占用了該通道,就被它獨占,直至該設備傳送完畢釋放該通道為止。可見,它適于連接高速設備(如磁盤機、磁帶機),但是這種通
16、道的利用率較低。圖8.10 數組選擇通道8.3.4 I/O通道控制方式-4數組多路通道(Block Multiplexor Channel) 數組選擇通道雖然有很高的傳輸速率,但它每次只允許一個設備傳輸數據。數組多路通道是將數組選擇通道的傳輸速率高和字節多路通道的分時并行操作的優點結合起來,形成的一種新的通道。它含有多個非分配型子通道,可以連接多臺高、中速的外圍設備,其數據傳送卻是按數組方式進行。所以這種通道既具有很高的數據傳輸速率,又能獲得令人滿意的通道利用率。圖8.11 數組多路通道8.3.4 I/O通道控制方式-53通道的工作過程 通道中的運算控制部件有:用于記錄通道程序在內存地址的通道
17、地址字CAW、用于保存正在執行的通道指令的通道命令字CCW、用于存放通道執行后返回結果的通道狀態字CSW、用于存放傳輸數據的通道數據字CDW。 通道有專門的通道指令,這些指令可以完成空操作、讀操作、寫操作、控制、轉移操作,用這些指令可以編寫通道程序,并在通道中執行程序。命令格式一般包括操作碼、數據傳輸內存地址、特征位、計數器。 通道輸入/輸出的工作過程如下:(1)當處理器執行用戶程序中遇到輸入/輸出請求時,根據請求生成通道程序放入內存(也可事先編好放入內存),并將該通道程序的首地址放入通道的CAW中。(2)處理器執行“啟動輸入/輸出”指令,并啟動通道工作。當通道接收到“啟動輸入/輸出”指令后,
18、從通道的CAW中取出通道程序的首地址,根據首地址取出第一條指令放入通道的CCW中,并向處理器發應答信號。此時處理器可繼續執行其他程序,而通道則開始執行通道程序。8.3.4 I/O通道控制方式-6(3)通道程序完成輸入/輸出,啟動輸入/輸出設備,執行完成。(4)如果還有下一條指令,則繼續執行,否則輸入/輸出完成。(5)當通道傳輸完最后一條指令時,向處理器發輸入/輸出中斷,通道停止工作。(6)處理器接收中斷信號,從通道的CSW中取得有關信息,決定下一步做什么。4具有通道的計算機系統 在計算機系統中,一個處理器可以連接若干個通道,一個通道可以連接若干個設備控制器,一個設備控制器可以連接若干個設備。
19、處理器通過執行輸入、輸出指令實現對通道的控制,通道通過執行通道指令實現對設備控制器的控制,設備控制器發出讀寫和管理操作實施對設備的控制和完成輸入、輸出。8.3.4 I/O通道控制方式-7 在一般的主機系統中,單通道輸入/輸出的可靠性不高,為了增加系統的可靠性,可采用多通道,并在通道和設備控制器之間采用交叉連接,如圖8.12所示。圖8.12 交叉連接的系統8.3.4 I/O通道控制方式-8 IBM 390計算機系統的輸入/輸出系統采用的是通道子系統,如圖8.13所示。通道路徑可以分為并行通道路徑和串行通道路徑,右邊部分為串行通道路徑,左邊部分則為并發通道路徑,分別連接不同速度的輸入/輸出設備。圖
20、8.13 IBM 390系統8.4 緩沖( Buffering )技術 目前為了解決CPU與I/O設備間速度不匹配的矛盾,提高的I/O速度和設備利用率,在所有的I/O設備與處理機(內存)之間,都使用了緩沖區來交換數據。所以OS必須組織和管理好這些緩沖區。8.4.1 緩沖的引入1.改善CPU與I/O設備間速度不匹配的矛盾 例如一個程序,它時而進行長時間的計算而沒有輸出,時而又陣發性把輸出送到打印機。由于打印機的速度跟不上CPU,而使得CPU長時間的等待。如果設置了緩沖區,程序輸出的數據先送到緩沖區暫存,然后由打印機慢慢地輸出。這時,CPU不必等待,可以繼續執行程序。實現了CPU與I/O設備之間的
21、并行工作。事實上,凡在數據的到達速率與其離去速率不同的地方,都可設置緩沖,以緩和它們之間速度不匹配的矛盾。眾所周知,通常的程序都是時而計算,時而輸出的。8.4.1 緩沖的引入-12.可以減少對 CPU的中斷頻率,放寬對中斷響應時間的限制 如果I/O操作每傳送一個字節就要產生一次中斷,那么設置了n個字節的緩沖區后,則可以等到緩沖區滿才產生中斷,這樣中斷次數就減少到1/n,而且中斷響應的時間也可以相應的放寬。3提高 CPU和 IO設備之間的并行性 緩沖的引入可顯著提高 CPU和設備的并行操作程度,提高系統的吞吐量和設備的利用率。8.4.2單緩沖( Single Buffer )每當一個用戶進程發出
22、一個I/O請求時,OS便在主存中為之分配一個緩沖區。例如,CPU要從磁盤上讀一塊數據進行計算,先從磁盤把一塊數據讀入到緩沖區中,然后由OS將緩沖區的數據傳送到用戶區,最后由CPU對這一塊數據進行計算,可見第一步和最后一步是可以并行執行的,這樣就提高了CPU和外設的利用率。但是對緩沖區中數據的輸入和提取是串行工作的。 (如下圖所示) 操作系統 用戶進程 輸入 傳送I/O設備緩沖區用戶區8.4.2單緩沖( Single Buffer )-1輸入傳輸計算 平均每批數據的處理(輸入、傳輸、計算)時間=max(輸入時間,計算時間)+傳輸時間8.4.3雙緩沖( Double Buffer ) 雙緩沖工作方
23、式基本方法是在設備輸入時,先將數據輸入到緩沖區A,裝滿后便轉向緩沖區B。此時OS可以從緩沖區A中提取數據傳送到用戶區,最后由CPU對數據進行計算。(如下圖所示) 操作系統 用戶進程 C 輸入T 傳送MI/O設備緩沖區A用戶區緩沖區B平均每批數據的處理(輸入、傳輸、計算)時間=max(輸入時間,計算時間+傳輸時間)A輸入傳輸計算B輸入8.4.4多緩沖( Circular Buffer ) 雙緩沖可以實現對緩沖區中數據的輸入和提取,與CPU的計算,三者并行工作。所以雙緩沖進一步加快了I/O的速度,提高了設備的利用率。 當對緩沖區中數據的輸入和提取的速度基本相匹配時,采用雙緩沖可使兩者并行工作,獲得
24、較好的效果。但是如果兩者的速度相差甚遠時,雙緩沖的效果就不夠理想了。如果增加緩沖區的個數,情況就會有所改善。8.4.4多緩沖( Circular Buffer )-1 我們可以將多個緩沖區組織成循環隊列的形式(如下圖所示)。例如對于用作輸入的循環緩沖區,通常提供給輸入進程和計算進程使用,輸入進程不斷向空緩沖區中輸入數據,計算進程則從滿緩沖區中提取數據用于計算。 操作系統 用戶進程 輸入 傳送I/O設備 緩沖區1用戶區緩沖區2緩沖區N8.4.4多緩沖( Circular Buffer )-2循環緩沖的組織1空2空3空4滿5滿6滿空緩沖隊列頭指針E有數據緩沖隊列頭指針F8.4.4多緩沖( Circ
25、ular Buffer )-3進程同步 (1)無空緩沖:E+1=F,輸入進程阻塞,計算進程在消耗一個緩沖后喚醒它。 (2)無數據:E=F,計算進程阻塞,輸入進程在裝滿一個緩沖后喚醒它。緩沖使用 設置兩個過程 (1)GetDatabuf:取有數據的緩沖,在取之前要檢查有無數據(見進程同步),F=(F+1) mod N. (2) GetEmptybuf:取空緩沖,在取之前要檢查有無空緩沖(見進程同步),E=(E+1) mod N. 8.4.5緩沖池 當系統配置較多的設備時,使用專用緩沖區就要消耗大量的內存空間,且其利用率不高。為了提高緩沖區的利用率,目前廣泛使用公用緩沖池,池中的緩沖區可供多個進程
26、共享。對于同時用于輸入/輸出的公用緩沖池,至少含有三種類型的緩沖區:空緩沖區、裝滿輸入數據的緩沖區和裝滿輸出數據的緩沖區。為了管理上的方便,可將相同類型的緩沖區鏈成一個隊列,于是就形成三個隊列:空緩沖區隊列、輸入緩沖區隊列和輸出緩沖區隊列。另外還應具有四種工作緩沖區:用于收容輸入數據的工作緩沖區(hin);用于提取輸入數據的工作緩沖區(sin); 用于收容輸出數據的工作緩沖區(hout);用于提取輸出數據的工作緩沖區(sout)。可見,緩沖區工作在收容輸入、提取輸入、收容輸出和提取輸出四種工作方式下(如下圖5所示)。申請和歸還緩沖區 (1)getbuf(type) (2) putbuf(typ
27、e,bufnum) begin begin P(RS(type); P(MS(type); P(MS(type); addbuf(type,bufnum); takebuf(type); V(MS(type); V(MS(type) V(RS(type) end end8.4.5緩沖池-1其中,RS(type) 是為每種緩沖隊列設置的同步信號量,MS(type)是為每種緩沖隊列設置的互斥信號量8.5 輸入/輸出軟件 I/O軟件的分層 輸入/輸出軟件是實現輸入/輸出管理的軟件部分。輸入/輸出軟件設計目標是改善輸入/輸出設備的效率,實現統一標準的輸入/輸出設備管理方式。目前,輸入/輸出軟件設計最常
28、用的方法是分層設計,分為四層,如下圖所示。8.5.1 中斷處理程序 在設備控制器控制下,I/O設備完成了I/O操作后,控制器(或通道)便向CPU發出一中斷請求,CPU響應后便轉向中斷處理程序,中斷處理程序大致包含以下幾步:當中斷處理程序開始執行時,都必須去喚醒阻塞的驅動(程序)進程。在采用信號量機制時,可通過執行V操作,將處于阻塞狀態的驅動(程序)進程喚醒。保護被中斷進程的CPU現場。分析中斷原因,轉入相應的設備中斷處理程序。進程中斷處理,判別此次I/O完成是正常結束中斷還是異常結束中斷,分別作相應處理。恢復被中斷進程或由調度程序選中的進程的CPU的現場。返回被中斷的進程,或進入新選中的進程繼
29、續運行。在UNIX中將以上對各類設備處理相同的部分集中起來,形成中斷總控程序,每當要進行中斷處理時,都要首先進入中斷總控程序,再按需要轉入不同的設備處理程序。8.5.2 設備驅動程序設備驅動程序通常又稱為設備處理程序,它是輸入/輸出進程與設備控制器之間的通信程序,簡稱為設備驅動進程。它的主要任務是接收上層軟件發來的抽象要求并將設備控制器發來的信號傳送給上層軟件。1設備驅動程序的功能 設備驅動程序包括所有與設備相關的代碼,因此,每個設備都有自己專用的驅動程序。 設備驅動程序的主要功能如下: 將上層軟件傳送來的用戶作業的邏輯輸入/輸出請求轉換為設備的具體要求。 驗證用戶作業輸入/輸出請求的合法性,
30、了解輸入/輸出設備的狀態,傳遞有關參數,設置設備的工作方式。 發出輸入/輸出命令,啟動分配的輸入/輸出設備工作,執行指定的輸入/輸出操作。8.5.2 設備驅動程序-1 及時響應設備控制器或通道發來的中斷請求,根據中斷類型調用相應的中斷處理程序進行處理。 如果計算機系統設置有通道,設備驅動程序還應能夠根據用戶作業的輸入/輸出請求,自動地構成通道程序。設備出錯處理2設備驅動程序的特點 設備驅動程序是請求輸入/輸出的進程與設備控制器之間的一個通信程序。它將進程的輸入/輸出請求傳送給設備控制器,把設備控制器中所記錄的設備狀態、輸入/輸出操作完成情況傳送給請求輸入/輸出的進程。設備驅動程序與輸入/輸出控
31、制方式緊密相關。常用的設備控制方式是中斷和DMA方式。設備驅動程序針對一類具體的設備工作,與設備硬件緊密相關,通常情況下,設備驅動程序需要用匯編語言書寫,目前有很多驅動程序的基本部分已經固化在ROM中。8.5.2 設備驅動程序-23設備驅動程序的處理過程將用戶和上層軟件對設備控制的抽象要求轉換成對設備的具體要求,如對抽象要求的盤塊號轉換為磁盤的盤面、磁道及扇區。檢查I/O請求的合理性。讀出和檢查設備的狀態,確保設備處于就緒態。傳送必要的參數,如傳送的字節數,數據在主存的首址等。工作方式的設置。啟動I/O設備,并檢查啟動是否成功,如成功則將控制返回給I/O控制系統,在I/O設備忙于傳送數據時,該
32、用戶進程把自己阻塞,直至中斷到來才將它喚醒,而CPU可干別的事。8.5.2 設備驅動程序-34設備出錯處理 設備出錯處理由設備驅動程序完成。 在設備使用上,大多數的設備出錯情況,只有驅動程序知道該如何處理。一般來講,設備驅動程序會根據使用出錯的情況不同,采用不同的處理方法。 如果發生的錯誤很小,不影響設備的正常使用,設備驅動程序會忽略錯誤。 如果發生的錯誤不能忽略,則設備驅動程序會采取重試的方法或報警的方法。如何報警、如何處理錯誤則與操作系統無關,可能需要人工解決。 例如,使用打印機時出錯,打印機驅動程序通過系統通知用戶重試確認。如果打印機缺紙出錯,打印機驅動程序通過系統通知用戶處理,處理好后
33、可繼續運行。使用磁盤時由于位示圖等關鍵信息出錯,則磁盤驅動程序通過系統打印出錯誤信息并終止執行,驅動程序自身不能處理。8.5.3 與設備無關的操作系統軟件1設備無關的軟件定義 設備驅動程序與設備之間存在著緊密關系,即設備驅動程序不能獨立于設備,而最上層的用戶級輸入/輸出軟件卻要求用戶程序對設備的使用獨立于具體使用的物理設備,實現設備獨立性。因此,在設備驅動程序與用戶級輸入/輸出軟件之間需要再加上一層軟件,這層軟件是與設備無關的軟件,也稱為設備獨立性軟件。2設備的邏輯名與物理名之間的映射 正如用戶程序中要使用邏輯地址而不使用物理地址一樣,在用戶程序中使用設備的邏輯名而不使用設備的物理名。 設備的
34、邏輯名是系統中預先設計的統一名稱,不依賴于設備,可以是一個簡單的字符串或一個整數,應用在與設備有關的所有軟件模塊中。設備的物理名是系統提供的標準名稱,是永久的、不可改變的。設備驅動程序需要將設備的邏輯名映射為物理名,并按照設備的邏輯名進行設備的分配和回收。 8.5.3 與設備無關的操作系統軟件-1 邏輯設備表(logical unit table)實現了設備的邏輯名到物理名的映射。 對于單用戶單進程系統,整個系統設置一個邏輯設備表。由于系統中所有進程的設備分配情況都記錄在同一表中,不允許具有相同的邏輯設備名。對于多用戶多進程系統,系統為每個用戶設置一個邏輯設備表。每當用戶登錄時,便為用戶建立一
35、個進程,同時也為之建立一個邏輯設備表,并將該表放入進程的進程控制塊中,只需要查詢進程控制塊即可實現邏輯名到物理名的映射。 在邏輯設備表中包含有邏輯設備名、物理設備名和設備驅動程序的入口地址等信息。當進程用邏輯設備名來請求分配輸入/輸出設備時,系統為它分配相應的物理設備,并在邏輯設備表上建立一個表目,寫上應用程序中使用的邏輯設備名和系統分配的物理設備名,以及該設備的驅動程序入口地址。 一個用戶程序在使用磁盤、打印機等設備時,無需因為每一種設備類型的變化而修改程序,操作系統可以根據當時設備的配置情況自由分配適當類型的設備,一臺設備不能提供使用,可以用相同種類的設備來提供。8.5.3 與設備無關的操
36、作系統軟件-23設備獨立性軟件為用戶使用設備提供了統一操作,通過限制操作的權限達到保護設備的目的 有了設備獨立性軟件,無論何種設備,都可以向用戶輸入/輸出程序層提供統一的接口。對所有的設備,用戶的操作都是相同的,都通過read實現讀操作,從輸入設備讀取數據。通過write實現寫操作,將數據輸出到輸出設備。系統對每個設備設置讀寫權限,最終實現保護設備的目的。4實現設備獨立性軟件的優點 實現設備獨立性軟件具有如下優點。 使得設備分配時具有靈活性,提高了設備的利用率 易于實現輸入/輸出重定向,提高系統的可適用性 用于輸入/輸出操作的設備可以更換,即重定向,而不必改變應用程序。8.5.4 用戶級輸入/
37、輸出軟件 大多數的輸入/輸出軟件都在操作系統核心中實現,只有與用戶程序鏈接在一起的庫函數以及運行在操作系統核心之外的其它程序才在用戶層實現。1庫文件 對輸入/輸出系統進行調用的系統函數屬于用戶級,如對設備的read、write操作。2spooling程序技術(1)spooling程序技術定義 脫機輸入/輸出是通過外圍控制機實現信息的輸入/輸出,輸入/輸出不需要主機的參與,使得主機的處理與輸入/輸出過程并行進行,提高了系統的效率,特別是處理器的效率。 8.5.4 用戶級輸入/輸出軟件-1 隨著計算機處理速度的提高,特別是多道程序的引入,外圍控制機的輸入/輸出控制功能可以用程序來模擬,用程序來替代
38、外圍控制機。模擬輸入程序將大量需要處理的信息預先輸入到磁盤中暫存,實現了“預輸入”,當用戶作業需要輸入信息時則直接從磁盤中輸入。同樣,當用戶作業需要輸出信息時,會暫時將信息保存到磁盤中,待作業完成后,模擬輸出程序再將磁盤中的輸出信息輸出到輸出設備,實現了“緩輸出”。這樣的輸入/輸出是在主機的控制下,實現的脫機輸入/輸出,稱為spooling(simultaneaus periphernal operations on-line),也稱為假脫機。8.5.4 用戶級輸入/輸出軟件-2(2)spooling系統的組成 8.5.4 用戶級輸入/輸出軟件-3spooling系統主要包括如下四個部分:輸入
39、井和輸出井輸入緩沖區和輸出緩沖區預輸入進程SPI和緩輸出進程SPO井管理程序 在作業執行過程中,進程如果請求啟動某臺輸入/輸出設備操作,操作系統得到該請求并調出井管理程序,控制從相應的輸入井讀取數據或將信息輸出到輸出井。輸入井中的信息被作業取走后,輸入井應該歸還。同樣,如果輸出井中的信息被送入到輸出緩沖區后,輸出井也應該歸還。操作系統通過預輸入表和緩輸出表管理輸入作業和輸出作業。表中有作業名、作業狀態、文件名、設備類、數據起始位置、數據當前位置等信息。當輸入井或輸出井刪除時,作業信息也從表中刪除。 井管理程序的主要工作就是管理預輸入表和緩輸出表及回收輸入井和輸出井。8.5.4 用戶級輸入/輸出
40、軟件-4(3)應用spooling技術實現共享打印機 打印機屬于獨享設備,但利用spooling技術,可將它改造為一臺可供多個用戶共享的設備,從而提高設備的利用率,方便用戶的使用。 當用戶進程申請打印輸出時,spooling系統同意為進程打印輸出,但并不真正分配打印機給該進程,而只為該進程做了兩件事。輸出進程在輸出井中為之申請一空閑盤塊區,并將要打印的數據送入其中;輸出進程再為用戶進程請求一張空白的緩輸出表,并將用戶的打印要求填入表中,如果還有作業打印輸出,系統仍可以接收請求并將其寫入表中。 打印機可能使用時間非常長,在用戶使用期間,其他用戶無法打印。為解決該問題,大多數操作系統都為打印機創建
41、了一個特殊的守護進程,由守護進程從輸出井中取出用戶作業進行打印。而不需要用戶進程參與打印,這樣,用戶進程在將打印數據送入輸出井之后不需要等待打印,繼續運行。8.5.4 用戶級輸入/輸出軟件(續)(4)spooling技術的特點 提高了輸入/輸出速度 如同脫機輸入輸出一樣,spooling提高了輸入/輸出速度,緩和了處理器與低速輸入/輸出設備之間速度不匹配的矛盾。 將獨占設備改造為共享設備 通過輸入井和輸出井實現了獨占設備向共享設備的轉變。 實現了虛擬設備功能 實現了將獨占設備變換為若干個對應的邏輯設備。8.6 設備的分配和回收 在多道程序環境下,設備必須由系統分配。每當進程向系統提出I/O請求
42、時,設備分配程序按照一定的策略,把其所需的設備及其有關資源(如緩沖區、控制器和通道)分配給該進程。在分配設備時還必須考慮系統的安全性,避免發生死鎖現象。8.6.1設備分配原則1根據設備的固有屬性而采取的策略獨享方式:獨享方式是指將一個設備分配給某進程后,便一直由它獨占,直至該進程完成或釋放該設備為止,系統才能將該設備分配給其它進程使用。這種分配方式是對獨占設備采用的分配策略。它不僅往往造成設備利用率低,而且還會引起系統死鎖。8.6.1設備分配原則-1共享方式 共享方式是指將共享設備(磁盤)同時分配給多個進程使用。但是這些進程對設備的訪問需進行合理的調度。虛擬方式 虛擬方式是指通過高速的共享設備
43、,把一臺慢速的以獨占方式工作的物理設備改造成若干臺虛擬的同類邏輯設備,這就需要引入SPOOLing技術。虛擬設備屬于邏輯設備。2設備分配算法(與進程的調度算法相似)先來先服務:當多個進程同時向某一設備提出I/O請求時,該算法就根據對該設備提出請求的先后次序將這些進程排列成一個設備請求隊列,設備分配程序把設備首先分配給隊首進程。優先級高者優先:對優先權高的進程所提出的I/O請求賦予高優先權,在形成設備隊列時,將優先級高的進程排在設備隊列前面,先得到分配。而對于優先權相同的I/O請求,則按先來先服務原則排隊分配。8.6.1設備分配原則-23設備分配中的安全性安全分配方式 每當進程發出一個I/O請求
44、后,便進入阻塞狀態,直到其I/O操作完成時才被喚醒。當它運行時不保持任何設備資源,打破了產生死鎖一個必要條件“請求和保持”,所以這種分配方式是安全的。但是這種分配算法使得CPU與I/O設備串行工作,設備的利用率比較低。不安全分配方式 進程發出一個I/O請求后仍可以繼續運行,需要時還可以發第二個I/O請求、第三個I/O請求。只有當進程所請求的設備已被另一個進程占用時,進程才進入阻塞狀態。這種分配方式是不安全,因為它可能具備“請求和保持”條件,從而可能造成系統死鎖。8.6.2 設備數據結構設備分配程序是負責向對系統提出I/O請求的進程分配設備,及其相應的控制器和通道。數據結構有:系統設備表(SDT)、設備控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT)。每個表的具體內容如下圖所示。在整個系統中,有一張系統設備表(SDT),用于記錄系統中全部設備的信息。每個設備占一個表目,其中包括設備類型
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 豬鏈球菌病的臨床鑒別與防治
- 房屋更名合同協議書模板
- 物資清點合同協議書模板
- 某蔬菜瓜果物流園商業計劃書
- 國潮活動策劃方案
- 美業資源合作合同協議書
- 公司土地租賃合同協議書
- 租地合租地合同協議書
- 武漢動物基因疫苗項目商業計劃書范文參考
- 商丘鋁合金精密壓鑄件項目可行性研究報告
- 回收二手機免責協議書模板
- 二年級道法《我能行》
- 8.1 文化的民族性與多樣性 課件-2022-2023學年高中政治統編版必修四哲學與文化
- 2024年廣東省廣州市市中考英語試卷真題(含答案解析)
- 全冠修復的護理技術
- 揭榜掛帥 項目協議書
- 2024年廣東省廣州市市中考英語試卷真題(含答案)
- 注射泵操作使用課件
- DL∕T 5362-2018 水工瀝青混凝土試驗規程
- CB-Z-806-2016船舶動力定位模型試驗規程
- 《馬克思主義政治經濟學》教案
評論
0/150
提交評論