第四章 設(shè)備管理_第1頁
第四章 設(shè)備管理_第2頁
第四章 設(shè)備管理_第3頁
第四章 設(shè)備管理_第4頁
第四章 設(shè)備管理_第5頁
已閱讀5頁,還剩111頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、操作系統(tǒng)原理與實踐操作系統(tǒng)原理與實踐高等教育出版社北京漢眾信息科技有限責任公司策劃第四章 設(shè)備管理第四章第四章 設(shè)備管理設(shè)備管理l目的與要求:目的與要求:掌握掌握I/O控制的硬件基礎(chǔ)和基本原理、設(shè)備的管理和使用方法??刂频挠布A(chǔ)和基本原理、設(shè)備的管理和使用方法。理解設(shè)備管理子系統(tǒng)的層次,功能及技術(shù)、了解磁盤設(shè)備。理解設(shè)備管理子系統(tǒng)的層次,功能及技術(shù)、了解磁盤設(shè)備。l重點與難點:重點與難點:I/O控制方式控制方式設(shè)備使用方法設(shè)備使用方法I/O軟件層次結(jié)構(gòu)軟件層次結(jié)構(gòu)設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序緩沖技術(shù)緩沖技術(shù)磁盤調(diào)度方法磁盤調(diào)度方法l作業(yè): 2,5,9,10,14第四章 設(shè)備管理l4.1 I/O4

2、.1 I/O硬件硬件l4.2 I/O4.2 I/O軟件軟件l4.3 4.3 存儲設(shè)備存儲設(shè)備4.1 I/O硬件l4.1.1 I/O總線總線l4.1.2 設(shè)備控制器設(shè)備控制器l4.1.3 直接存儲器訪問控制器直接存儲器訪問控制器l4.1.4 I/O通道通道l4.1.5 I/O設(shè)備設(shè)備l4.1.6 I/O 控制方式控制方式4.1.1 I/O總線l 第一章所講的總線的基本內(nèi)容。第一章所講的總線的基本內(nèi)容。l PCI總線及其配置空間總線及其配置空間4.1.2 設(shè)備控制器lI/O設(shè)備通常包含一個機械部件和一個電子部件。電子部件被稱作I/O部件或設(shè)備控制器。l操作系統(tǒng)一般只與控制器打交道,而非設(shè)備本身。l

3、早期CPU是直接控制外部設(shè)備的,在引入I/O部件之后,I/O指令功能加強,才將CPU逐漸從與外設(shè)的交互細節(jié)中解放出來。4.1.2 設(shè)備控制器設(shè)備控制器數(shù)據(jù)寄存器數(shù)據(jù)寄存器控制控制/狀態(tài)狀態(tài)寄存器寄存器 I/O邏輯邏輯控制器控制器與設(shè)備與設(shè)備接口接口1控制器控制器與設(shè)備與設(shè)備接口接口NCPU與控制器接口設(shè)備控制器的組成 設(shè)備控制器的組成 設(shè)備控制器的組成設(shè)備控制器的組成 l控制器的基本結(jié)構(gòu)控制器的基本結(jié)構(gòu)總線控制器總線控制器處理機處理機 主存主存 顯卡顯卡 外外 設(shè)設(shè) 光光 盤盤 磁磁 盤盤SCSISCSI控制器控制器外設(shè)控制器外設(shè)控制器控控制制器器控控制制器器PCIPCI外設(shè)總線外設(shè)總線4.1

4、.2 設(shè)備控制器各部件的連接模型各部件的連接模型主版總線主版總線SCSI是一種智能的通用接口標準 磁盤磁盤 控制器控制器主存主存比特流字節(jié)塊轉(zhuǎn)換、校驗字符顯示字符顯示控制器控制器主存經(jīng)主存經(jīng)CPUCPU顯示信號字節(jié)流轉(zhuǎn)換4.1.2 設(shè)備控制器l 控制器的任務:在外部設(shè)備與內(nèi)存(或CPU)之間完成比特流(或外部信號)和字節(jié)塊(流)之間的轉(zhuǎn)換。鍵盤鍵盤060 - 063060 - 063硬盤硬盤320 320 32F 32F打印機打印機378 378 37F 37F軟盤軟盤3F0 3F0 3F7 3F7彩色顯示器彩色顯示器3D0 3D0 3DF 3DFIBM PCIBM PC的的I/OI/O地址地

5、址4.1.2 設(shè)備控制器l 每個控制器都有一些用來與CPU通訊的I/O寄存器。操作系統(tǒng)通過向這些寄存器寫命令字來實現(xiàn)I/O功能。4.1.3 直接存儲器訪問控制器l DMA控制器內(nèi)部結(jié)構(gòu)及外部接口關(guān)系控制器內(nèi)部結(jié)構(gòu)及外部接口關(guān)系 CPUDRMARDCCRI/O控制邏輯DMA控制器4.1.3 直接存儲器訪問控制器l指令/狀態(tài)寄存器CRl內(nèi)存地址寄存器MARl數(shù)據(jù)寄存器DRl數(shù)據(jù)計數(shù)器DC4.1.3 直接存儲器訪問控制器lDMA的功能可以以獨立的DMA部件在系統(tǒng)I/O總線上完成,也可整合到I/O部件中完成。l讀寫內(nèi)存時,DMA部件需要控制總線,CPU可能在涉及存儲訪問時因此而忙等待。l定義:定義:通

6、道是獨立于通道是獨立于CPUCPU的專門負責數(shù)據(jù)輸入的專門負責數(shù)據(jù)輸入/ /輸出傳輸輸出傳輸工作的處理機,對外部設(shè)備實現(xiàn)統(tǒng)一管理,代替工作的處理機,對外部設(shè)備實現(xiàn)統(tǒng)一管理,代替CPUCPU對對輸入輸入/ /輸出操作進行控制,從而使輸入,輸出操作可與輸出操作進行控制,從而使輸入,輸出操作可與CPUCPU并行操作。并行操作。 通道通道又稱輸入輸出處理機,術(shù)語又稱輸入輸出處理機,術(shù)語“通道通道”專指專門專指專門用來負責輸入輸出工作的處理機(簡稱用來負責輸入輸出工作的處理機(簡稱/ /處理機)。處理機)。比起中央處理機來,通道是一個比功能較比起中央處理機來,通道是一個比功能較弱、速度較慢、價格較為便宜

7、的處理機。但弱、速度較慢、價格較為便宜的處理機。但“通道通道”一一詞在微型機中常指與或與詞在微型機中常指與或與/ /處理機相連設(shè)備處理機相連設(shè)備的單純的數(shù)據(jù)傳送通路,它并不具有處理機的功能。的單純的數(shù)據(jù)傳送通路,它并不具有處理機的功能。4.1.4 I/O通道4.1.4 I/O4.1.4 I/O通道通道 1. 1. 引入通道的目的引入通道的目的 為了使為了使CPUCPU從從I/OI/O事務中解脫出來,事務中解脫出來,同時為了提高同時為了提高CPUCPU與設(shè)備,設(shè)備與設(shè)備與設(shè)備,設(shè)備與設(shè)備之間的并行工作能力之間的并行工作能力 2. 2. 通道類型通道類型l字節(jié)多路通道字節(jié)多路通道: :通常按字節(jié)交

8、叉的方式工通常按字節(jié)交叉的方式工作,適用于低速作,適用于低速/ /設(shè)備。設(shè)備。l數(shù)組選擇通道數(shù)組選擇通道: :按成組方式進行數(shù)據(jù)傳輸,按成組方式進行數(shù)據(jù)傳輸,適用于高速適用于高速/ /設(shè)備。設(shè)備。l數(shù)組多路通道數(shù)組多路通道: :綜合前二個優(yōu)點(數(shù)據(jù)傳綜合前二個優(yōu)點(數(shù)據(jù)傳送率和通道利用率都較高)。送率和通道利用率都較高)。4.1.4 I/O4.1.4 I/O通道通道 1) 1) 字節(jié)多路通道字節(jié)多路通道 字節(jié)多路通道以字節(jié)為單位傳輸信息,字節(jié)多路通道以字節(jié)為單位傳輸信息,它可以分時地執(zhí)行多個通道程序。當一個通它可以分時地執(zhí)行多個通道程序。當一個通道程序控制某臺設(shè)備傳送一個字節(jié)后,通道道程序控制

