作業系統(I/O系統)
本部落格為本人自己總結相關知識寫的,如有雷同,純屬巧合。
I/O系統結構分類如下:
外存裝置控制器:光碟、磁帶、磁碟;
輸出裝置控制器:CRT、鐳射印表機、行式印表機、點陣印表機、色彩印表機、音箱;
過程控制器:過程控制I/O裝置;
通訊控制器:資料通訊裝置;
輸入裝置控制器:鍵盤、滑鼠器、語音輸入、光筆、掃描器、影象輸入裝置、其他。
I/O特點:1)I/O效能經常成為系統性能的瓶頸;2)作業系統龐大複雜原因之一:資源多、雜,併發,均來自I/O;3)與其他功能聯絡密切,特別是檔案系統
裝置分類:塊裝置(與資料塊為單位儲存、傳輸資訊;傳輸速率較高、可定址(隨機讀寫));字元裝置(以字元為單位儲存、傳輸資訊;傳輸速率低、不可定址);
儲存裝置舉例:磁碟、磁帶等;傳輸裝置:網絡卡,Modem等;人機互動裝置:顯示器、鍵盤、滑鼠
資源分配角度分類:
獨佔裝置:低速I/O裝置,如印表機,磁帶等;
共享裝置:如硬碟等;
虛裝置:將慢速的獨佔裝置改造成多個使用者可共享的裝置,提高裝置的利用率。SPOOLing技術
I/O管理的目標和任務:
1)按照使用者的請求,控制裝置的各種操作,完成I/O裝置與記憶體之間的資料交換,最終完成使用者的I/O請求;
2)建立方便、統一的獨立於裝置的介面;
3)充分利用各種技術(通道,中斷,緩衝,非同步I/O等)提高CPU與裝置、裝置與裝置之間的並行工作能力,充分利用資源,提高資源的利用率;
4)保護。
I/O裝置的組成:機械和電子兩部分。
裝置結構——控制器作用:
作業系統將命令寫入控制器的結構暫存器(或介面緩衝區)中,以實現輸入/輸出,並從介面暫存器讀取狀態資訊或結果資訊。
控制器的任務:把序列的位流轉換為位元組塊,並進行必要的錯誤修正:首先,控制器按位進行組裝,然後存入控制器內部的緩衝區中形成以位元組為單位的塊;在對塊驗證檢查和並證明無錯誤時,再將它複製到記憶體中。
I/O指令形式與I/O地址是相互關聯的,主要形式:記憶體映像編址(記憶體映像I/O模式);I/O獨立編址(I/O專用指令)
I/O獨立編址指分配給系統中所有埠的地址空間完全獨立,與記憶體地址空間無關;使用專門的I/O指令對埠進行操作。優點:外設不佔用記憶體的地址空間,程式設計時,易於區分是對記憶體操作還是對I/O埠操作。缺點:I/O端操作的指令型別少,操作不靈活。
記憶體映像I/O模式指分配給系統中所有埠的地址空間與記憶體的地址空間同一編址;把I/O埠看作一個儲存單元,對I/O的讀寫操作等同於對記憶體的操作。優點:凡是可對記憶體操作的指令都可對I/O埠操作;不需專門的I/O指令;I/O埠可佔有較大的地址空間。缺點:佔用記憶體空間。
記憶體對映I/O的優點:1)不需要特殊的保護機制來阻止使用者程序執行I/O操作;可以引用記憶體的每一條指令也可以引用控制暫存器。
記憶體對映I/O的缺點:1)對一個裝置控制暫存器不能進行快取記憶體;2)硬體和作業系統需要控制快取記憶體。
I/O控制方式:1)可程式設計I/O(輪詢/查詢);2)中斷驅動I/O;3)DMA
I/O演化:
1)CPU直接控制外圍裝置;
2)增加了控制器或I/O部件,CPU使用非中斷的可程式設計I/O;
3)增加控制器或I/O部件,CPU使用中斷的可程式設計I/O;
4)I/O部件通過DMA直接控制儲存器;
5)I/O部件增強為一個單獨的處理器,有專門為I/O設計的指令集;CPU指導I/O處理器執行記憶體中的一個I/O程式。
6)I/O部件有自己的區域性儲存器(其本身就是一臺計算機)。
I/O軟體設計
分層的設計思想
1)把I/O軟體組織成多個層次;2)每一層都執行作業系統所需要的功能的一個相關子集,它依賴於更低一層所執行的更原始的功能,從而可以隱藏這些功能的細節;同時,它又給高一層提供服務;3)較低層考慮硬體的特性,並向較高層軟體提供介面;4)較高層不依賴於硬體,並向用戶提供一個友好的、清晰的、簡單的、功能更強的介面。
I/O軟甲層次:使用者級I/O軟體;與裝置無關的OS軟體;裝置驅動程式;中斷處理程式;硬體;驅動程式的統一介面;緩衝;錯誤報告;分配與釋放裝置;提供與裝置無關的塊大小。
裝置獨立性:從使用者角度(使用者在編制程式時,使用邏輯裝置名,由系統實現從邏輯裝置到物理裝置(實際裝置)的轉換,並實施I/O操作);從系統角度(設計並實現I/O軟體時,處理直接與裝置打交道的底層軟體之外,其他部分的軟體不依賴與硬體)。
緩衝技術解決問題如下:1)解決CPU與I/O裝置之間速度的不匹配問題;2)提高CPU與I/O裝置之間的並行性;3)減少了I/O裝置對CPU的中斷請求次數,放寬CPU對中斷響應時間的要求。
緩衝區分類:硬緩衝和軟緩衝
緩衝區管理:單緩衝、雙緩衝和緩衝池。
採用緩衝池技術,可平滑和加快資訊在記憶體和磁碟之間的傳輸。緩衝區結合提前讀和延遲寫技術,對具有重複性及陣發性I/O程序、提高I/O速度很有幫助。可以充分利用之前從磁碟讀入、雖已傳入使用者區,但仍在緩衝區的資料(儘可能減少磁碟I/O的次數,提高系統執行的速度)。
裝置管理有關的資料結構
1)描述裝置、控制器等部件的表格;
2)建立同類資源的佇列;
3)面向程序I/O請求的動態資料結構;
4)建立I/O佇列。
裝置分配:
靜態分配(在程序執行前,完成裝置分配,執行結束時,收回裝置,裝置利用率低);
動態分配(在程序執行過程中,當用戶提出裝置要求時,進行分配,一旦停止使用立即收回,效率好,缺點是分配策略不好,產生死鎖)
分時式共享指以一次I/O為單位分時使用裝置,不同程序的I/O操作請求以排隊方式佔用裝置進行I/O。
提高CPU使用效能:應使CPU利用率儘可能不被I/O降低;使CPU儘可能擺脫I/O。
減少或緩解速度差距:緩衝技術;
使CPU不等待I/O:非同步I/O;
讓CPU擺脫I/O操作:DMA、通道;
Windows提供同步和非同步兩種模式的I/O操作。非同步模式:用於優化應用程式的效能;同步I/O:應用程式被阻塞直到I/O操作完成。