




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第五章 設 備 管 理 第五章第五章 設備管理設備管理 第五章 設 備 管 理 本章要點 設備管理的主要功能、模型 I/O子系統的組成、結構 設備的控制、I/O控制 設備的類型 設備分配 I/O緩沖技術 虛擬設備與SPOOLing系統 磁盤設備的管理第五章 設 備 管 理 設備管理的功能 設備分配 設備映射 設備驅動 I/O緩沖區的管理第五章 設 備 管 理 I/O設備分類 根據外部設備的用途不同,可以將其分為輸入/輸出型設備與存儲型設備; 根據外設傳輸的基本數據單位不同,可以將設備分為塊型設備與字符型設備; 按照資源管理的方式不同,可以將設備分為獨占型設備和共享型設備。第五章 設 備 管 理
2、 輸入/輸出型 VS 存儲型 輸入/輸出型設備:鍵盤、鼠標、顯示器、讀卡機、掃描儀、打印機、繪圖儀、數碼相機等。 存儲型設備:磁帶機、磁鼓機、磁盤機等。可用作輸入,也可用作輸出。主要用于長期保存信息,但需要管理其上的存儲空間。 可以在存儲設備上建立文件系統。 有組織、有結構地長期存儲信息。第五章 設 備 管 理 塊型設備 VS 字符型設備 塊型設備通常就是存儲型設備。這類設備由若干長度相同的塊構成。 一塊的長度通常為2n個字節,如256B、1024B等。對這類設備來說,塊是存儲分配的基本單位,也是I/O傳輸的基本單位。 字符型設備通常就是輸入/輸出型設備。這類設備I/O傳輸的基本單位是字節。第
3、五章 設 備 管 理 獨占型 VS 共享型 獨占型設備包括所有的字符型設備及塊設備 任意時間段內最多只能被一個進程占用。 共享型設備包括除磁帶機以外的所有塊型設備。 宏觀上,一個共享型設備可以被多個進程同時占用;微觀上,多個進程交替使用同一設備。 進程使用這類設備時,無須申請或釋放設備,也不存在某個進程占用設備的問題。第五章 設 備 管 理 I/O系統的結構系統的結構 總線型I/O系統的結構I/O設備I/O設備I/O設備I/O設備I/O設備CPU內存系統總線第五章 設 備 管 理 通道型I/O系統結構I/O設備I/O設備I/O設備I/O設備I/O設備CPU內存系統總線CPUI/O通道I/O通道
4、I/O通道第五章 設 備 管 理 具有控制器的I/O系統結構 傳統的設備 = 機械部分 + 電子部分 電子部分在系統的控制下驅動機械部分運轉,完成I/O操作 由于設備中電子部分比機械部分的速度快得多,為了降低硬件成本,將電子部分從設備中分離出來作為一個獨立的部件,這就是控制器。 分離之后的設備僅由機械部分構成,一個控制器可與多個設備相連,交替地或分時地控制與其相連的設備。例如,磁盤控制器可以控制多個磁盤驅動器。第五章 設 備 管 理 具有控制器的I/O系統結構I/O設備I/O設備I/O設備I/O設備I/O設備CPU內存系統總線CPUI/O通道I/O通道控制器控制器控制器控制器第五章 設 備 管
5、 理 設備的控制設備的尋址與操作 從處理機的角度看,各種外部設備可以看作是由一組設備寄存器組成的。 常見的設備寄存器有:操作方式寄存器、命令寄存器、數據寄存器、狀態寄存器等。 為了使CPU能夠尋址這些設備寄存器,硬件平臺引入了I/O端口地址的概念。第五章 設 備 管 理 設備的控制設備的尋址與操作 I/O端口地址的編址方式有兩種: 將設備寄存器與內存物理單元統一編址; 獨立于內存物理地址為設備寄存器編址。 無論一個設備是否由多個控制器控制,或者一個控制器控制了多少個設備,每一個設備都能通過這些寄存器的地址唯一確定。第五章 設 備 管 理 設備的控制即插即用 隨著外部設備種類增加,設備間極可能發
6、生沖突。即,設備使用的中斷號、DMA、內存地址、端口地址可能因相同或重疊而導致設備無法正常工作。 手工調整這些設備的相關參數要求用戶具有較多的計算機硬件知識,并對系統配置的硬件有較全面的了解。第五章 設 備 管 理 設備的控制即插即用 是指,插上了就可使用,不需要用戶進行其它設置。 當用戶插入一個“即插即用”適配卡或設備時, “即插即用”功能就可以自動進行檢測,配置相應的接口參數,并安裝相應的驅動程序。第五章 設 備 管 理 設備的控制即插即用 對已安裝硬件的自動和動態識別 包括系統初始安裝時、兩次系統啟動之間以及運行時發生的硬件事件(如設備的插入/拔出)的響應; 配合操作系統分配/再分配硬件
7、資源 加載相應的驅動程序。 當系統中加入新設備時,如果操作系統中沒有集成相應的設備驅動程序,則會要求用戶指定驅動程序的位置并完成驅動程序的安裝。第五章 設 備 管 理 設備驅動程序 設備驅動程序一般由設備制造商提供,不包含在OS中。 但是,為了方便用戶,OS軟件包中通常會集成提供標準的、通用的或者流行的、常用設備廠商的設備驅動程序供用戶選擇。 從系統分層的觀點來講,設備驅動程序可以是OS的一部分,也可以被認為是硬件設備的一部分。第五章 設 備 管 理 5.2 I/O控制方式控制方式 程序I/O方式 在早期的計算機系統中,由于沒有中斷裝置,處理機對于I/O設備的控制采取程序I/O方式。 也稱忙等
8、待狀態或循環測試方式。 對于讀操作,這種方式的基本工作過程為:第五章 設 備 管 理 1 處理機向設備(或設備控制器)發出一條I/O指令啟動設備、輸入數據,同時將狀態寄存器中的“忙”標志置為1。2 處理機不斷地循環測試忙標志,直到忙標志變為0;3 處理機通過I/O讀指令將數據從數據寄存器中取出,送入內存中指定單元;4 若數據已讀完,則結束本過程,否則轉1,繼續讀下一個數據。第五章 設 備 管 理 在程序I/O方式中,由于處理機的速度非常快,而設備的速度相對較慢,使得處理機的絕大部分時間都處于等待設備完成數據I/O的循環測試中,造成對CPU的極大浪費。第五章 設 備 管 理 中斷I/O方式 對于
9、讀操作,中斷方式的基本過程為: 處理機向設備(設備控制器)發出一條I/O指令,啟動設備,輸入數據; 處理機完成其它工作,設備準備數據; 當設備準備好數據并將數據存入數據寄存器,向處理機發中斷信號,告之數據已準備好; 處理機響應中斷請求,從數據寄存器中將數據取出,送入內存的指定單元; 若數據已讀完,結束。否則,轉1,繼續。 中斷技術控制I/O的優點在于,設備與CPU并行,提高了處理機的利用率。性能優于程序控制I/O方式。第五章 設 備 管 理 DMA方式 中斷I/O比程序I/O方式高效,但以字/字節為傳輸單位。每完成一個字/字節的傳輸,設備均要向CPU請求一次中斷。 對于塊設備而言,這種方式的效
10、率還是顯得有些低下。因為,頻繁的、大量的中斷所累積的開銷很大。 為了進一步減少處理機對I/O事務的干預,出現了DMA(Direct Memory Access)直接存儲器方式。第五章 設 備 管 理 DMA方式的特點 數據傳輸的基本單位是數據塊; 數據直接從設備送入內存,或者直接從內存送入設備; 僅在傳送一個或多個數據塊的開始和結束時,才需要處理機的干預。 與中斷方式相比,DMA方式大大減少了數據I/O對處理機的占用,進一步提高了處理機的利用率,提高了處理機和I/O設備的并行操作能力。第五章 設 備 管 理 2. DMA控制器的組成控制器的組成 圖 5-8 DMA控制器的組成 DRMARDCC
11、RI/O控制邏輯主機控制器接口控制器與塊設備接口count內存CPU命令系統總線DMA控制器第五章 設 備 管 理 為了實現在主機與控制器之間成塊數據的直接交換, 必須在DMA控制器中設置如下四類寄存器: (1) 命令/狀態寄存器CR。用于接收從CPU發來的I/O命令或有關控制信息, 或設備的狀態。 (2) 內存地址寄存器MAR。在輸入時,它存放把數據從設備傳送到內存的起始目標地址;在輸出時,它存放由內存到設備的內存源地址。 (3) 數據寄存器DR。用于暫存從設備到內存,或從內存到設備的數據。 (4) 數據計數器DC。 存放本次CPU要讀或寫的字(節)數。 第五章 設 備 管 理 3. DMA
12、工作過程工作過程 圖 5-9 DMA方式的工作流程 設置AR和DC初值啟動DMA傳送命令挪用存儲器周期傳送數據字存儲器地址增1字計數寄存器減1DC= 0?請求中斷在繼續執行用戶程序的同時,準備又一次傳送否是第五章 設 備 管 理 向I/O控制器發讀命令讀I/O控制器的狀態檢查狀態?從I/O控制器中讀入字向存儲器中寫字傳送完成?未就緒就緒出錯CPUI/OI/OCPUI/OCPUCPU 內存下條指令完成未完向I/O控制器發讀命令讀I/O控制器的狀態檢查狀態?從I/O控制器中讀字向內存中寫字傳送完成?就緒出錯CPUI/OI/OCPUI/OCPUCPU 內存下條指令完成未完中斷CPU做其它事向I/O控
13、制器發布讀塊命令CPUDMACPU做其它事讀DMA控制器的狀態中斷DMACPU下條指令(a) 程序I/O方式(b) 中斷驅動方式(c) DMA方式第五章 設 備 管 理 I/O通道方式 通道相當于一個功能單純的處理機,專門用于處理I/O操作。通道有自己的運算控制部件和指令系統,但沒有專門的內存。而是通過“周期竊用”方式與主機共享內存。 通道通過執行通道程序來完成I/O操作。 通道程序是通道指令的有序序列,它由系統中的輸入/輸出進程根據用戶進程的I/O要求來確定,可以是事先編制好的程序段,也可以動態產生。通道程序以及需要與設備交換的數據均放置在內存中。第五章 設 備 管 理 2. 通道類型通道類
14、型 1) 字節多路通道(Byte Multiplexor Channel) 圖 5-3 字節多路通道的工作原理 控制器A控制器B控制器C控制器D控制器NA1A2A3子通道AB1B2B3子通道BC1C2C3子通道CN1N2N3子通道NA1B1C1A2B2C2設備第五章 設 備 管 理 2) 數組選擇通道(Block Selector Channel) 字節多路通道不適于連接高速設備,這推動了按數組方式進行數據傳送的數組選擇通道的形成。這種通道雖然可以連接多臺高速設備,但由于它只含有一個分配型子通道,在一段時間內只能執行一道通道程序, 控制一臺設備進行數據傳送, 致使當某臺設備占用了該通道后,便一
15、直由它獨占, 即使是它無數據傳送,通道被閑置, 也不允許其它設備使用該通道, 直至該設備傳送完畢釋放該通道。可見,這種通道的利用率很低。 第五章 設 備 管 理 3) 數組多路通道(Block Multiplexor Channel) 數組選擇通道雖有很高的傳輸速率,但它卻每次只允許一個設備傳輸數據。數組多路通道是將數組選擇通道傳輸速率高和字節多路通道能使各子通道(設備)分時并行操作的優點相結合而形成的一種新通道。它含有多個非分配型子通道, 因而這種通道既具有很高的數據傳輸速率,又能獲得令人滿意的通道利用率。也正因此,才使該通道能被廣泛地用于連接多臺高、中速的外圍設備,其數據傳送是按數組方式進
16、行的。 第五章 設 備 管 理 I/O通道方式 一條通道指令可以傳送一組數據,一個通道程序可以傳送多組數據。多組數據全部傳送完畢后(即一個通道程序執行完畢),才向處理機發出一次中斷。 通道不僅可以傳送數據,更重要的是它還完成對設備的控制。在通道的協助下,主機只需發出一個啟動通道、執行通道程序的指令即可。主機僅與通道直接通信,不必考慮設備的具體控制以及如何完成數據傳送等問題,從而大大減輕了主機的負擔。第五章 設 備 管 理 第五章 設 備 管 理 3. “瓶頸瓶頸”問題問題 圖 5-4 單通路I/O系統 設備1設備2設備3設備4設備5設備6設備7控制器1控制器2控制器3控制器4通道1通道2存儲器
17、第五章 設 備 管 理 圖 5-5 多通路I/O系統 I/O設備控制器1控制器2通道1通道2存儲器I/O設備I/O設備I/O設備第五章 設 備 管 理 5.3 緩緩 沖沖 管管 理理 5.3.1 緩沖的引入緩沖的引入 (1) 緩和CPU與I/O設備間速度不匹配的矛盾。 (2) 減少對CPU的中斷頻率, 放寬對CPU中斷響應時間的限制。 (3) 提高CPU和I/O設備之間的并行性。 第五章 設 備 管 理 提前讀 指用戶進程從I/O緩沖區中取走前一個數據以后,立即發出對下一個數據的輸入請求。 操作系統將在適當的時候響應該請求以便把用戶進程需要的下一個數據從用戶進程指定的輸入設備讀入到I/O緩沖區
18、中。 顯然,用戶進程加工前一個數據的工作與操作系統輸入下一個數據的工作可以同時進行。第五章 設 備 管 理 延后寫 是指,當用戶進程請求輸出數據時,操作系統將很快把用戶進程請求輸出的數據從用戶進程的工作區中取走并將其暫時存放在I/O緩沖區中。 直到用戶進程指定的輸出設備空閑時,操作系統才把暫時存放在I/O緩沖區中的用戶進程的輸出數據寫入用戶進程指定的輸出設備上。 顯然,用戶進程生成下一個輸出數據的工作與操作系統輸出前一個輸出數據的工作可以同時進行。第五章 設 備 管 理 硬件緩沖和軟件緩沖 硬件緩沖區配置在設備中,具有專門的用途。對處理機透明,不需要處理機的直接管理,不會影響系統性能。 軟件實
19、現的緩沖區是內存空間的一部分。其目的是為了彌補硬件緩沖區的不足。因為并非所有外設都擁有,或者足夠擁有硬件緩沖區。 操作系統中介紹的緩沖區都是指軟件緩沖區。第五章 設 備 管 理 緩沖區的組織形式 單緩沖 雙緩沖 循環緩沖 緩沖池第五章 設 備 管 理 假定,一塊數據從外部設備輸入到內存所花費的時間為T,在內存中移動所花費的時間為M,被用戶進程加工處理所花費的時間為C,那么 在沒有使用I/O緩沖區的情況下,平均每塊數據的處理時間近似為:T+C 在使用單緩沖區的情況下,平均每塊數據的處理時間近似為:max(T,C)+M1. 單緩沖單緩沖(Single Buffer)只在內存中為進程對某個設備只在內
20、存中為進程對某個設備的的I/O訪問分配一個緩沖區訪問分配一個緩沖區 。第五章 設 備 管 理 工作區處理(C)緩沖區傳送(M)輸入(T)I/O設備(a)T1M1C1T2M2C2T3M3C3T4t(b)用戶進程圖 5-11 單緩沖工作示意圖 第五章 設 備 管 理 相對于沒有I/O緩沖區的情形,單I/O緩沖區能提高用戶進程的運行效率。 如果用戶進程在對有關數據進行加工處理時不釋放I/O緩沖區,那么用戶進程的性能并不能得到改善。 如果T遠遠大于C,即外部設備的I/O速度比用戶進程的計算速度慢得多,那么,單I/O緩沖區不會顯著改善用戶進程的性能。第五章 設 備 管 理 2. 雙緩沖雙緩沖(Doubl
21、e Buffer) 增加一個緩沖區,兩個緩沖區可以交替使用。 當數據從緩沖區復制到用戶進程空間時,輸入設備不必等待,可立即開始向另一個緩沖區輸入數據。因此,增加了一個緩沖區后,前述的平均工作時間可近似為: max(T,C) 若用戶進程陣發性I/O的數據超過一個緩沖區而不滿兩個緩沖區時,雙緩沖使進程不會在I/O數據期間被阻塞。第五章 設 備 管 理 工作區用戶進程緩沖區1緩沖區2I/O 設備T1(緩沖1)M1C1M2C2M3C3T2(緩沖2)T3(緩沖3)M4C4T4(緩沖4)(a)(b)圖 5-12 雙緩沖工作示意圖 第五章 設 備 管 理 圖 5-13 雙機通信時緩沖區的設置 緩沖區緩沖區A
22、機B機(a) 單緩沖發送緩沖區接收緩沖區接收緩沖區發送緩沖區A機B機(b) 雙緩沖第五章 設 備 管 理 循環緩沖 當用戶進程處理數據的速度較快、外部設備處理數據的速度較慢,或者用戶進程陣發性輸入/輸出的數據較多時,必須考慮增加緩沖區的數量以改善系統性能,這就是多緩沖區方式。 多個I/O緩沖區常常被組織成一個環形隊列,故,稱為循環緩沖。 實質上,雙緩沖可以看作是循環緩沖的一個特例。第五章 設 備 管 理 圖 5-14 循環緩沖 RGGGRG165423NextiNextgRGGGRC165423NextiNextgcurrent第五章 設 備 管 理 2. 循環緩沖區的使用循環緩沖區的使用 (
23、1) Getbuf過程。(2) Releasebuf過程。 第五章 設 備 管 理 GetBuf() 指針Nextg所指向的緩沖區給進程使用 將其改為現行工作緩沖區,并將current指針指向它,同時nextg指向下一個滿緩沖區。 每當輸入進程要輸入數據的時候也調用getbuf()過程,將nexti指針指向的緩沖區供該進程使用,nexti指向下一個空緩沖區。第五章 設 備 管 理 ReleaseBuf() 當計算進程使用完C緩沖區中的數據時,調用releasebuf過程,釋放C緩沖區,并將C緩沖區改為R緩沖區 當輸入進程將數據裝入緩沖區時,也調用releasebuf過程,將該緩沖區釋放,并將R
24、為G 緩沖區。第五章 設 備 管 理 3. 進程同步進程同步 (1) Nexti指針追趕上Nextg指針。(2) Nextg指針追趕上Nexti指針。 第五章 設 備 管 理 5.3.4 緩沖池緩沖池(Buffer Pool) 上述三種緩沖區的組織形式僅適用于某種特定的I/O進程和計算進程,屬于專用緩沖。 當系統中的設備很多時,將會有許多這樣的循環緩沖區,消耗大量的內存空間,而且其利用率也不高。 為了提高緩沖區的利用率,可以采用公共緩沖池技術,其中的緩沖區可以為多個設備和進程服務。第五章 設 備 管 理 1. 緩沖池的組成緩沖池的組成 對于既可用于輸入又可用于輸出的公用緩沖池, 其中至少應含有
25、以下三種類型的緩沖區: 空(閑)緩沖區; 裝滿輸入數據的緩沖區; 裝滿輸出數據的緩沖區。 為了管理上的方便,可將相同類型的緩沖區鏈成一個隊列,于是可形成以下三個隊列: (1) 空緩沖隊列emq。 (2) 輸入隊列inq。 (3) 輸出隊列outq。 第五章 設 備 管 理 2. Getbuf過程和過程和Putbuf過程過程 Procedure Getbuf(type) begin Wait(RS(type); Wait(MS(type); B(number) KG-*3=Takebuf(type); Signal(MS(type); end Procedure Putbuf(type, num
26、ber) begin Wait(MS(type); Addbuf(type, number); Signal(MS(type); Signal(RS(type); end 第五章 設 備 管 理 3. 緩沖區的工作方式緩沖區的工作方式 圖 5-15 緩沖區的工作方式 hinsoutsinhout收容輸入提取輸出用戶程序提取輸入收容輸出緩沖池第五章 設 備 管 理 5.4 I/O軟件 5.4.1 I/O軟件的設計目標和原則 與具體設備無關 統一命名 對錯誤的處理 緩沖技術 設備的分配和釋放 I/O控制方式第五章 設 備 管 理 I/O軟件的層次結構 用戶層軟件:實現與用戶交互的接口。 設備獨立性
27、軟件:負責設備的保護、分配與釋放等。 設備驅動程序:與硬件直接相關,負責向設備發出操作指令,驅動設備工作。 中斷處理程序:保存CPU環境,轉入相應的中斷處理程序,處理完后返回中斷現場。第五章 設 備 管 理 5.4.2 中斷處理程序 中斷的基本概念 指計算機在執行期間,系統內發生任何非尋常的或非預期的急需處理的事件,使得CPU暫時中斷當前正在執行的程序而轉去執行相應的事件處理程序,待處理完畢后再返回原來的程序繼續執行或調度新的進程執行。 中斷源:引起中斷發生的事件 中斷請求:中斷源向CPU發出的請求中斷處理信號 中斷響應:CPU收到中斷請求后轉相應的事件處理程序 開中斷和關中斷:由CPU內部的
28、處理機狀態字PSW的中斷允許位控制,為了保證程序執行的原子性。第五章 設 備 管 理 中斷技術 中斷的分類與優先級 外中斷:來自CPU和內存外部的中斷,包括I/O中斷、外部信號中斷(ESC鍵)、定時器引起地時鐘中斷和程序斷點引起的中斷。 內中斷:指CPU和內存內部產生的中斷(也稱為陷阱),如程序運算引起的各種錯誤,包括地址非法、校驗錯、頁面失效、算術溢出等等。 優先級:為不同的中斷源設置固定的優先級。 軟中斷:通信進程之間用來模擬硬中斷的一種信號通信方式,收到軟中斷信號的進程只有占有CPU才能執行相應的功能。第五章 設 備 管 理 圖 5-20 中斷現場保護示意圖 PSW程序狀態字PC(N1)
29、程序計數器R0Rn寄存器開始返回用戶程序中斷服務子例程PSWPC(N1)中斷棧TTM線指針YNN1R0Rn第五章 設 備 管 理 中斷處理過程第五章 設 備 管 理 5.4.3 設備驅動程序 設備驅動程序,又稱為設備處理程序,它是I/O進程與設備控制器之間的通信程序。 接收來自上層軟件發來的抽象I/O請求,將其轉換為具體要求后,發送給設備控制器,啟動設備執行;另一方面,將由設備控制器發來的信號傳送給上層軟件。第五章 設 備 管 理 5.4.4 設備獨立性設備獨立性 設備無關性,指的是應用程序獨立于具體使用的物理設備。 為了實現設備的獨立性(無關性),操作系統要求進程申請設備時,應當指明所需設備
30、的類別(或者邏輯設備名),不能指定某一設備的具體編號。 系統根據進程的請求以及資源分配情況在相應類別的設備中選擇一個空閑的物理設備,并將其分配給申請者。第五章 設 備 管 理 優點 提高設備的利用率。從根本上講,申請者只關心使用設備的結果,不在乎到底使用哪一個設備。假設申請者指定具體設備,被指定的設備可能正在被使用,因而申請無法滿足。而此時,其它同類設備可能空閑。這將造成資源的浪費和進程的不必要等待。 程序與設備無關。假設申請者指定具體設備,而被指定的設備已損壞或未聯機,則要么程序無法正常工作,要么修改程序。第五章 設 備 管 理 5.5 設備分配 分配:設備、控制器、通道 需要記錄與之相關的
31、信息。包括:資源標識、物理連接情況、占有進程、等待進程等。 具體實現時,可以將其分為設備控制表、控制器控制表、通道控制表和系統設備表。第五章 設 備 管 理 5.5.1 設備分配中的數據結構設備分配中的數據結構 1. 設備控制表設備控制表DCT 圖 5-16 設備控制表 第五章 設 備 管 理 2. 控制器控制表、控制器控制表、 通道控制表和系統設備表通道控制表和系統設備表 (c) 系統設備表SDT控制器標識符:controllerid控制器狀態:忙/閑與控制器連接的通道表指針控制器隊列的隊首指針控制器隊列的隊尾指針通道標識符:channelid通道狀態:忙/閑與通道連接的控制器表首址通道隊列
32、的隊首指針通道隊列的隊尾指針(a) 控制器表COCT(b) 通道表CHCT表目1表目i設備類設備標識符DCT驅動程序入口第五章 設 備 管 理 5.5.2 設備分配時應考慮的因素 1. 設備的固有屬性設備的固有屬性 (1) 獨享設備。指該類設備被分配給一個作業后,被這個作業所獨占使用,其他的任何作業不能使用,直到該作業釋放該設備位置。如:打印機。 獨享設備,系統一般采用靜態分配方式。即在一個作業執行之前,將它所需要使用的這類設備分配給它,當作業結束撤離時,才將分配給它的獨享設備收回。 (2) 共享設備。一段時間內可以為多個進程共同使用的設備。對共享設備的分配一般采用動態分配這一方式。 (3)
33、虛擬設備。 第五章 設 備 管 理 2. 設備分配算法設備分配算法 (1) 先來先服務。 (2) 優先級高者優先。 3. 設備分配中的安全性設備分配中的安全性 1) 安全分配方式 2) 不安全分配方式 第五章 設 備 管 理 1. 基本的設備分配程序基本的設備分配程序 1) 分配設備 2) 分配控制器 3) 分配通道 5.5.3 獨占設備的分配程序2. 設備分配程序的改進設備分配程序的改進 1) 增加設備的獨立性 2) 考慮多通路情況 第五章 設 備 管 理 5.5.4 共享設備的分配 進程使用共享型設備不需要申請,當然也就不存在占用或釋放設備的問題。 但是I/O期間只能有一個進程使用設備。因
34、此,進程使用共享設備之前,有一個隱含的申請命令;使用完畢之后,又一個隱含的釋放命令,以實現一次I/O傳輸的排它性,保證操作的正常進行。 使用共享型設備的過程中,進程有可能進入阻塞等待狀態。第五章 設 備 管 理 虛擬設備的引入 獨占型設備的速度一般較慢,進程常需要長時間等待I/O傳輸完成,影響進程的推進速度; 進程在占有設備期間不一定一直使用此設備,而其他申請該設備的進程只能阻塞等待,降低了設備的利用率,影響其他進程的推進速度。 引入虛擬設備技術,能解決獨占設備利用率不高的問題。第五章 設 備 管 理 5.5.5 虛擬設備的分配 虛擬設備技術類似于緩沖區技術,可以認為是為設備提供了多個更大的、
35、無限長度的緩沖區,進一步提高系統的效率。 虛擬設備技術的實現:在獨占型設備與進程之間加入一個共享型設備作為過渡,如圖:進程內存某一區域共享型設備獨占型設備間斷傳輸連續傳輸第五章 設 備 管 理 輸入型虛擬設備的實現 對于輸入型虛擬設備,數據的流向: 獨占型設備 共享型設備 進程空間/內存 假設用于輸入的獨占型設備是讀卡機,用于實現虛擬設備的共享型設備是磁盤,則對于進程所發出的資源申請命令、使用命令及時放命令,操作系統需要完成的工作如下:第五章 設 備 管 理 申請 分配一臺虛擬設備(磁盤區域),分配一臺實設備(一臺讀卡機),將信息由實設備(讀卡機)連續地傳輸到虛擬設備(磁盤區域),釋放實設備(
36、讀卡機); 使用 將數據從虛擬設備(磁盤區域)傳輸到進程空間; 釋放 回收虛擬設備(磁盤區域)。第五章 設 備 管 理 輸出型虛擬設備的實現 對于輸出型虛擬設備,數據的流向: 進程空間/內存 共享型設備 獨占型設備 假設用于輸出的獨占型設備是打印機,用于實現虛擬設備的共享型設備是磁盤,則對于進程所發出的資源申請命令、使用命令及時放命令,操作系統需要完成的工作如下:第五章 設 備 管 理 申請 分配一臺虛擬設備(磁盤區域) 使用 將數據從進程空間傳輸到虛擬設備(磁盤區域) 釋放 申請一臺實設備(打印機),將數據由虛擬設備(磁盤區域)輸出到實設備(打印機),回收實設備(打印機)第五章 設 備 管
37、理 5.5.6 SPOOLing系統 SPOOLing:Simultaneous Peripheral Operations On-Line,即“聯機情況下同時進行的外圍設備操作”,通常稱其為“假脫機操作”。 SPOOLing系統是虛擬設備最典型的代表,包括假脫機輸入和輸出系統兩個部分。 核心思想:在快速輔助存儲設備中建立I/O緩沖區,用于緩存從慢速輸入設備流入內存的數據,或緩存從內存流向慢速輸出設備的數據。第五章 設 備 管 理 2. SPOOLing系統的組成系統的組成 圖 5-19 SPOOLing系統的組成 輸入進程SPi輸入進程SPo輸入緩沖區Bi輸出緩沖區Bo輸入井輸出井磁盤輸入設
38、備輸出設備第五章 設 備 管 理 3. 共享打印機共享打印機 當用戶進程請求打印輸出時, SPOOLing系統同意為它打印輸出, 但并不真正立即把打印機分配給該用戶進程, 而只為它做兩件事: 由輸出進程在輸出井中為之申請一個空閑磁盤塊區, 并將要打印的數據送入其中; 輸出進程再為用戶進程申請一張空白的用戶請求打印表,并將用戶的打印要求填入其中, 再將該表掛到請求打印隊列上。第五章 設 備 管 理 4. SPOOLing系統的特點系統的特點 (1) 提高了I/O的速度。 (2) 將獨占設備改造為共享設備。 (3) 實現了虛擬設備功能。 第五章 設 備 管 理 5.6 磁盤存儲器管理磁盤存儲器管理
39、5.6.1 磁盤性能簡述磁盤性能簡述 1. 數據的組織和格式數據的組織和格式 磁盤設備可包括一個或多個物理盤片;每個盤片分一個或兩個存儲面;每個磁盤面被組織成若干個同心環,稱為磁道(track);每條磁道又被邏輯上劃分成若干個扇區;一個扇區稱為一個盤塊;第五章 設 備 管 理 磁盤的基本存儲單元(扇區)的尋址方式為三維地址:磁盤面號、磁道號、扇區號。 為了管理方便及屏蔽存儲設備的物理細節,操作系統向上層軟件提供統一的借口,常使用一維地址,即只有邏輯磁盤塊號(邏輯扇區號),將磁盤組中所有的扇區從0開始編號; 這里就涉及一維地址與三維地址間相互轉化的問題。第五章 設 備 管 理 Gap102031
40、292293Field GapField GapGap FieldGap FieldGap17741515201774151520IDDataIDDataGap1292293Field GapField1774151520IDDataSectorPhysical Sector 0Physical Sector 1Physical Sector 29BytesSynchByteTrack#Head#Sector#Bytes 1211CRC3SynchByteDataCRC15122600 Bytes/SectorGap第五章 設 備 管 理 磁盤的磁頭工作方式 磁盤:固定頭磁盤和移動頭磁盤。 固
41、定頭磁盤的每一條磁道上都有一個讀/寫磁頭,所有的磁頭都被安裝在一剛性磁臂中,通過磁頭訪問磁道,可以并行讀/寫,磁盤的I/O速度很快。 固定頭磁盤的優點是訪問速度快,其缺點是成本較高、容量受磁頭數量限制。第五章 設 備 管 理 磁盤的磁頭工作方式 移動頭磁盤為每一個盤面配置一個磁頭,所有盤面的磁頭被裝入磁臂中,磁盤I/O時,必須移動磁頭(尋道)。 因此,移動頭磁盤只能進行串行讀/寫,I/O速度相對較慢,但由于其具有結構簡單、成本較低、容量不受磁頭數量限制等優點,因而被廣泛使用。第五章 設 備 管 理 影響磁盤I/O性能的技術 從磁盤讀數據的過程: 磁盤接收到讀指令后,磁頭從當前位置移到目標磁道位
42、置,所需時間稱為尋道時間; 然后,旋轉磁盤,定位數據所在的扇區,所需時間稱為旋轉延遲; 最后,從磁盤上讀取數據,所需的時間稱為數據傳輸時間。 訪問時間 = 尋道時間 + 旋轉延遲 + 傳輸時間第五章 設 備 管 理 尋道時間 尋道時間 :把磁頭從當前位置移動到指定磁道所需要的時間。是影響磁盤數據傳輸率的重要參數,與磁頭移過的磁道數量成正比。 衡量磁盤的尋道性能時,通常使用平均尋道時間。sT第五章 設 備 管 理 旋轉延遲 旋轉延遲與磁盤轉速直接相關,指旋轉磁盤,將指定扇區移動到磁頭下面所需要的時間。 假設:Tr為旋轉時間,r為磁盤轉速(轉數/單位時間),那么 Tr=1/(2r) 例: 1、對于
43、一個轉速為3600rpm的硬盤而言,其每旋轉一周的時間為16.7ms,其平均旋轉延遲為8.3ms。 2、對于一個轉速為300rpm的軟盤而言,其每旋轉一周的時間為200ms,其平均旋轉延遲為100ms。第五章 設 備 管 理 這是指把數據從磁盤讀出或向磁盤寫入數據所經歷的時間。 Tt的大小與每次所讀/寫的字節數b和旋轉速度有關: rNbTt其中,r為磁盤每秒鐘的轉數;N為一條磁道上的字節數, 當一次讀/寫的字節數相當于半條磁道上的字節數時,Tt與T相同, 因此, 可將訪問時間Ta表示為: rNbrTTsa21傳輸時間第五章 設 備 管 理 調整磁盤的I/O性能 綜上所述,傳統上影響磁盤I/O性
44、能的主要技術指標是平均尋道時間和轉速,轉速則影響平均旋轉延遲和數據傳輸時間。 磁盤的轉速是固定不變的。 為了提高磁盤的I/O性能,只能從磁盤調度的方式和訪問數據的組織形式入手,即縮短尋道時間。第五章 設 備 管 理 磁盤調度算法 當有多個進程都請求訪問磁盤時,他們訪問的位置(這里主要關心磁道)各不一樣,磁頭需要來回頻繁移動進行尋道操作。 磁頭的尋道操作屬于機械運動,花費的時間較長,而且過度的尋道操作會大大縮短磁盤的壽命。因此,必須采用適當的磁盤調度算法,使得在盡可能公平的情況下,縮短平均尋道時間,并使磁頭移動距離最小。第五章 設 備 管 理 1. 先來先服務先來先服務FCFS(First-Co
45、me, First Served)按照輸入/輸出請求的先后次序為各個進程服務。 圖 5-23 FCFS調度算法第五章 設 備 管 理 磁頭在磁道之間來回頻繁移動,不但造成較大的時間開銷,影響效率,而且容易使磁臂疲勞,磁盤容易損壞。 因此,這種簡單的算法只適合于負載很輕的系統。第五章 設 備 管 理 2. 最短尋道時間優先最短尋道時間優先SSTF(Shortest Seek Time First) 優先優先為距離磁頭當前所在位置最近的磁道服務。為距離磁頭當前所在位置最近的磁道服務。圖 5-24 SSTF調度算法 第五章 設 備 管 理 3. 掃描掃描(SCAN)算法算法 (也稱為電梯算法)(也稱
46、為電梯算法)1) 進程“饑餓”現象 SSTF算法雖然能獲得較好的尋道性能, 但卻可能導致某個進程發生“饑餓”(Starvation)現象。因為只要不斷有新進程的請求到達, 且其所要訪問的磁道與磁頭當前所在磁道的距離較近,這種新進程的I/O請求必須優先滿足。對SSTF算法略加修改后所形成的SCAN算法, 即可防止老進程出現“饑餓”現象。 第五章 設 備 管 理 2) SCAN算法 假定開始時磁頭處于最外磁道,并向內磁道方向移動。在磁頭移動過程中,如果經過的磁道有訪問請求,則為其服務,然后判斷當前磁道以內的磁道是否還有訪問請求,如果有,則磁頭繼續向內磁道方向移動;否則,判斷當前磁道以外的磁道是否有
47、訪問請求,若有,磁頭調轉方向朝外移動。若此時當前磁道無訪問請求,則磁頭引臂停止不動。第五章 設 備 管 理 第五章 設 備 管 理 4. 循環掃描循環掃描(CSCAN)算法算法 圖 5-26 CSCAN調度算法示例第五章 設 備 管 理 掃描算法Scan比較公平,效率很高; 但是,若在某一段時間內某一磁道的訪問請求不斷,則磁頭引臂將停留在該磁道上不動(稱為磁臂粘著),磁盤被相應的進程壟斷,所有其它磁道上的請求將在較長時間內得不到服務。第五章 設 備 管 理 5. N-Step-SCAN和和FSCAN調度算法調度算法 1) N-Step-SCAN算法 N步SCAN算法是將磁盤請求隊列分成若干個長
48、度為N的子隊列,磁盤調度將按FCFS算法依次處理這些子隊列。 而每處理一個隊列時又是按SCAN算法,對一個隊列處理完后,再處理其他隊列。 當正在處理某子隊列時,如果又出現新的磁盤I/O請求,便將新請求進程放入其他隊列,這樣就可避免出現粘著現象。 當N值取得很大時,會使N步掃描法的性能接近于SCAN算法的性能; 當N=1時, N步SCAN算法便蛻化為FCFS算法。 第五章 設 備 管 理 2) FSCAN算法 FSCAN算法實質上是N步SCAN算法的簡化, 即FSCAN只將磁盤請求隊列分成兩個子隊列。一個是由當前所有請求磁盤I/O的進程形成的隊列,由磁盤調度按SCAN算法進行處理。在掃描期間,將
49、新出現的所有請求磁盤I/O的進程, 放入另一個等待處理的請求隊列。這樣,所有的新請求都將被推遲到下一次掃描時處理。 第五章 設 備 管 理 5.6.3 磁盤高速緩存(Disk Cache) 指,操作系統利用內存實現的、專門針對磁盤I/O操作的緩沖區。 與磁盤機本身所帶的緩存以及磁盤控制器所帶的緩存相比,磁盤機和磁盤控制器上的緩存的特點: 容量較小 利用此類緩存進行數據提前讀和延后寫的工作能并行執行。第五章 設 備 管 理 磁盤高速緩存的特點 容量較大; 常存儲全局范圍、經常訪問的重要數據(文件系統的目錄、文件分配表、索引塊等); 缺點:利用該緩存進行數據提前讀和延后寫操作需要主機的管理,增加了
50、主機的負擔。第五章 設 備 管 理 磁盤高速緩存的實現形式 在內存中單獨開辟一個大小固定的存儲空間作為磁盤高速緩存區。有的操作系統允許用戶指定或調整此空間的大小; 二是把系統中所有未使用的內存空間變為一個緩沖池,供請求分頁系統和磁盤高速緩存共享,其大小不固定,當磁盤I/O操作頻繁時,磁盤高速緩存區可能較大。第五章 設 備 管 理 優化數據的物理存儲結構 磁盤I/O常針對整個文件進行,如果一個文件被分散存儲到多個盤面上,則讀/寫這樣的文件時,需要進行多次尋道操作和旋轉延遲。 為什么把文件分散存儲? 在系統建立的初期,文件是連續存儲的。但隨著系統使用時間的積累,文件會不斷被用戶刪除或新建。為了充分
51、利用存儲空間,新建文件常分散存儲。第五章 設 備 管 理 磁盤高速緩存的效率,取決于其命中率。 使用緩存需要基于兩個要素:一是訪問頻率,二是基于局部性原理的提前讀技術。 提前讀技術是使用緩存的關鍵,當讀入進程申請的數據時,將其空間局部存儲的數據一起提前讀,以便節約時間。 如果一個文件在物理上存儲分散,盡管不影響系統的正確性,但卻使提前讀操作失效,反而降低系統效率。第五章 設 備 管 理 引入磁盤調度的例子 假定:一個硬盤的扇區長度為512個字節,磁道長度為32個扇區,平均尋道時間為20ms,傳輸速率為1MB/s,轉速為3600rpm。顯然,如果一個長度為128K字節的文件存放在該硬盤上,那么該
52、文件將在該硬盤上占用256個扇區。 請問:如果系統從該磁盤上完整地讀入該文件,將花費多長時間?第五章 設 備 管 理 若文件連續地存放在硬盤的8個相鄰的磁道上,那么系統完整地讀入該文件需要花費的時間: (20+8.3+16.7)+(8.3+16.7)* 7=220ms 若文件隨機地存放在硬盤的256個扇區上,那么讀入該文件需要花費的時間: (20+8.3+0.5)*256=7373ms第五章 設 備 管 理 比較與分析 比較前面兩種結果可以發現: 如果文件的存儲方式不同,系統訪問文件的效率就不同;即,文件的存儲方式影響著系統訪問文件的效率。 文件的存儲方式對系統訪問文件的效率的影響主要在于:訪
53、問文件總的尋道時間和總的旋轉延遲。 當系統訪問一組磁盤扇區時,如果能夠減少總的尋道時間和總的旋轉延遲,那么系統的訪問效率將得到提高。第五章 設 備 管 理 Disk Cache的工作原理 當用戶進程請求從磁盤讀入一個扇區時,系統首先在disk cache中尋找該扇區的副本。 如果能找到,系統將從disk cache中取出該扇區的副本并返給用戶進程; 否則,系統首先從磁盤上讀入該扇區并在disk cache中為其建立一個副本,然后將該副本返回給用戶進程。第五章 設 備 管 理 Disk Cache的工作原理 當用戶進程請求向磁盤上寫出一個扇區時,系統同樣首先在disk cache中尋找該扇區的副
54、本。 如果能找到,那么系統將根據用戶進程的請求修改該扇區的副本; 否則,系統同樣首先從磁盤上讀入該扇區并在disk cache中為其建立一個副本,然后根據用戶進程的請求修改該副本。第五章 設 備 管 理 磁盤高速緩存的數據安全性 Disk Cache中的數據寫出到磁盤: 在系統空閑或需要淘汰被寫的緩存空間時進行寫;這種策略風險最大,效率高; 周期性地進行寫;風險較低,效率較高; 立即寫回,即只要高速緩存中的某盤塊數據被修改,便立即將它們寫回磁盤。這種高速緩存通常被稱為“寫穿透高速緩存(Write Through Cache)”,相當于只有讀緩存而沒有寫緩存。風險較低,效率較低。第五章 設 備
55、管 理 高性能的文件系統 磁盤碎片整理,使文件在物理上連續存儲,不僅提高讀寫性能,減少尋道時間和平均旋轉延遲,而且能提高磁盤高速緩存的命中率,從而提高整個系統的效率,減少磁盤機械損耗。磁盤管理的另一有效方法第五章 設 備 管 理 磁盤容錯技術 磁盤容錯技術通過在系統中設置冗余部件(備份)來提高系統可靠性。冗余部件包括增加冗余的磁盤驅動器、磁盤控制器等,使得當磁盤系統某部分出現缺陷或故障時,磁盤仍能正常工作,且不至于造成數據的錯誤和丟失。第五章 設 備 管 理 磁盤容錯技術級別 也稱為系統容錯技術SFT(System Fault Tolerance),大體分為三個級別: SFT-I低級磁盤容錯技
56、術,主要防止磁盤表面介質缺陷所引起的數據丟失; SFT-II中級磁盤容錯技術,主要防止磁盤驅動器和磁盤控制器故障所引起的數據丟失; SFT-III高級磁盤容錯技術,常使用雙服務器以保證在其中一臺服務器出現故障,甚至停止工作時,整個系統仍能照常運作。第五章 設 備 管 理 第一級容錯技術 最早出現、最基本的容錯技術,包括: 雙份目錄和雙份文件分配表 熱修復重定向和寫后讀校驗第五章 設 備 管 理 雙份目錄和雙份FAT 文件目錄和文件分配表FAT是文件管理所需的關鍵數據結構,可在不同的磁盤上或同一磁盤的不同區域中,分別建立維護兩份目錄和FAT。 其中一個損壞時,系統便自動啟用另一個,同時在磁盤其它區域再次建立新的目錄和FAT 每當系統重啟時,都要對這兩個文件目錄和FAT進行檢查,以保證它們的一致性。第五章 設 備 管 理 熱修復重定向和寫后讀校驗 熱修復重定向是指,系統將一定的磁盤容量作為熱修復重定向區,用于存放當發現磁盤塊有缺陷時的待寫數據,并對寫入該區的所有數據進行登記,以便于以后對此數據進行訪問。 寫后讀校驗是指每次將數據寫到磁盤以后,立即從磁盤上讀出該塊數據,并進行對比,若寫入的數據與讀出的數據一致,則表示寫入成功;否則重寫數據。若
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網絡隔離機(卡)項目安全風險評價報告
- 遵義師范學院《中國通史古代》2023-2024學年第二學期期末試卷
- 江蘇省南京市瑯琊路小學明發濱江分校2025屆小升初復習數學模擬試卷含解析
- 贛南醫學院《空間構成與表現》2023-2024學年第二學期期末試卷
- 溫州科技職業學院《城鄉規劃設計基礎1》2023-2024學年第二學期期末試卷
- 三峽大學《流行音樂配器法(1)》2023-2024學年第二學期期末試卷
- 河北地質大學華信學院《民航服務禮儀》2023-2024學年第二學期期末試卷
- 甘肅林業職業技術學院《藥理學及實驗》2023-2024學年第二學期期末試卷
- 鹽城師范學院《口述史實踐》2023-2024學年第二學期期末試卷
- 吉林省延邊重點中學2024-2025學年初三校際聯合檢測試題(二模)化學試題含解析
- 第二單元“中華傳統文化經典研習”說課稿 2024-2025學年統編版高中語文選擇性必修上冊001
- 2024年德州市人民醫院高層次衛技人才招聘筆試歷年參考題庫頻考點附帶答案
- 訂單與合同管理制度
- 【MOOC期末】《英美文學里的生態》(北京林業大學)期末中國大學慕課MOOC答案
- 外科患者疼痛護理與管理
- 《家校社協同育人“教聯體”工作方案》專題培訓
- 2024年六西格瑪黃帶認證考試練習題庫(含答案)
- 兒童牙齒分齡護理方案
- 2023-2024學年廣東省深圳市寶安區七年級(下)期中英語試卷
- DB43T 2558-2023 城鎮低效用地識別技術指南
- 中國心力衰竭診斷和治療指南2024解讀(完整版)
評論
0/150
提交評論