9、某臺設(shè)備傳送一個字節(jié)后,通道硬件就控制轉(zhuǎn)去執(zhí)行另一個通道程序,控制硬件就控制轉(zhuǎn)去執(zhí)行另一個通道程序,控制另一臺設(shè)備傳送信息。另一臺設(shè)備傳送信息。 主要連接以字節(jié)為單位的低速主要連接以字節(jié)為單位的低速I/OI/O設(shè)備設(shè)備。如打。如打印機,終端。印機,終端。 以字節(jié)為單位交叉?zhèn)鬏敚斠慌_傳送一個字以字節(jié)為單位交叉?zhèn)鬏?,當一臺傳送一個字節(jié)后,立即轉(zhuǎn)去為另一臺傳送字節(jié)。節(jié)后,立即轉(zhuǎn)去為另一臺傳送字節(jié)。4.1.4 I/O4.1.4 I/O通道通道2) 2) 數(shù)組選擇通道數(shù)組選擇通道 數(shù)組選擇通道是以成組方式工作的,即數(shù)組選擇通道是以成組方式工作的,即每次傳送一批數(shù)據(jù),故傳送速度很高。選擇每次傳送一批數(shù)據(jù)

10、,故傳送速度很高。選擇通道在一段時間內(nèi)只能執(zhí)行一個通道程序,通道在一段時間內(nèi)只能執(zhí)行一個通道程序,只允許一臺設(shè)備進行數(shù)據(jù)傳輸只允許一臺設(shè)備進行數(shù)據(jù)傳輸 當這臺設(shè)備數(shù)據(jù)傳輸完成后,再選擇與當這臺設(shè)備數(shù)據(jù)傳輸完成后,再選擇與通道連接的另一臺設(shè)備,執(zhí)行它的相應的通通道連接的另一臺設(shè)備,執(zhí)行它的相應的通道程序道程序 主要連接磁盤,磁帶等高速主要連接磁盤,磁帶等高速I/OI/O設(shè)備設(shè)備 4.1.4 I/O4.1.4 I/O通道通道 4.1.4 I/O4.1.4 I/O通道通道數(shù)組選擇通道數(shù)組選擇通道3)3)數(shù)組多路通道數(shù)組多路通道 數(shù)組多路通道結(jié)合了選擇通道傳送速度高數(shù)組多路通道結(jié)合了選擇通道傳送速度高

11、和字節(jié)多路通道能進行分時并行操作的優(yōu)點。和字節(jié)多路通道能進行分時并行操作的優(yōu)點。它先為一臺設(shè)備執(zhí)行一條通道指令,然后自動它先為一臺設(shè)備執(zhí)行一條通道指令,然后自動轉(zhuǎn)接,為另一臺設(shè)備執(zhí)行一條通道指令轉(zhuǎn)接,為另一臺設(shè)備執(zhí)行一條通道指令 主要連接高速設(shè)備主要連接高速設(shè)備 這樣,對于連接多臺磁盤機的數(shù)組多路通這樣,對于連接多臺磁盤機的數(shù)組多路通道,它可以啟動它們同時執(zhí)行移臂定位操作,道,它可以啟動它們同時執(zhí)行移臂定位操作,然后,按序交叉地傳輸一批批數(shù)據(jù)。數(shù)據(jù)多路然后,按序交叉地傳輸一批批數(shù)據(jù)。數(shù)據(jù)多路通道實際上是對通道程序采用多道程序設(shè)計的通道實際上是對通道程序采用多道程序設(shè)計的硬件實現(xiàn)硬件實現(xiàn) 4.1

12、.4 I/O4.1.4 I/O通道通道3.3. 硬件連接結(jié)構(gòu)硬件連接結(jié)構(gòu) 系 統(tǒng) 總 線I/O 總 線I/O控制器I/O控制器I/O控制器I/O控制器處理器通道處理器內(nèi)存 通道相當于一個功能簡單的處理機,通道相當于一個功能簡單的處理機,包含通道指令(空操作,讀操作,寫操包含通道指令(空操作,讀操作,寫操作,控制,轉(zhuǎn)移操作),并可執(zhí)行用這作,控制,轉(zhuǎn)移操作),并可執(zhí)行用這些指令編寫的通道程序些指令編寫的通道程序 4. 4. 通道工作原理通道工作原理4.1.4 I/O4.1.4 I/O通道通道通道地址字通道地址字 CAWCAW: 記錄通道程序在內(nèi)存中的地址記錄通道程序在內(nèi)存中的地址通道命令字通道命

13、令字 CCWCCW: 保存正在執(zhí)行的通道指令保存正在執(zhí)行的通道指令通道狀態(tài)字通道狀態(tài)字 CSWCSW: 存放通道執(zhí)行后的返回結(jié)果存放通道執(zhí)行后的返回結(jié)果通道數(shù)據(jù)字通道數(shù)據(jù)字 CDWCDW:存放傳輸數(shù)據(jù)存放傳輸數(shù)據(jù) 通道和通道和CPUCPU共用內(nèi)存,通過周期竊取方式取共用內(nèi)存,通過周期竊取方式取得得1) 1) 通道運算控制部件通道運算控制部件 用于用于I/OI/O操作的命令主要有兩種:操作的命令主要有兩種: I/OI/O指令:啟動通道程序指令:啟動通道程序 通道命令:對通道命令:對I/OI/O操作進行控制操作進行控制 讀、反讀、寫、測試設(shè)備狀態(tài)的數(shù)讀、反讀、寫、測試設(shè)備狀態(tài)的數(shù)據(jù)傳輸命令、用于設(shè)

14、備控制的命令據(jù)傳輸命令、用于設(shè)備控制的命令(磁帶反繞、換頁)、實現(xiàn)通道程序(磁帶反繞、換頁)、實現(xiàn)通道程序內(nèi)部控制的轉(zhuǎn)移命令內(nèi)部控制的轉(zhuǎn)移命令 2)2) 通道命令通道命令 命令格式一般包括:命令格式一般包括: 操作碼、數(shù)據(jù)傳輸內(nèi)存地址、特操作碼、數(shù)據(jù)傳輸內(nèi)存地址、特征位、計數(shù)器征位、計數(shù)器 3)3) 通道命令格式通道命令格式 CPUCPU:執(zhí)行用戶程序,當遇到執(zhí)行用戶程序,當遇到I/OI/O請求時,請求時,可根據(jù)該請求生成通道程序放入內(nèi)存(也可根據(jù)該請求生成通道程序放入內(nèi)存(也可事先編好放入內(nèi)存),并將該通道程序可事先編好放入內(nèi)存),并將該通道程序的首地址放入的首地址放入CAWCAW中;之后執(zhí)

15、行中;之后執(zhí)行“啟動啟動I/OI/O”指令,啟動通道工作。指令,啟動通道工作。 4)4)工作原理工作原理 l通道:通道:接收到接收到“啟動啟動I/OI/O”指令后,從指令后,從CAWCAW中中取出通道程序的首地址,并根據(jù)首地址取取出通道程序的首地址,并根據(jù)首地址取出第一條指令放入出第一條指令放入CCWCCW中,同時向中,同時向CPUCPU發(fā)回發(fā)回答信號,使答信號,使CPUCPU可繼續(xù)執(zhí)行其他程序,而通可繼續(xù)執(zhí)行其他程序,而通道則開始執(zhí)行通道程序,完成傳輸工作。道則開始執(zhí)行通道程序,完成傳輸工作。 當通道傳輸完成最后一條指令時,向當通道傳輸完成最后一條指令時,向CPU發(fā)發(fā)I/O中斷,并且通道停止

