




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I/O設備管理
2I/O設備管理系統結構圖設備管理概述操作系統I/O硬體管理I/O軟體管理上層用戶程式(應用層)設備控制器命令寄存器底層硬體設備(物理層)中斷處理程式設備驅動程式設備無關程式用戶進程狀態寄存器數據寄存器3I/O設備的特點分析操作系統需要管理的最複雜的資源——I/O設備I/O設備種類繁多,工作模式各不相同I/O設備數據多樣,處理方式各不相同I/O設備性能參差,運行控制多種多樣最容易成為電腦系統的瓶頸——I/O設備很多I/O設備使用機械操作,導致其速度較CPU相差很大進程運行中的輸入輸出操作可能造成系統運行的性能瓶頸I/O管理:如何最大限度保證I/O設備與CPU的並行工作最實用、最體現操作系統特色的工作——I/O管理相容性:操作系統最難以完成的使命標準化:IT技術迅速普及發展的本質高性能:I/O設備發展的主要目標I/O硬體管理4I/O設備分類按照設備的功能特性劃分存儲型設備:保存各類數據(臨時或永久)輸入輸出型設備:提供人機交互手段數據通信型設備:實現電子數據交換按照數據的組織形式劃分塊設備:以數據塊為單位存儲、傳輸數據字元設備:以位元組為單位存儲、傳輸數據按照資源分配的形式劃分獨佔式設備:一個時刻只能由一個進程使用,一般為低速I/O設備共用式設備:一個時刻可由多個進程使用,資源利用率很高虛擬式設備:用高速設備模擬低速設備,用共用設備模擬獨佔設備按照程式使用的方式劃分邏輯設備:由操作系統維護,簡便用戶操作和控制的“設備結構”物理設備:由硬體結構組成,真實完成各類I/O設備操作I/O硬體管理5I/O設備的差別I/O設備的評價標準設備的數據傳輸單位和傳輸率設備的數據表示和應用目標設備的控制方式和出錯情況I/O硬體管理6I/O管理的任務和目標根據用戶請求,控制各類I/O設備實現用戶的目標控制設備操作,實現設備與記憶體的數據交換設備的分配與回收、設備驅動程式、設備中斷管理、各類緩衝區管理等向用戶提供方便的I/O設備介面,遮罩底層硬體細節差別虛擬機——邏輯設備的作用:用戶能夠簡單方便的使用I/O設備設備介面的方便性、友好性、透明性、設備無關性利用各種技術,提高I/O設備的運行效率設備與CPU之間、設備之間的並行設備負載的均衡:保持設備的充分忙碌實現對I/O設備的管理和保護設備的分配與回收:針對獨佔設備和共用設備,實現合理的資源分配設備的數據保護:不同設備之間的保護、設備內部的保護I/O硬體管理7內容提要
I/O設備管理概述
I/O硬體原理與軟體原理進程死鎖
I/O設備管理實例剖析內容提要8I/O設備硬體組成I/O設備的硬體結構機械部分(物理裝置):由模擬信號驅動的各種機械裝置控制器/適配器(電子裝置):實現與主機的連接和通信設備控制器的工作方式常以板卡的形式與主板的匯流排插槽連接通過設備的介面寄存器、緩衝區與CPU進行通信設備控制器的工作內容地址解碼:實現對I/O地址空間的正確映射外部通信:接受或者發送數據/狀態信號執行指令:將數位化指令轉化為機械裝置能夠理解的模擬信號性能增強:實現內部硬體緩衝、完成數據加工等性能提升目標I/O硬體管理9操作系統的硬體環境課程導論10I/O設備介面的工作流程I/O操作過程的細分準備、啟動、測試和等待、結果檢查和錯誤處理I/O設備介面的作用介面寄存器:保存命令、狀態或者數據介面緩衝區:用來保存大量數據的緩衝區通過I/O設備介面,CPU可以設定指令或狀態、可以讀取狀態和結果I/O設備介面的工作方式設置命令寄存器和狀態寄存器:CPU通過匯流排與I/O介面通信I/O設備與CPU並行工作:控制器根據指令完成相應I/O操作通過中斷向CPU發出信號:工作完成後通過硬體中斷通知CPUI/O硬體管理11I/O設備介面的工作流程(續)IBMPC的軟碟控制器可接受15條指令:READ、WRITE、SEEK、FORMAT等各條指令均可帶參數,指令和相關參數均被設置到介面寄存器中位串行工作機制:驅動器提供“位流”,控制器負責在緩衝區中將其組裝為位元組,並進行必要的校驗和糾錯顯示器的控制器位串行工作機制:從顯示緩衝區中讀取可供顯示的內容,而後產生用來調製CRT電子束的信號I/O設備介面的價值遮罩底層硬體細節,降低應用者的操作難度體現模組化的特點,適應不同的應用環境通過對I/O設備介面進行標準化,即可方便實現相容I/O硬體管理12電腦的系統結構圖課程導論13I/O設備的連接與地址映射I/O設備的連接方式連接路徑:I/O設備與CPU建立連接時,所有有關組件構成連接路徑I/O端口:I/O設備介面中有多個介面寄存器或緩衝區,每一個寄存器或緩衝區被稱為一個I/O端口I/O端口地址空間:實現對I/O介面寄存器/緩衝區的訪問I/O設備端口的編址方式I/O端口獨立編址:與記憶體空間完全獨立記憶體映射I/O地址:在內存空間中劃分固定區域映射I/O端口I/O地址空間的編址方式和使用差別指令運行差別:訪問的地址空間不同系統資源消耗:所需要的資源數不同優缺點權衡:匯流排規格、地址資訊傳輸與過濾、系統性能等因素I/O硬體管理14I/O端口獨立編址模式I/O地址與記憶體空間完全獨立使用專用的I/O指令對I/O端口進行操作優缺點分析優點1:I/O設備不佔用記憶體地址空間,減少系統資源消耗優點2:技術實現複雜度低,易於區分I/O地址和記憶體地址缺點:由於地址空間獨立、狹小,導致指令類型少,只能使用簡單的組合語言編程I/O硬體管理15I/O端口的記憶體映射編址方式I/O端口地址空間和記憶體地址空間統一編址I/O端口地址也被作為物理地址空間的一部分進行存儲管理CPU訪問地址空間時,將對地址空間的範圍進行判斷,然後選擇讀取記憶體空間或者訪問I/O端口記憶體映射編址的優缺點分析優點1:使得技術實現手段更加方便,可用C語言編寫驅動程式優點2:不需要對I/O地址空間進行特殊保護,只需要利用現有的存儲保護機制(例如分頁式中的頁表項設置)優點3:使得I/O端口的指令更加靈活多樣缺點1:記憶體映射方式中必須保證I/O端口的即時性(禁用高速緩存)缺點2:對於雙匯流排或者多匯流排結構而言,I/O端口的地址映射將比較困難和麻煩I/O硬體管理16I/O端口地址的映射與訪問I/O硬體管理混合方案中,記憶體空間負責管理I/O端口,I/O獨立編址部分屬於數據緩衝區。例如Pentium就使用了這種方式17系統匯流排對I/O端口編址的影響I/O硬體管理18系統匯流排對I/O端口編址的影響I/O硬體管理19I/O設備的控制方式程式控制I/O(輪詢或忙等待模式)CPU直接與I/O設備進行通信,負責將用戶數據傳送到I/O端口用戶程式通過系統調用來使用I/O設備CPU需要不斷查詢I/O設備的端口狀態,性能較低中斷控制I/OCPU設定I/O設備的初始值,然後不再忙等待,運行其他進程,當前進程阻塞I/O設備完成對當前數據的處理後,向CPU發出中斷,I/O中斷處理程式將負責傳送剩餘數據中斷控制模式依然造成CPU時間的浪費,而且效率不高DMA控制I/O使用獨立的DMA控制器代替CPU的工作,I/O設備與DMA通信,DMA在傳輸完成一個數據緩衝區之後再向CPU發中斷DMA模式減少了中斷次數,同時又集成了程式控制和中斷控制的優點I/O通道機制DMA機制過於簡單,有時未必能夠提高與CPU並行效率為此專門增加了I/O處理機,專門負責I/O設備的控制和操作,與CPU並行工作I/O硬體管理20程式控制I/O的工作流程I/O硬體管理由操作系統的“服務程式”負責將用戶數據傳送至印表機端口服務程式順序傳送列印數據,填滿介面緩衝區後就等待(空迴圈)每次迴圈中都檢查介面緩衝區是否可用,一旦可用就繼續傳送數據數據傳送完成後“服務程式”結束,用戶進程繼續運行缺點:靠CPU以“忙等待”的形式與印表機進行通信,浪費CPU資源21中斷控制I/O的工作流程I/O硬體管理“列印服務程式”只將最開始的數據傳送至印表機端口,然後阻塞CPU可繼續調度其他進程運行,不浪費CPU時間一旦列印緩衝區空後,印表機端口發出硬體中斷CPU回應中斷,恢復“列印服務程式”運行,繼續傳送數據缺點:雖然節省了CPU資源,但是中斷回應也消耗較大的系統資源22DMA控制I/O的工作流程I/O硬體管理用戶進程發出系統調用後進入阻塞態,CPU直接設置DMA端口CPU與DMA並行工作,DMA負責將用戶數據傳送給印表機當DMA完成所有工作後,向CPU發出中斷,CPU回應後喚醒用戶進程優點:只有一次中斷、DMA與CPU並行提高了系統運行效率缺點:DMA速度較慢,如果CPU並不繁忙,那麼DMA機制並無太大意義23DMA工作方式的深入分析DMA內部結構的差異單路I/O連接:DMA中只有一組寄存器,只能連接一個I/O設備多路I/O連接:DMA中有多組寄存器,可同時連接多個I/O設備多路I/O連接模式下,DMA內部也需要進行適當的調度(輪轉、優先順序)DMA工作方式的差異數據匯流排的工作模式:塊模式和字元模式,傳輸數據的速率不同字元模式(週期竊取):DMA竊取一個匯流排週期以傳輸一個字,造成CPU輕微延遲塊模式(突發模式):DMA獲得匯流排控制權後連續發出多個請求,提高匯流排利用效率飛越模式:DMA內部存在數據緩衝,設備將數據發送給DMA,DMA再進行轉發DMA模式的權衡與分析DMA保存的地址資訊:絕大多數情況下DMA保存的是物理地址,CPU負責將用戶地址轉換為物理地址,然後將其設置到DMA中DMA的數據緩衝:DMA內部也會使用數據緩衝,這樣會大大提高I/O通信效率DMA的優劣分析:DMA比CPU慢好多,簡單的應用環境中,用CPU要比DMA好;只有存在頻繁的多道程序併發的情況下,DMA才會體現與CPU並行的作用I/O硬體管理24I/O通道機制的引入與實現I/O通道(Channel)的概念如何以高速、高效的方式控制I/O設備,是I/O管理的重要問題DMA速度很慢,而且結構簡單,無法執行相對複雜的程式引入I/O通道(專門的處理機),可以運行由通道指令組成的通道程式I/O通道的工作方式和分類分為位元組多路通道、選擇通道、成組多路通道三種I/O通道採取“竊取匯流排週期”的方式實現對I/O設備的控制和數據傳輸I/O通道就是一個小型的處理機,和CPU共用記憶體I/O通道接到CPU的指令後即啟動通道命令/程式,獨立於CPU控制I/O設備工作I/O通道的結構組成CAW:通道地址寄存器,用於記錄通道程式在內存中的地址CCW:通道命令寄存器,用於保存當前正在運行的通道命令CSW:通道狀態寄存器,用於保存命令執行後的結果CDW:通道數據寄存器,用於存放傳輸的數據(起到緩衝的作用)I/O硬體管理25不同類型的I/O通道I/O硬體管理26單通道與多通道I/O硬體管理27I/O軟體原理I/O軟體的設計需求有哪些?解決同步(阻塞)-非同步(傳輸)的問題。底層:如何傳送控制命令?如何傳輸數據?上層:如何向用戶遮罩此過程?如何調度I/O進程實現對設備訪問的錯誤處理。簡單情況:可在硬體底層解決的錯誤複雜情況:無法有效解決,只能通知高層的錯誤為便於人的使用,實現設備無關性——統一命名法。如何讓用戶無需考慮各種設備的差別,採用相同的習慣來使用?如何管理不同設備的統一命名?實現名稱與設備的映射?I/O設備的緩衝管理緩衝區的維護與使用;即時I/O設備中緩衝區的預存和即時性保持實現對專有設備的和共用設備的有效管理共用設備:如何記錄共用狀態?專有設備:如何實現對專有設備的互斥性訪問?I/O軟體管理28I/O軟體體系結構I/O軟體管理中斷處理程式底層硬體設備設備驅動程式用戶I/O軟體設備無關軟體I/O請求I/O回應提供系統庫調用,供人員使用;提供類似Spooling這樣的精靈守護進程管理共用設備命名、保護、阻塞、緩衝建立設備寄存器、解決錯誤處理中斷信號29中斷處理程式控制I/O設備的基本方法用戶發出系統調用或直接調用I/O設備,然後用戶進程阻塞設備驅動程式啟動I/O操作,然後自己阻塞I/O設備完成操作後產生中斷,對應的中斷服務程式更新各種狀態資訊用戶進程恢復為就緒,繼續運行中斷處理程式的工作過程保存CPU現場資訊:各類寄存器(最重要的是PSW)為中斷服務程式設定CPU上下文:TLB、內核堆疊等應答中斷控制器:遮罩同類中斷、打開其他中斷恢復中斷服務進程的運行,完成對設備控制器介面的操作操作結束後進行調度,改變用戶進程狀態,選擇下一個運行程式用戶進程恢復正常運行,此時設備驅動程式無事可幹,又陷入阻塞I/O軟體管理30設備驅動程式設備驅動程式的特點用來控制設備控制器的代碼和指令,被稱為設備驅動程式目前的體系結構中,設備驅動程式屬於操作系統的內核部分操作系統實現過程中,需要提供標準化的介面函數,用於封裝設備驅動程式設備驅動的存在形式:與操作系統統一編譯,或者運行時動態鏈接設備驅動程式的工作過程接受上層用戶發送的各類參數,並對輸入參數進行檢查對硬體設備的可用性進行檢查,並接通或者啟動設備控制設備完成對應的操作(通過設置介面寄存器實現)實現數據的I/O,同時返回操作的狀態結果。設備驅動工作過程中的特殊考慮設備驅動的工作方式:同步阻塞或持續運行同步阻塞模式下,必須考慮支持“中斷嵌套”的情況,將其設計為可重入熱插拔系統中,自動的適應設備插入或者卸載I/O軟體管理31設備驅動程式的統一介面I/O軟體管理32緩衝機制的設計與實現I/O軟體管理33用戶空間的I/O軟體I/O操作相關的庫函數或工具包實現對OS內核設備I/O管理機制的封裝向應用層用戶提供規範、簡潔的操作介面實現I/O管理底層機制與上層用戶的交互假脫機(Spooling)技術通過應用軟體來實現對獨佔式I/O設備的管理緩衝+封裝:用戶只需要管理“特殊I/O檔”守護進程(Daemon):實現假脫機目錄利用應用程式,將獨佔式I/O設備虛擬為共用設備I/O軟體管理34I/O設備管理小結I/O設備管理面對的各種衝突和矛盾“獨特性”與“相容性”——標準化環境下的發展選擇“高性能”與“友好性”——系統資源消耗的代價取捨硬體實現與軟體模擬——成本與性能之間的權衡I/O設備管理的思維方式統一、規範的軟硬體平臺是一切技術發展的基礎性能穩定和錯誤處理機制是一切應用普及的前提系統觀:軟硬搭配、高低結合是複雜問題的解決思路未來趨勢:隨著硬體成本的降低,軟體的作用越來越大I/O設備管理35內容提要
I/O設備管理概述
I/O硬體原理與軟體原理
進程死鎖
I/O設備管理實例剖析內容提要36進程死鎖原理死鎖舉例進程A:獲得CD-ROM使用權,申請印表機進程B:獲得印表機使用權,申請CD-ROM死鎖:此時進程A、B均被阻塞,無法運行進程死鎖進程A進程B印表機CD-ROM37進程死鎖原理死鎖的定義進程死鎖若一個進程集合中的每一個進程都在等待只能由本集合中其他進程引發的事件。則這種情況為死鎖。死鎖發生的條件互斥條件:每一個資源或者空閒,或者被分配給一個進程保持和等待條件:已佔有某些資源的進程需申請新的資源後方可繼續運行非剝奪條件:被進程佔用的資源不可剝奪,只能被進程本身顯式釋放迴圈等待條件:系統必然存在一條由兩個或兩個以上進程組成的迴圈鏈,該迴圈鏈中每個進程都在等待臨近的進程釋放資源38如何理解死鎖概念基礎資源、可剝奪資源與不可剝奪資源可剝奪資源會造成死鎖嗎?(舉例)發生條件分析保持當前資源,等待未分配資源存在迴圈的保持等待鏈,造成死鎖情況對比理解死鎖與互斥有哪些異同?操作系統為什麼要解決死鎖問題?在所有的操作系統中都會發生死鎖問題嗎?進程死鎖39死鎖的形式化描述基於有向圖描述死鎖條件進程死鎖40死鎖現象與死鎖過程產生死鎖的進程運行過程示例進程死鎖41死鎖現象與死鎖過程進程死鎖產生死鎖的進程運行過程示例42死鎖處理策略不理會死鎖原因:為什麼耗費大量的時間在小概率事件上呢?死鎖檢測與恢復目標:檢測死鎖發生,通過撤銷進程恢復系統運行死鎖預防目標:對進程加以適當限制以防止死鎖情況發生死鎖避免目標:不對進程加以限制,由操作系統完成死鎖預防進程死鎖43鴕鳥演算法核心思想:忽略死鎖問題原因:死鎖問題的發生是小概率事件策略分析方便性與正確性之間的選擇平均情況與最壞情況的選擇進程死鎖44死鎖檢測與恢復核心思想:將系統從死鎖中解脫方法動機:與其耗費大量時間來避免死鎖的發生,不如採取有效的手段解決死鎖死鎖檢測的解決方法每個類型的資源只有一個:基於圖和集合的演算法檢測是否有閉環每個類型的資源有多個:基於矩陣和向量比較方法檢測是否存在死鎖死鎖恢復的解決方法進行資源搶佔:將某個進程的資源強制性分配給其他進程利用回退恢復:設定檢查點,發現存在死鎖情況後則回退殺死進程恢復:直接殺掉佔用資源的進程,使得其他進程得以運行;最關鍵的問題是選擇殺死哪一個進程進程死鎖45死鎖檢測演算法簡介每個類型的資源只有一個建立資源分配圖結構,記錄了所有的進程、資源和有向邊從任一結點開始進行深度優先遍曆,如找到閉環則結束如某條遍曆路徑已經到達終點,則回退至上一結點,繼續重複此過程每個類型的資源有多個建立現有資源標量、可用資源標量、當前分配矩陣、請求矩陣等數據結構對當前分配矩陣,尋找可滿足資源需求的進程,對其標記如果有進程沒有被標記,說明該進程是死鎖進程進程死鎖46死鎖預防核心思想:對進程加以限制防止死鎖發生設計思路:針對四個死鎖條件,逐一避免具體解決方法互斥條件:使用Spooling技術來管理設備(保持和等待條件:資源可用性決定資源分配不可剝奪條件:由系統直接剝奪此類資源迴圈鏈條件:資源編號,按預定規則申請進程死鎖47死鎖避免核心思想:不對進程進行限制,預防死鎖設計思路:操作系統分析資源分配情況防止死鎖核心思想安全狀態:存在某種資源調度順序,保證所有進程正常運行完成,則稱該狀態為安全狀態不安全狀態:不存在可滿足所有進程正常運行的資源調度順序,則稱該狀態為不安全狀態具體實現方法資源軌跡圖:針對兩個進程的死鎖避免銀行家演算法:單種資源和多種資源的演算法進程死鎖48使用資源軌跡圖方法避免死鎖針對兩個進程、兩種資源的死鎖避免方法條件:兩個進程A和B,兩種資源“印表機”和“繪圖儀”根據指令運行過程來判斷是否發生死鎖進程A:P點啟動,I1~I3使用印表機,I2~I4使用繪圖儀;進程B:Q點啟動,I5~I7使用繪圖儀,I6~I8使用印表機;進程死鎖49使用資源軌跡圖方法避免死鎖進程死鎖50單種資源銀行家演算法核心思想記錄每個進程的已有資源和所需最大資源數對每一個資源請求進行檢查,判斷是否會造成不安全如果不安全則不分配,從而避免死鎖方法分析對任何資源請求,都尋找是否存在安全狀態序列不抱僥倖心理,防止任何死鎖情況的發生進程死鎖51單種資源銀行家演算法進程死鎖52多種資源銀行家演算法核心思想對單種資源銀行家演算法進行擴充基於向量操作來運行銀行家演算法進程死鎖53多種資源銀行家演算法處理步驟Step1:檢查“仍需資源矩陣”中的每一行,判斷是否存在一行,其所需資源總數小於向量A(剩餘資源總數),失敗則系統死鎖。Step2:如存在此行,則將所有資源分配給該行對應向量,並將其狀態標識為結束。Step3:重複1~2步,直至所有進程狀態為結束。如果所有進程狀態均可標為結束,則狀態安全,否則會發生死鎖。進程死鎖54舉例:歷史考研題舉例北大1997年OS考研試題系統中有三種資源(A,B,C)和5個進程P1~P5資源總數為(17,5,20),T0時刻系統狀態如表所示,系統採用銀行家演算法實施死鎖避免策略進程死鎖最大資源需求量已分配資源量ABCABCP1559212P2536402P34011405P4425204P542431455舉例:歷史考研題舉例北大1997年OS考研試題請解答以下問題:(1)T0時刻是否為安全狀態?若是則給出安全序列(2)在T0時刻P2請求資源(0,3,4),是否能夠實施資源分配,為什麼?(3)在(2)的基礎上,若P4請求資源(2,0,1),是否能夠實施分配,為什麼?(4)在(3)的基礎上,若P1請求資源(0,2,0),是否能夠實施分配,為什麼?進程死鎖56內容提要
I/O設備管理概述
I/O硬體原理與軟體原理進程死鎖
I/O設備管理實例剖析內容提要57Minix中的I/O設備管理設備驅動方式(與Unix的本質區別,與Linux類似方式)每一類設備均有單獨的設備驅動程式,其中硬體無關的內容形成公共程式、硬體相關的內容作為特定驅動。以模組化組織提高系統靈活性採用進程間通信的方式完成I/O設備的使用(Minix的進程式組織結構)Unix採用過程調用的方式,用戶進程調用驅動程式,引發操作系統陷入,完成I/O操作後由中斷處理程式喚醒用戶進程設備管理方法設備驅動程式作為獨立進程存在,OS啟動時各個設備驅動進程完成基本初始化,而後等待消息(阻塞),直到用戶進程發送消息(使用I/O設備)將其喚醒與硬體相關的設備驅動部分作為過程被設備驅動程式調用,從而實現無關性封裝I/O軟體與死鎖處理Minix將所有與設備無關的I/O軟體封裝在檔系統模組中,所有的塊設備均作為一種特殊的檔用戶空間的I/O軟體主要是供用戶程式調用的函數庫Minix中對死鎖的處理採用“鴕鳥演算法”I/O管理實例58進程式OS與整體式OSI/O管理實例59Windows中的I/O設備管理I/O管理系統結構I/O管理系統是一個獨立的系統組件,存在於NTOSKRNL.exe檔中I/O管理系統由多個執行體組件和設備驅動程式組成,負責接受I/O請求,並針對性的將設備請求傳送到各類對應的設備Windows中將所有的I/O操作均看作對虛擬檔的操作,所有的I/O數據傳輸都被看作“流數據”,由I/O管理系統負責將虛擬檔映射到對應的物理設備上I/O管理系統組成I/O管理器:負責定義支撐設備驅動程式的基本架構,直接回應I/O請求設備驅動程式:負責定義並實現某一特定類型設備的I/O介面管理PnP管理器:與I/O管理器和匯流排驅動程式協同,檢測硬體資源的分配、設備的變更電源管理器:與I/O管理器協同工作來檢測整個系統和單個設備,完成電源狀態轉換WDMWMI:WDM的WMI支持例程,負責實現設備與WMI服務之間的通信註冊表:作為一個資料庫,存儲基本硬體描述資訊以及驅動程式的初始化和配置資訊硬體抽象層:將設備驅動程式實現為二進位可移植的形式,實現對硬體平臺的獨立Windows中的I/O系統數據結構檔對象、驅動程式對象、設備對象、I/O請求包I/O管理實例60Windows中I/O系統組件I/O管理實例61Windows中的I/O數據結構檔對象所有I/O設備被看作檔對象,用戶程式進行I/O操作時就像是對一個檔進行操作檔對象是可共用的、有設備無關命名的、受保護的、支持同步的結構調用與實現過程:C庫函數——Win32DLL——NTDLL.DLL——NTOSKRNL.DLL驅動程式對象與設備對象驅動程式對象代表一個獨立的驅動程式,I/O管理器從驅動程式對象中獲得並且為I/O記錄每個驅動程式的入口點設備對象在OS中代表一個物理/邏輯/虛擬的設備,並描述設備的基本特徵當驅動程式被加載時,I/O管理器將創建一個驅動程式對象,然後調用驅動程式的初始化例程,初始化例程將創建一個設備對象。設備對象接受I/O操作請求,驅動程式對象實現I/O操作請求I/O請求包由固定部分(標題)和堆疊單元(數量不定)組成,包含了I/O請求的各類資訊IRP由I/O管理器構造,保存了I/O請求的相關資訊,同時保存了調用者的相關資訊所有的IRP均保存在IRP佇列中,當用戶程式終止後,I/O系統將清除未完成的IRPI/O管理實例62I/O請求涉及到的數據結構I/O管理實例63Windows中設備驅動程式層次I/O管理實例64設備驅動程式的內容組成I/O管理實例65Windows中的I/O處理簡述設備驅動程式的同步操作驅動程式在訪問相關數據時,必須實現“同步”操作,即以互斥的形式保護各類共用數據。在單CPU的機器上,通過同步例程實現;在多CPU的機器上,通過“自旋鎖”實現I/O處理的類型同步I/O和非同步I/O:絕大部分I/O操作是以同步方式實現的。但是也可以通過設定CreatFile的參數來使用非同步I/O,非同步I/O要求用戶程式在設計和實現時必須保證不訪問來自I/O操作的數據。在非同步方式下,用戶程式通過等待同步對象來實現與非同步I/O操作的“同步”快速I/O:允許I/O系統不產生IRP而直接使用驅動程式執行I/O請求映射檔I/O和文件高速緩存映射檔I/O是將磁片中的MappingFile作為進程的虛擬記憶體一部分,直接把檔作為大的數組進行訪問Windows利用MappingFile可實現檔高速緩存和映象活動分散/集中式I/O:運行用戶程式從虛擬記憶體的多個緩衝區(映射檔)中讀寫數據到磁片檔(非高速緩存打開)的一個連續區域中。I/O管理實例66盤設備的管理描述盤的硬體組成及相關原理磁片:軟碟和硬碟,基於電磁原理存儲數據,盤面附著可磁化金屬氧化物,磁頭旋轉保持角速度一致即可只讀光碟:CD-ROM,基於光學原理,利用凹痕與
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 泰州环保球场施工方案
- 绳索操作考试题及答案
- 陕师大历史复试题及答案
- 2025年cdfi医师上岗考试试题及答案
- 5年级上册手抄报全部总结
- 登鹳雀楼吟诵符号
- arp报文发送的描述
- 【无印良品】大众推广策划案 - 副本 - 副本
- 2025年临汾职业技术学院单招职业适应性测试题库完美版
- 2025年关于党史知识竞赛培训题库及答案
- 2025年安徽机电职业技术学院单招职业适应性测试题库完美版
- 实验室在突发公共卫生事件中的作用和任务(143)-行政管理
- 电影《白日梦想家》课件
- 学生心理健康一生一策档案模板
- 2024年江苏护理职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 执业助理医师报考执业医师执业期考核证明【范本模板】
- GB/T 845-2017十字槽盘头自攻螺钉
- 部编版《道德与法治》四年级下册第5课《合理消费》精美课件(视频可直接播放)
- 山东省护理学会个人会员入会申请表
- 铜冶炼逸散含重金属烟(粉)尘治理现状及存在问题
- 铜选厂尾矿资源综合回收利用项目可行性研究报告写作范文
评论
0/150
提交评论