16、工作。中斷,并且通道停止工作。CPU接收中斷信號,從接收中斷信號,從CSW中取得有關(guān)信息,中取得有關(guān)信息,決定下一步做什么決定下一步做什么4)4)工作原理工作原理 5.5. 通道與通道與CPUCPU的關(guān)系的關(guān)系l主從關(guān)系主從關(guān)系l可并行工作可并行工作l有通信方式有通信方式l作用不同(通道作用不同(通道/ /; 計算)計算)4.1.4 I/O4.1.4 I/O通道通道4.1.4 I/O通道l通道傳送與中斷傳送的區(qū)別:通道傳送與中斷傳送的區(qū)別:中斷控制傳送由中斷控制器發(fā)出中斷信息,中止中斷控制傳送由中斷控制器發(fā)出中斷信息,中止CPU現(xiàn)行程序,轉(zhuǎn)去執(zhí)行中斷服務程序。通道方現(xiàn)行程序,轉(zhuǎn)去執(zhí)行中斷服務程

17、序。通道方式則是通過執(zhí)行通道程序來實現(xiàn)。式則是通過執(zhí)行通道程序來實現(xiàn)。中斷服務程序與中斷服務程序與CPU的現(xiàn)行程序是串行工作的,的現(xiàn)行程序是串行工作的,而通道程序的執(zhí)行與而通道程序的執(zhí)行與CPU的現(xiàn)行程序是并行工作的現(xiàn)行程序是并行工作的。的。程序中斷控制傳送以程序中斷控制傳送以CPU為中心,而通道則和為中心,而通道則和DMA一樣以內(nèi)存為中心。一樣以內(nèi)存為中心。 4.1.4 I/O通道l通道傳送與通道傳送與DMA傳送的區(qū)別:傳送的區(qū)別:DMA主要靠專用接口硬件實現(xiàn)數(shù)據(jù)傳送;通道主要靠專用接口硬件實現(xiàn)數(shù)據(jù)傳送;通道則靠執(zhí)行通道程序?qū)崿F(xiàn)數(shù)據(jù)傳送。中斷服務程序則靠執(zhí)行通道程序?qū)崿F(xiàn)數(shù)據(jù)傳送。中斷服務程序

18、與與CPU的現(xiàn)行程序是串行工作的,而通道程序的的現(xiàn)行程序是串行工作的,而通道程序的執(zhí)行與執(zhí)行與CPU的現(xiàn)行程序是并行工作的。的現(xiàn)行程序是并行工作的。DMA一般用來控制高速外設(shè)成組傳送,通道既一般用來控制高速外設(shè)成組傳送,通道既可控制高速外設(shè)成組傳送,也可控制低速外設(shè)進可控制高速外設(shè)成組傳送,也可控制低速外設(shè)進行字或字節(jié)交叉?zhèn)魉?。行字或字?jié)交叉?zhèn)魉汀?.1.5 I/O設(shè)備l按數(shù)據(jù)組織分類:按數(shù)據(jù)組織分類:塊設(shè)備塊設(shè)備字符設(shè)備字符設(shè)備l從資源分配角度分類:從資源分配角度分類:獨占設(shè)備獨占設(shè)備共享設(shè)備共享設(shè)備虛擬設(shè)備虛擬設(shè)備l按傳輸速率分類:按傳輸速率分類:低速設(shè)備低速設(shè)備中速設(shè)備中速設(shè)備高速設(shè)備高

19、速設(shè)備 l按其他方法分類:如按輸入按其他方法分類:如按輸入/輸出對象進行,或者輸出對象進行,或者按是否可交互來進行按是否可交互來進行 。CPU直接控制外部設(shè)備引入I/O部件,CPU直接控制I/O部件引入中斷驅(qū)動方式引入DMAI/O通道或I/O處理機輸入輸出控制方式的發(fā)展過程4.1.6 I/O控制方式4.1.6 I/O控制方式l程序直接控制方式:需要需要CPU直接控制直接控制I/O操作的全過程,包括發(fā)送讀操作的全過程,包括發(fā)送讀寫命令、傳輸數(shù)據(jù)、測試設(shè)備狀態(tài)寫命令、傳輸數(shù)據(jù)、測試設(shè)備狀態(tài) 。處理機指令集應包括控制類、測試類、讀寫類處理機指令集應包括控制類、測試類、讀寫類I/O指令指令 。 I/O

20、部件接收到相應的指令后,將部件接收到相應的指令后,將I/O狀態(tài)寫在寄存狀態(tài)寫在寄存器的相應位置上。隨著操作的執(zhí)行更改狀態(tài)位,由器的相應位置上。隨著操作的執(zhí)行更改狀態(tài)位,由CPU執(zhí)行相應指令讀取執(zhí)行相應指令讀取I/O完成狀態(tài)。完成狀態(tài)。I/O數(shù)據(jù)通過數(shù)據(jù)通過CPU寄存器轉(zhuǎn)發(fā)。如下圖寄存器轉(zhuǎn)發(fā)。如下圖:l 針對程序直接方式的不足,提出了中斷方式:針對程序直接方式的不足,提出了中斷方式:CPU向向I/O部件發(fā)出指令后,轉(zhuǎn)去做其他有用的工作。部件發(fā)出指令后,轉(zhuǎn)去做其他有用的工作。當當I/O部件準備好數(shù)據(jù)后,利用中斷通知部件準備好數(shù)據(jù)后,利用中斷通知CPU,再由,再由CPU完成數(shù)據(jù)傳輸。完成數(shù)據(jù)傳輸。

21、優(yōu)點:優(yōu)點:uCPU不必反復測試寄存器狀態(tài),節(jié)約了時間。不必反復測試寄存器狀態(tài),節(jié)約了時間。 缺點:缺點:u中斷控制方式仍然消耗大量的中斷控制方式仍然消耗大量的CPU時間,因為每個字的數(shù)時間,因為每個字的數(shù)據(jù)傳輸都必須經(jīng)過據(jù)傳輸都必須經(jīng)過CPU寄存器轉(zhuǎn)發(fā)。寄存器轉(zhuǎn)發(fā)。4.1.6 I/O控制方式4.1.6 I/O控制方式l程序直接控制方式與中斷方式的缺陷:程序直接控制方式與中斷方式的缺陷: I/O的傳輸速率受的傳輸速率受CPU測試或中斷響應的速度限制測試或中斷響應的速度限制 CPU為管理為管理I/O耗費大量時間耗費大量時間l更有效的方式更有效的方式DMA (直接內(nèi)存存?。ㄖ苯觾?nèi)存存?。?:負責

22、完成整個負責完成整個I/O操作,無需再經(jīng)操作,無需再經(jīng)CPU寄存器轉(zhuǎn)發(fā),寄存器轉(zhuǎn)發(fā),并在全部傳輸結(jié)束后向并在全部傳輸結(jié)束后向CPU發(fā)中斷信號。發(fā)中斷信號。CPU向向DMA部件發(fā)送部件發(fā)送I/O指令后,即可進行其他工指令后,即可進行其他工作。給作。給DMA的指令中應包括:操作類別、的指令中應包括:操作類別、I/O設(shè)備設(shè)備的地址、讀寫數(shù)據(jù)在內(nèi)存中的首地址、字數(shù)。的地址、讀寫數(shù)據(jù)在內(nèi)存中的首地址、字數(shù)。程序程序I/O中斷中斷I/O DMAl 通道控制方式通道控制方式 通道:通道:執(zhí)行通道程序,向控制器發(fā)出命令,執(zhí)行通道程序,向控制器發(fā)出命令,并具有向并具有向CPUCPU發(fā)中斷信號的功能。發(fā)中斷信號的

23、功能。 一旦一旦CPUCPU發(fā)出發(fā)出指令,啟動通道,則通道獨立于指令,啟動通道,則通道獨立于CPUCPU工作。一個工作。一個通道可連接多個控制器,一個控制器可連接多個通道可連接多個控制器,一個控制器可連接多個設(shè)備,形成樹形交叉連接設(shè)備,形成樹形交叉連接 主要目的是啟動外設(shè)時:主要目的是啟動外設(shè)時: a a 提高了控制器效率提高了控制器效率 b b 提高可靠性提高可靠性 c c 提高并行度提高并行度4.1.6 I/O控制方式交叉連接交叉連接4.2I /O軟件l4.2.1 設(shè)備的使用與管理設(shè)備的使用與管理l4.2.2 I/O軟件層次結(jié)構(gòu)軟件層次結(jié)構(gòu)l4.2.3 緩沖管理緩沖管理l4.2.4 設(shè)備驅(qū)

24、動程序設(shè)備驅(qū)動程序l4.2.5 中斷處理程序中斷處理程序4.2.1 設(shè)備的使用與管理l設(shè)備管理的目標設(shè)備管理的目標提高設(shè)備的利率提高設(shè)備的利率為用戶提供方便、統(tǒng)一的界面為用戶提供方便、統(tǒng)一的界面l設(shè)備管理的任務設(shè)備管理的任務動態(tài)地掌握并記錄設(shè)備的狀態(tài)動態(tài)地掌握并記錄設(shè)備的狀態(tài)設(shè)備分配和釋放設(shè)備分配和釋放緩沖區(qū)管理緩沖區(qū)管理實現(xiàn)物理實現(xiàn)物理I/O設(shè)備的操作設(shè)備的操作4.2.1 設(shè)備的使用與管理l設(shè)備相關(guān)系統(tǒng)調(diào)用:設(shè)備相關(guān)系統(tǒng)調(diào)用:申請設(shè)備:該系統(tǒng)調(diào)用中有參數(shù)說明了要申請申請設(shè)備:該系統(tǒng)調(diào)用中有參數(shù)說明了要申請的設(shè)備名稱,操作系統(tǒng)處理該系統(tǒng)調(diào)用時,會的設(shè)備名稱,操作系統(tǒng)處理該系統(tǒng)調(diào)用時,會按照設(shè)備

25、特性(是獨占還是分時共享式使用)按照設(shè)備特性(是獨占還是分時共享式使用)及設(shè)備的占用情況來分配設(shè)備,返回申請是否及設(shè)備的占用情況來分配設(shè)備,返回申請是否成功標志。成功標志。將數(shù)據(jù)寫入設(shè)備。將數(shù)據(jù)寫入設(shè)備。 從設(shè)備讀取數(shù)據(jù)。從設(shè)備讀取數(shù)據(jù)。 釋放設(shè)備。這是申請設(shè)備的逆操作。釋放設(shè)備。這是申請設(shè)備的逆操作。 4.2.1 設(shè)備的使用與管理l設(shè)備管理中的數(shù)據(jù)結(jié)構(gòu)設(shè)備管理中的數(shù)據(jù)結(jié)構(gòu)在多通路的在多通路的/ /系統(tǒng)中,為了滿足一個系統(tǒng)中,為了滿足一個/ /請求,請求,不僅僅是分配一個不僅僅是分配一個/ /設(shè)備的問題,還應分配相應設(shè)備的問題,還應分配相應的控制器和通道,以確保與的控制器和通道,以確保與/ /

26、設(shè)備之間能設(shè)備之間能進行通信,在存儲器與進行通信,在存儲器與/ /設(shè)備之間能進行數(shù)據(jù)的設(shè)備之間能進行數(shù)據(jù)的直接存取。直接存取。設(shè)備管理程序?qū)υO(shè)備管理程序?qū)? /設(shè)備進行分配和控制是借助于設(shè)備進行分配和控制是借助于一些表格;表格中記錄了對一些表格;表格中記錄了對/ /設(shè)備控制所需之信設(shè)備控制所需之信息。它們是設(shè)備管理程序?qū)崿F(xiàn)管理功能的數(shù)據(jù)結(jié)構(gòu)息。它們是設(shè)備管理程序?qū)崿F(xiàn)管理功能的數(shù)據(jù)結(jié)構(gòu)。 數(shù)據(jù)結(jié)構(gòu)(續(xù))l控制所需之信息。它們是設(shè)備管理程序控制所需之信息。它們是設(shè)備管理程序?qū)崿F(xiàn)管理功能的數(shù)據(jù)結(jié)構(gòu)。如下表:實現(xiàn)管理功能的數(shù)據(jù)結(jié)構(gòu)。如下表:設(shè)備控制表()設(shè)備控制表()每個設(shè)備一個每個設(shè)備一個控制器表(

27、)控制器表()每個控制器一個每個控制器一個通道表(通道表(H H)每個通道一個每個通道一個系統(tǒng)設(shè)備表()系統(tǒng)設(shè)備表()整個系統(tǒng)一個整個系統(tǒng)一個 整個系統(tǒng)一張表,記錄系統(tǒng)中所整個系統(tǒng)一張表,記錄系統(tǒng)中所有有I/OI/O設(shè)備的信息,表目包括:設(shè)備的信息,表目包括: 設(shè)備類型、設(shè)備標識符、進程標識符、設(shè)備類型、設(shè)備標識符、進程標識符、DCTDCT表指針等。表指針等。1) 1) 系統(tǒng)設(shè)備表系統(tǒng)設(shè)備表SDTSDT數(shù)據(jù)結(jié)構(gòu)(續(xù))數(shù)據(jù)結(jié)構(gòu)(續(xù)) 主要內(nèi)容:設(shè)備類型、設(shè)備標識符、設(shè)備主要內(nèi)容:設(shè)備類型、設(shè)備標識符、設(shè)備狀態(tài)、與此設(shè)備相連的狀態(tài)、與此設(shè)備相連的COCTCOCT、重復執(zhí)行的、重復執(zhí)行的次數(shù)或時間、

28、等待隊列的隊首和隊尾指針、次數(shù)或時間、等待隊列的隊首和隊尾指針、I/OI/O程序地址程序地址 3)3)控制器控制表控制器控制表COCTCOCT 4) 4)通道控制表通道控制表CHCTCHCT COCT COCT和和CHCTCHCT與與DCTDCT類似類似2) 2) 設(shè)備控制表設(shè)備控制表DCTDCT數(shù)據(jù)結(jié)構(gòu)(續(xù))數(shù)據(jù)結(jié)構(gòu)(續(xù))設(shè)備控制塊設(shè)備控制塊 通道控制塊通道控制塊 控制器控制塊控制器控制塊 (DCB)(DCB) (CHCB)CHCB) (COCBCOCB)設(shè)備標示符設(shè)備標示符通道標示符通道標示符控制器標示符控制器標示符設(shè)備狀態(tài)設(shè)備狀態(tài)通道狀態(tài)通道狀態(tài)控制器狀態(tài)控制器狀態(tài)與設(shè)備相連的與設(shè)備相連

29、的控制器表控制器表與通道相連的與通道相連的控制器表控制器表與控制器相連的與控制器相連的通道表通道表等待此設(shè)備的等待此設(shè)備的進程表進程表 等待此通道的等待此通道的進程表進程表 等待控制器的進等待控制器的進程表程表 三種控制塊三種控制塊4.2.1 設(shè)備的使用與管理lI/O設(shè)備的使用方式:設(shè)備的使用方式:獨占式共享使用設(shè)備獨占式共享使用設(shè)備分時式共享使用設(shè)備分時式共享使用設(shè)備以以SPOOLing方式使用外設(shè)方式使用外設(shè)4.2.1 設(shè)備的使用與管理l獨占式共享使用設(shè)備:獨占式共享使用設(shè)備:是指在申請設(shè)備時,如果設(shè)備空閑,就將其獨占,是指在申請設(shè)備時,如果設(shè)備空閑,就將其獨占,不再允許其他進程申請使用,

30、一直等到該設(shè)備被不再允許其他進程申請使用,一直等到該設(shè)備被釋放,才允許被其他進程申請使用。釋放,才允許被其他進程申請使用。獨占式使用設(shè)備時,設(shè)備利用率很低。獨占式使用設(shè)備時,設(shè)備利用率很低。如果一個邏輯上完整的數(shù)據(jù)可以用設(shè)備的一次如果一個邏輯上完整的數(shù)據(jù)可以用設(shè)備的一次I/O操作完成,那么我們就不必要獨占該設(shè)備。反過操作完成,那么我們就不必要獨占該設(shè)備。反過來說,如果一次來說,如果一次I/O操作的數(shù)據(jù)邏輯上完整,我們操作的數(shù)據(jù)邏輯上完整,我們就不必要對該設(shè)備進行獨占方式的申請使用。在就不必要對該設(shè)備進行獨占方式的申請使用。在申請這種設(shè)備時,不必檢查是否已被占用,只要申請這種設(shè)備時,不必檢查是否

31、已被占用,只要簡單累加設(shè)備使用者計數(shù)即可。簡單累加設(shè)備使用者計數(shù)即可。4.2.1 設(shè)備的使用與管理l分時式共享使用設(shè)備:分時式共享使用設(shè)備:以一次以一次I/O為單位分時使用設(shè)備,不同進程的為單位分時使用設(shè)備,不同進程的I/O操作請求以排隊方式分時地占用設(shè)備進行操作請求以排隊方式分時地占用設(shè)備進行I/O 。從用戶程序系統(tǒng)調(diào)用界面來看,從用戶程序系統(tǒng)調(diào)用界面來看,I/O操作是并發(fā)操作是并發(fā)的。的。4.2.1 設(shè)備的使用與管理l以以SPOOLing方式使用外設(shè):方式使用外設(shè):SPOOLing 技術(shù)是在批處理操作系統(tǒng)時代引入的,即所謂假脫機輸入輸出技術(shù)。原來這種技術(shù)輸入、輸出是針對磁盤上的輸入、輸出,

32、現(xiàn)在是針對磁盤上的文件。 例如:同一進程所有輸出數(shù)據(jù)在進程運行時被寫到同一文件當中,文件排到打印輸出隊列,打印進程申請占用打印機后,成批讀出文件中數(shù)據(jù),并送打印機打印出去。 l什么是什么是Spooling? 在聯(lián)機情況下實現(xiàn)的同時外圍操作稱為Spooling,或稱為假脫機操作。lSpooling系統(tǒng)的組成:系統(tǒng)的組成: 1、輸入井和輸出井,磁盤上開辟的兩個 大存儲空間; 2、輸入緩沖區(qū)和輸出緩沖區(qū); 3、輸入進程SPi和輸出進程SPo ; 4、請求打印隊列。 4.2.1 設(shè)備的使用與管理輸入設(shè)備輸入設(shè)備輸出設(shè)備輸出設(shè)備輸入進程輸入進程SPi輸出進程輸出進程SPo輸入緩沖區(qū)輸入緩沖區(qū)Bi輸出緩沖

33、區(qū)輸出緩沖區(qū)Bo輸入井輸入井輸出井輸出井磁盤磁盤Spooling系統(tǒng)的組成系統(tǒng)的組成4.2.1 設(shè)備的使用與管理4.2.1 設(shè)備的使用與管理l Spooling系統(tǒng)的特點: 1、提高了I/O速度; 2、設(shè)備并沒有分配給任何進程.在輸入 井或輸出井中,分配給進程的是一存 儲區(qū)和建立一張I/O請求表; 3、實現(xiàn)了虛擬設(shè)備功能。4.2.1 設(shè)備的使用與管理l共享打印機:系統(tǒng)對于用戶的打印輸出,但并不真正把打印機分配給該用戶進程,而是先在輸出井中申請一個空閑盤塊區(qū),并將要打印的數(shù)據(jù)送入其中;然后為用戶申請并填寫請求打印表,將該表掛到請求打印隊列上。若打印機空閑,輸出程序從請求打印隊首取表,將要打印的數(shù)

34、據(jù)從輸出井傳送到內(nèi)存緩沖區(qū),再進行打印,直到打印隊列為空。4.2.1 設(shè)備的使用與管理打印請求隊列打印請求隊列(含要打印文(含要打印文件)件)打印打印daemon daemon 進程進程打印機打印機以以SPOOLing方式使用外設(shè)方式使用外設(shè)4.2.2 I/O軟件層次結(jié)構(gòu)用戶層用戶層I/OI/O設(shè)備驅(qū)動及中斷處理設(shè)備驅(qū)動及中斷處理硬件硬件系統(tǒng)調(diào)用接口,設(shè)備無關(guān)的操作系統(tǒng)軟件系統(tǒng)調(diào)用接口,設(shè)備無關(guān)的操作系統(tǒng)軟件l通常,操作系統(tǒng)將設(shè)備管理系統(tǒng)劃分并組通常,操作系統(tǒng)將設(shè)備管理系統(tǒng)劃分并組織成三個層次:織成三個層次:u 用戶層用戶層I/Ou 與設(shè)備無關(guān)的與設(shè)備無關(guān)的I/Ou 設(shè)備驅(qū)動及中斷處理設(shè)備驅(qū)動

35、及中斷處理4.2.2 I/O軟件層次結(jié)構(gòu)l用戶層用戶層I/O:用戶層與設(shè)備的控制細節(jié)無關(guān),不直接與設(shè)備打用戶層與設(shè)備的控制細節(jié)無關(guān),不直接與設(shè)備打交道。交道。它將所有的設(shè)備看作邏輯資源,為用戶進程提供它將所有的設(shè)備看作邏輯資源,為用戶進程提供各類各類I/O函數(shù)。用戶以設(shè)備標識符和一些簡單的函函數(shù)。用戶以設(shè)備標識符和一些簡單的函數(shù)來使用設(shè)備,如打開、關(guān)閉、讀、寫等。如數(shù)來使用設(shè)備,如打開、關(guān)閉、讀、寫等。如C庫中的函數(shù)庫中的函數(shù)fopen(); fread(); fwrite(); fclose();printf()等等 。4.2.2 I/O軟件層次結(jié)構(gòu)l與設(shè)備無關(guān)的與設(shè)備無關(guān)的I/O軟件層:軟

36、件層: 為了提高系統(tǒng)的可適應性和可擴展性,我為了提高系統(tǒng)的可適應性和可擴展性,我們希望所編制的用戶程序與實際使用的物理設(shè)們希望所編制的用戶程序與實際使用的物理設(shè)備無關(guān),這就是所謂與設(shè)備無關(guān)性。備無關(guān),這就是所謂與設(shè)備無關(guān)性。 為此,我們將邏輯設(shè)備與物理設(shè)備區(qū)分,并為此,我們將邏輯設(shè)備與物理設(shè)備區(qū)分,并引入邏輯設(shè)備名稱和物理設(shè)備名稱的概念。為引入邏輯設(shè)備名稱和物理設(shè)備名稱的概念。為了實現(xiàn)與設(shè)備的無關(guān)性,系統(tǒng)中必須有一張聯(lián)了實現(xiàn)與設(shè)備的無關(guān)性,系統(tǒng)中必須有一張聯(lián)系邏輯設(shè)備名稱和物理設(shè)備名稱的映射表(系邏輯設(shè)備名稱和物理設(shè)備名稱的映射表(表)。表)。4.2.2 I/O軟件層次結(jié)構(gòu)邏輯設(shè)備號邏輯設(shè)備號

37、物理設(shè)備號物理設(shè)備號驅(qū)動程序地址驅(qū)動程序地址172042027204203220E00441FC106120D02772042015101FC1016111FC1204.2.2 I/O軟件層次結(jié)構(gòu) 這個中為三個不同的邏輯設(shè)備這個中為三個不同的邏輯設(shè)備號列出了同樣的物理設(shè)備和驅(qū)動程序的地號列出了同樣的物理設(shè)備和驅(qū)動程序的地址。這說明邏輯設(shè)備,目前均得址。這說明邏輯設(shè)備,目前均得到同一個物理設(shè)備的服務(這或許是因到同一個物理設(shè)備的服務(這或許是因為激光打印機及字母型打印機正在被修理,為激光打印機及字母型打印機正在被修理,因此本來輸出到這些設(shè)備上的請求都移到因此本來輸出到這些設(shè)備上的請求都移到行式打

38、印機)。在這個映射表中我們還可行式打印機)。在這個映射表中我們還可以看到物理設(shè)備和都是由同一個驅(qū)以看到物理設(shè)備和都是由同一個驅(qū)動程序服務的。這是假定它們是同一類型動程序服務的。這是假定它們是同一類型的終端。的終端。4.2.2 I/O軟件層次結(jié)構(gòu)l與設(shè)備無關(guān)的與設(shè)備無關(guān)的I/O軟件層:軟件層:它對上層提供系統(tǒng)調(diào)用的接口,對下通過設(shè)備驅(qū)它對上層提供系統(tǒng)調(diào)用的接口,對下通過設(shè)備驅(qū)動程序接口調(diào)用設(shè)備驅(qū)動程序。動程序接口調(diào)用設(shè)備驅(qū)動程序。4.2.2 I/O軟件層次結(jié)構(gòu)l該層軟件的基本功能包括:該層軟件的基本功能包括:(1)設(shè)備名與設(shè)備驅(qū)動程序的映射)設(shè)備名與設(shè)備驅(qū)動程序的映射 (2)設(shè)備保護)設(shè)備保護

39、(3)邏輯塊)邏輯塊(4)緩沖)緩沖 (5)設(shè)備空閑空間管理與分配。)設(shè)備空閑空間管理與分配。(6)錯誤報告)錯誤報告(7)分配及設(shè)備釋放)分配及設(shè)備釋放4.2.2 I/O軟件層次結(jié)構(gòu)l設(shè)備驅(qū)動與中斷處理:設(shè)備驅(qū)動與中斷處理: 設(shè)備驅(qū)動程序包括了所有與設(shè)備相關(guān)的代碼,其設(shè)備驅(qū)動程序包括了所有與設(shè)備相關(guān)的代碼,其功能是將設(shè)備無關(guān)層中的抽象請求轉(zhuǎn)換成對底層功能是將設(shè)備無關(guān)層中的抽象請求轉(zhuǎn)換成對底層設(shè)備的具體操作。設(shè)備的具體操作。當進程進行當進程進行I/O操作時,將其阻塞至操作時,將其阻塞至I/O操作結(jié)束操作結(jié)束并發(fā)生中斷。中斷發(fā)生時,由中斷處理程序啟動并發(fā)生中斷。中斷發(fā)生時,由中斷處理程序啟動請求

40、排隊的下一請求并解除等請求排隊的下一請求并解除等I/O進程的阻塞狀態(tài),進程的阻塞狀態(tài),使其能夠繼續(xù)執(zhí)行。使其能夠繼續(xù)執(zhí)行。4.2.3 緩沖管理l引入緩沖的主要原因有以下幾個方面:引入緩沖的主要原因有以下幾個方面:緩解緩解CPU與與I/O設(shè)備間速度不匹配的矛盾。設(shè)備間速度不匹配的矛盾。減少對減少對CPU的中斷頻率,放寬對中斷處理時間的限制。的中斷頻率,放寬對中斷處理時間的限制。提高提高CPU和和I/O設(shè)備之間的并行性。設(shè)備之間的并行性。4.2.3 緩沖管理 緩沖區(qū)用戶區(qū)I/O設(shè)備輸入T傳送M用戶進程 計算Cl單緩沖(單緩沖(Single Buffer):):是操作系統(tǒng)緩沖支持中最為簡單的一種形式

41、,每當用是操作系統(tǒng)緩沖支持中最為簡單的一種形式,每當用戶進程發(fā)出一個戶進程發(fā)出一個I/O請求時,操作系統(tǒng)便在內(nèi)核區(qū)域請求時,操作系統(tǒng)便在內(nèi)核區(qū)域為之分配一個緩沖區(qū)。為之分配一個緩沖區(qū)。4.2.3 緩沖管理l例如,例如,CPU從磁盤上讀入從磁盤上讀入N個數(shù)據(jù)塊,然后對這些個數(shù)據(jù)塊,然后對這些數(shù)據(jù)塊進行計算,采用單緩沖機制的工作過程為:數(shù)據(jù)塊進行計算,采用單緩沖機制的工作過程為:先從磁盤把一塊數(shù)據(jù)讀入到緩沖區(qū)中,所花時間為先從磁盤把一塊數(shù)據(jù)讀入到緩沖區(qū)中,所花時間為T;在讀取一塊以后由操作系統(tǒng)將緩沖區(qū)的數(shù)據(jù)傳;在讀取一塊以后由操作系統(tǒng)將緩沖區(qū)的數(shù)據(jù)傳送到用戶區(qū),所花時間為送到用戶區(qū),所花時間為M;

42、最后由;最后由CPU對這一塊對這一塊數(shù)據(jù)進行計算,所花費的時間為數(shù)據(jù)進行計算,所花費的時間為C。如果。如果不采用緩不采用緩沖沖,將數(shù)據(jù)直接從磁盤讀入用戶區(qū),每批數(shù)據(jù)的處,將數(shù)據(jù)直接從磁盤讀入用戶區(qū),每批數(shù)據(jù)的處理時間為理時間為(T+C)N。采用單緩沖技術(shù)采用單緩沖技術(shù)時,數(shù)據(jù)時,數(shù)據(jù)讀入緩沖與計算讀入緩沖與計算C是可以并發(fā)執(zhí)行的(第一和最后是可以并發(fā)執(zhí)行的(第一和最后一塊除外,采用前面講到的預先讀取方式),這樣,一塊除外,采用前面講到的預先讀取方式),這樣,每批數(shù)據(jù)的最大處理時間為每批數(shù)據(jù)的最大處理時間為MAX(C,T)N+MN。通常。通常M遠小于遠小于T或或C,這樣就提高了,這樣就提高了CP

43、U和外設(shè)的利用率。和外設(shè)的利用率。 4.2.3 緩沖管理緩沖區(qū)A緩沖區(qū)B用戶區(qū)用戶進程 計算CI/O設(shè)備輸入T傳送Ml雙緩沖(雙緩沖(Double Buffer):):是對單緩沖方式的改進。可以實現(xiàn)用戶數(shù)據(jù)區(qū)是對單緩沖方式的改進??梢詫崿F(xiàn)用戶數(shù)據(jù)區(qū)緩緩沖區(qū)之間交換數(shù)據(jù)和緩沖區(qū)沖區(qū)之間交換數(shù)據(jù)和緩沖區(qū)外設(shè)之間交換數(shù)據(jù)并外設(shè)之間交換數(shù)據(jù)并行。行。4.2.3 緩沖管理l雙緩沖工作方式的基本方法是:在設(shè)備進雙緩沖工作方式的基本方法是:在設(shè)備進行輸入時,先將數(shù)據(jù)輸入到緩沖區(qū)行輸入時,先將數(shù)據(jù)輸入到緩沖區(qū)A,裝滿,裝滿后轉(zhuǎn)向緩沖區(qū)后轉(zhuǎn)向緩沖區(qū)B。此時操作系統(tǒng)可以從緩沖。此時操作系統(tǒng)可以從緩沖區(qū)區(qū)A中提取數(shù)

44、據(jù)傳送到用戶區(qū),最后由中提取數(shù)據(jù)傳送到用戶區(qū),最后由CPU對數(shù)據(jù)進行計算或其他處理。對數(shù)據(jù)進行計算或其他處理。 l系統(tǒng)處理一塊數(shù)據(jù)的處理時間可粗略地認系統(tǒng)處理一塊數(shù)據(jù)的處理時間可粗略地認為是為是MAX(C,T)。若。若CT,可使塊設(shè)備,可使塊設(shè)備連續(xù)輸入;若連續(xù)輸入;若CT,可使,可使CPU不必等待設(shè)不必等待設(shè)備輸入。備輸入。4.2.3 緩沖管理l循環(huán)緩沖(循環(huán)緩沖(Circular Buffer):):指采用有限緩沖區(qū)的生產(chǎn)者指采用有限緩沖區(qū)的生產(chǎn)者/消費者模型對緩沖池中的消費者模型對緩沖池中的緩沖區(qū)進行循環(huán)使用緩沖區(qū)進行循環(huán)使用 。緩沖區(qū)結(jié)合預讀和滯后寫技術(shù)對具有重復性及陣發(fā)性緩沖區(qū)結(jié)合預

45、讀和滯后寫技術(shù)對具有重復性及陣發(fā)性I/O進程提高進程提高I/O速度很有幫助。速度很有幫助。用戶區(qū)用戶進程 計算CI/O設(shè)備輸入T傳送M緩沖區(qū)1緩沖區(qū)2緩沖區(qū)N4.2.4 設(shè)備驅(qū)動程序l設(shè)備驅(qū)動程序的功能:設(shè)備驅(qū)動程序的功能:向有關(guān)向有關(guān)I/O設(shè)備的各種控制器發(fā)出控制命令,并設(shè)備的各種控制器發(fā)出控制命令,并且監(jiān)督它們的正確執(zhí)行,進行必要的錯誤處理。且監(jiān)督它們的正確執(zhí)行,進行必要的錯誤處理。對各種設(shè)備排隊、掛起、喚醒等操作進行處理。對各種設(shè)備排隊、掛起、喚醒等操作進行處理。執(zhí)行確定的緩沖區(qū)策略。執(zhí)行確定的緩沖區(qū)策略。進行比寄存器接口級別層次更高的一些特殊處進行比寄存器接口級別層次更高的一些特殊處理

46、,如代碼轉(zhuǎn)換,理,如代碼轉(zhuǎn)換,ESC處理等。這些特殊處理處理等。這些特殊處理均依賴于具體設(shè)備,不適合放在高層次的軟件均依賴于具體設(shè)備,不適合放在高層次的軟件中處理。中處理。4.2.4 設(shè)備驅(qū)動程序l設(shè)備驅(qū)動程序的特性設(shè)備驅(qū)動程序的特性設(shè)備驅(qū)動程序的突出特點是,它與設(shè)備驅(qū)動程序的突出特點是,它與I/O設(shè)備的硬設(shè)備的硬件結(jié)構(gòu)密切相關(guān),是操作系統(tǒng)底層中惟一知道件結(jié)構(gòu)密切相關(guān),是操作系統(tǒng)底層中惟一知道各種各種I/O設(shè)備的控制器細節(jié)及其用途的部分。設(shè)備的控制器細節(jié)及其用途的部分。 4.2.4 設(shè)備驅(qū)動程序l設(shè)備驅(qū)動程序的結(jié)構(gòu)設(shè)備驅(qū)動程序的結(jié)構(gòu)設(shè)備驅(qū)動程序的結(jié)構(gòu)同設(shè)備驅(qū)動程序的結(jié)構(gòu)同I/O設(shè)備的硬件特性有

47、關(guān)。設(shè)備的硬件特性有關(guān)。一臺彩色顯示器的設(shè)備驅(qū)動程序的結(jié)構(gòu),顯然一臺彩色顯示器的設(shè)備驅(qū)動程序的結(jié)構(gòu),顯然同磁盤設(shè)備驅(qū)動程序的結(jié)構(gòu)不同。通常,一個同磁盤設(shè)備驅(qū)動程序的結(jié)構(gòu)不同。通常,一個設(shè)備驅(qū)動程序?qū)幚硪环N設(shè)備類型,或者至設(shè)備驅(qū)動程序?qū)幚硪环N設(shè)備類型,或者至多是一類密切相關(guān)、而差異性較少的設(shè)備類型。多是一類密切相關(guān)、而差異性較少的設(shè)備類型。4.2.4 設(shè)備驅(qū)動程序l設(shè)備驅(qū)動程序的實現(xiàn)策略設(shè)備驅(qū)動程序的實現(xiàn)策略(1)確定是否發(fā)送新的請求。)確定是否發(fā)送新的請求。 (2)針對具體設(shè)備和操作,確定發(fā)送的內(nèi)容。)針對具體設(shè)備和操作,確定發(fā)送的內(nèi)容。 (3)執(zhí)行底層具體操作。)執(zhí)行底層具體操作。

48、(4)中斷與后續(xù)處理工作。在一條或多條指令發(fā))中斷與后續(xù)處理工作。在一條或多條指令發(fā)出以后,存在著兩種做法。出以后,存在著兩種做法。 4.2.4 設(shè)備驅(qū)動程序l設(shè)備驅(qū)動程序接口函數(shù)主要包括:設(shè)備驅(qū)動程序接口函數(shù)主要包括:驅(qū)動程序初始化函數(shù):驅(qū)動程序初始化函數(shù):是為了使驅(qū)動程序其它函數(shù)能被是為了使驅(qū)動程序其它函數(shù)能被上層正常調(diào)用,而做一些針對驅(qū)動程序本身的初始化工上層正常調(diào)用,而做一些針對驅(qū)動程序本身的初始化工作。如向操作系統(tǒng)登記該驅(qū)動程序的接口函數(shù),該初始作。如向操作系統(tǒng)登記該驅(qū)動程序的接口函數(shù),該初始化函數(shù)在系統(tǒng)啟動時或驅(qū)動程序安裝入內(nèi)核時執(zhí)行?;瘮?shù)在系統(tǒng)啟動時或驅(qū)動程序安裝入內(nèi)核時執(zhí)行。

49、驅(qū)動程序卸載函數(shù):驅(qū)動程序卸載函數(shù):是驅(qū)動程序初始化函數(shù)的逆過程,是驅(qū)動程序初始化函數(shù)的逆過程,在支持驅(qū)動程序可動態(tài)加載卸載的系統(tǒng)中才需要。在支持驅(qū)動程序可動態(tài)加載卸載的系統(tǒng)中才需要。申請設(shè)備函數(shù):申請設(shè)備函數(shù):該函數(shù)申請一個驅(qū)動程序所管理的設(shè)備,該函數(shù)申請一個驅(qū)動程序所管理的設(shè)備,按照設(shè)備特性進行獨占式占用或者分時共享式占用,如按照設(shè)備特性進行獨占式占用或者分時共享式占用,如果是獨占式申請成功還應該對設(shè)備做初始化工作。果是獨占式申請成功還應該對設(shè)備做初始化工作。釋放設(shè)備函數(shù):釋放設(shè)備函數(shù):是申請設(shè)備函數(shù)的逆過程。是申請設(shè)備函數(shù)的逆過程。4.2.5 中斷處理程序l中斷基本概念:中斷基本概念:指

50、指CPU暫時終止現(xiàn)行程序,轉(zhuǎn)去執(zhí)行其他緊急暫時終止現(xiàn)行程序,轉(zhuǎn)去執(zhí)行其他緊急事件或特殊請求,處理完后自動返回原來被中事件或特殊請求,處理完后自動返回原來被中斷處繼續(xù)執(zhí)行或調(diào)度新的進程執(zhí)行的過程。斷處繼續(xù)執(zhí)行或調(diào)度新的進程執(zhí)行的過程。一旦一旦CPU響應中斷,轉(zhuǎn)入中斷處理程序,系統(tǒng)響應中斷,轉(zhuǎn)入中斷處理程序,系統(tǒng)就開始進行中斷處理。就開始進行中斷處理。4.2.5 中斷處理程序l中斷處理過程:中斷處理過程:(1)CPU檢查響應中斷的條件是否滿足。檢查響應中斷的條件是否滿足。CPU響應中響應中斷的條件是,有來自于中斷源的中斷請求及斷的條件是,有來自于中斷源的中斷請求及CPU允許允許中斷。如果中斷響應條

51、件不滿足,則中斷處理無法進中斷。如果中斷響應條件不滿足,則中斷處理無法進行。行。(2)如果)如果CPU響應中斷,則響應中斷,則CPU關(guān)中斷,使其進入不關(guān)中斷,使其進入不可再次響應中斷的狀可再次響應中斷的狀 態(tài)。態(tài)。(3)保存被中斷進程的現(xiàn)場。為了在中斷處理結(jié)束后)保存被中斷進程的現(xiàn)場。為了在中斷處理結(jié)束后能使進程正確地返回到被中斷點,系統(tǒng)必須保存當前能使進程正確地返回到被中斷點,系統(tǒng)必須保存當前處理機狀態(tài)字處理機狀態(tài)字PSW和程序計數(shù)器和程序計數(shù)器PC等的信息。等的信息。 這些信息通常保存在特定堆?;蚣拇嫫髦?。這些信息通常保存在特定堆?;蚣拇嫫髦?。4.2.5 中斷處理程序(4)分析中斷原因,調(diào)

52、用中斷處理子程序。作為中)分析中斷原因,調(diào)用中斷處理子程序。作為中斷處理過程的核心工作之一,就是如何確定和尋找斷處理過程的核心工作之一,就是如何確定和尋找到中斷服務程序的入口地址,該工作可由軟件和硬到中斷服務程序的入口地址,該工作可由軟件和硬件的方法來完成。件的方法來完成。(5)執(zhí)行中斷處理子程序。在有些系統(tǒng)中的異常是)執(zhí)行中斷處理子程序。在有些系統(tǒng)中的異常是通過異常指令向當前執(zhí)行進程發(fā)出軟中斷信號后通過異常指令向當前執(zhí)行進程發(fā)出軟中斷信號后,調(diào)調(diào)用對應的處理子程序執(zhí)行。用對應的處理子程序執(zhí)行。(6)退出中斷,恢復被中斷進程的現(xiàn)場或調(diào)度新進)退出中斷,恢復被中斷進程的現(xiàn)場或調(diào)度新進程占據(jù)程占據(jù)

53、CPU。(7)開中斷,)開中斷,CPU繼續(xù)執(zhí)行。繼續(xù)執(zhí)行。 中斷處理流程中斷處理流程4.3 存儲設(shè)備l4.3.1 常見的存儲外設(shè)常見的存儲外設(shè)l4.3.2 磁盤調(diào)度磁盤調(diào)度l4.3.3 存儲出錯處理存儲出錯處理l4.3.4 RAM盤盤l4.3.5 磁盤陣列磁盤陣列4.3.1 常見的存儲外設(shè)l磁帶存儲設(shè)備。磁帶存儲設(shè)備。l磁盤存儲設(shè)備。磁盤存儲設(shè)備。l光盤存儲設(shè)備。光盤存儲設(shè)備。CD-ROM、CD-R、CD-RW、DVD。 磁盤示意圖磁盤示意圖4.3.2 磁盤調(diào)度l磁盤為共享設(shè)備,面臨多個進程同時向磁盤磁盤為共享設(shè)備,面臨多個進程同時向磁盤提出磁盤訪問操作的要求。但是,系統(tǒng)在任提出磁盤訪問操作的

54、要求。但是,系統(tǒng)在任何時刻只允許一個對磁盤的何時刻只允許一個對磁盤的I/O操作,其余操操作,其余操作只能等待。作只能等待。l磁盤訪問:磁盤訪問:尋道時間:尋道時間:磁頭花費在柱面定位上的時間。磁頭花費在柱面定位上的時間。 Ts=mn+s (m0.1, s=0.2)旋轉(zhuǎn)延遲時間:旋轉(zhuǎn)延遲時間:指定扇區(qū)移動到磁頭下面所需的指定扇區(qū)移動到磁頭下面所需的時間。時間。(5.5ms)傳輸時間:傳輸時間:數(shù)據(jù)寫入磁盤或從磁盤讀出的時間。數(shù)據(jù)寫入磁盤或從磁盤讀出的時間。4.3.2 磁盤調(diào)度l磁盤調(diào)度:磁盤調(diào)度:分為尋道調(diào)度和旋轉(zhuǎn)調(diào)度兩類,并且是先進行尋道調(diào)度,分為尋道調(diào)度和旋轉(zhuǎn)調(diào)度兩類,并且是先進行尋道調(diào)度,

55、然后再進行旋轉(zhuǎn)調(diào)度。然后再進行旋轉(zhuǎn)調(diào)度。就目前來講,訪問磁盤最耗時的還是尋道,因此,磁盤就目前來講,訪問磁盤最耗時的還是尋道,因此,磁盤調(diào)度的大多數(shù)算法仍限定在追求平均尋道時間最少這個調(diào)度的大多數(shù)算法仍限定在追求平均尋道時間最少這個目標上。目標上。4.3.2 磁盤調(diào)度l面向?qū)さ赖拇疟P調(diào)度算法:面向?qū)さ赖拇疟P調(diào)度算法:FCFS(First Come , First Served,先來先服務),先來先服務)SSTF(Shortest Seek Time First,最短尋道時,最短尋道時間優(yōu)先)間優(yōu)先)SCAN(掃描)調(diào)度,也稱電梯調(diào)度(掃描)調(diào)度,也稱電梯調(diào)度C-SCAN(Circular SC

56、AN,循環(huán)掃描)調(diào)度算,循環(huán)掃描)調(diào)度算法法 4.3.2 磁盤調(diào)度l(1)先來先服務:)先來先服務:是所有磁盤調(diào)度算法中最簡單的。根據(jù)所有進是所有磁盤調(diào)度算法中最簡單的。根據(jù)所有進程訪問磁盤請求的先后順序進行調(diào)度。每個進程訪問磁盤請求的先后順序進行調(diào)度。每個進程的請求都能依次得到處理,不會出現(xiàn)某進程程的請求都能依次得到處理,不會出現(xiàn)某進程的請求長期得不到滿足的情況。的請求長期得不到滿足的情況。此算法由于未對尋道進行優(yōu)化,導致平均尋道此算法由于未對尋道進行優(yōu)化,導致平均尋道時間較長。時間較長。 FCFS調(diào)度算法4.3.2 磁盤調(diào)度磁頭訪問次序 55 58 39 18 90 160 150 38

57、184,當前磁道10018 18416015090585539381004.3.2 磁盤調(diào)度l(2)最短尋道時間優(yōu)先:)最短尋道時間優(yōu)先:最短尋道時間優(yōu)先算法選擇磁道與當前磁頭所最短尋道時間優(yōu)先算法選擇磁道與當前磁頭所在磁道距離最近的下一在磁道距離最近的下一I/O操作進行,使每次的操作進行,使每次的尋道時間最短,但卻不能保證平均尋道時間最尋道時間最短,但卻不能保證平均尋道時間最短。短。 SSTF調(diào)度算法 4.3.2 磁盤調(diào)度磁頭訪問次序 55 58 39 18 90 160 150 38 184,當前磁道10018 18416015090585539381004.3.2 磁盤調(diào)度l(3)掃描算

58、法(也稱電梯算法)掃描算法(也稱電梯算法)掃描算法不但要考慮欲訪問的磁道與當前訪問掃描算法不但要考慮欲訪問的磁道與當前訪問磁道的距離,而且更優(yōu)先考慮磁頭當前的移動磁道的距離,而且更優(yōu)先考慮磁頭當前的移動方向。這樣,相對方向。這樣,相對SSTF算法而言,將不存在遲算法而言,將不存在遲遲得不到響應的遲得不到響應的I/O操作。也就是說在當前移動操作。也就是說在當前移動方向上選擇與當前磁道最近的進行先處理。方向上選擇與當前磁道最近的進行先處理。 這種算法中,有如高樓里上下運動的電梯,故這種算法中,有如高樓里上下運動的電梯,故又常稱為電梯調(diào)度算法。又常稱為電梯調(diào)度算法。 SCAN調(diào)度算法示例4.3.2

59、磁盤調(diào)度磁頭訪問次序 55 58 39 18 90 160 150 38 184,當前磁道10018 18416015090585539381004.3.2 磁盤調(diào)度l(4)循環(huán)掃描算法)循環(huán)掃描算法SCAN算法既能獲得較好的尋道性能,又可以防止進程算法既能獲得較好的尋道性能,又可以防止進程的的“饑餓饑餓”現(xiàn)象,所以在大、中、小型機和網(wǎng)絡(luò)中的硬現(xiàn)象,所以在大、中、小型機和網(wǎng)絡(luò)中的硬盤調(diào)度中被廣泛用。盤調(diào)度中被廣泛用。缺陷:當磁頭剛從外向里移動過某一磁道時,正好又有缺陷:當磁頭剛從外向里移動過某一磁道時,正好又有一個進程請求訪問此磁道,那么這時該進程必須等待,一個進程請求訪問此磁道,那么這時該進

60、程必須等待,待磁頭從外向里、然后再從里向外掃描完所有要訪問的待磁頭從外向里、然后再從里向外掃描完所有要訪問的磁道后,才去處理該進程的請求,使得該進程的請求被磁道后,才去處理該進程的請求,使得該進程的請求被嚴重地推遲。為了減少這種延遲,嚴重地推遲。為了減少這種延遲,CSCAN算法規(guī)定磁頭算法規(guī)定磁頭只做單向移動。只做單向移動。 例如只作自里向外移動,當磁頭訪問完例如只作自里向外移動,當磁頭訪問完最外的被訪問磁道時,立即返回到最里的欲訪問磁道,最外的被訪問磁道時,立即返回到最里的欲訪問磁道,最小磁道號緊接著最大磁道號構(gòu)成循環(huán)掃描。最小磁道號緊接著最大磁道號構(gòu)成循環(huán)掃描。CSCAN調(diào)度算法示例4.3

溫馨提示

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

評論

0/150

提交評論