輸入輸出設備管理.ppt
《輸入輸出設備管理.ppt》由會員分享,可在線閱讀,更多相關《輸入輸出設備管理.ppt(73頁珍藏版)》請在裝配圖網上搜索。
計算機操作系統(tǒng)主講 四川大學計算機學院杜忠軍 第八章設備管理 DevicesManagement 教學目的 設備管理不但要管理實際I O操作的設備 如磁盤機 打印機 還要管理諸如設備控制器 DMA控制器 中斷控制器 I O處理機 通道 等支持設備 設備管理包括各種設備分配 緩沖區(qū)管理和實際物理I O設備操作 通過管理達到提高設備利用率和方便用戶 教學要求 了解設備的分類 熟悉設備管理的目標和功能 熟悉程序I O方式 中斷方式 DMA方式和通道方式四種I O的控制方式 掌握通道的概念 熟悉通道類型 熟悉緩沖的概念 熟悉單緩沖 雙緩沖和多緩沖和緩沖池工作原理 了解在進行設備分配時應考慮的設備的固有屬性 設備的分配算法 設備分配的安全性和設備的獨立性等因素 掌握設備分配中數據結構 熟悉設備分配的流程 掌握SPOOLing技術概念和SPOOLing系統(tǒng)的組成 熟悉設備處理程序的功能和處理方式 熟悉設備處理程序的處理過程 本章的主要內容如下 輸入 輸出系統(tǒng)設備控制器輸入 輸出控制方式緩沖管理輸入 輸出軟件設備分配與回收 8 1輸入輸出系統(tǒng) 8 1 1I O系統(tǒng)1 大型機通道系統(tǒng) 圖8 1大型計算機組織結構 圖8 2通過網絡共享系統(tǒng)之間的設備 8 1 1I O系統(tǒng) 1 2 小型計算機和微型計算機總線系統(tǒng) 圖8 3小型機總線的組織結構 8 1 1I O系統(tǒng) 2 1984年推出的工業(yè)標準結構ISA IndustryStandardArchitecture 總線 其帶寬為2Mb s 適用于處理器為80286的計算機 1988年推出的擴展工業(yè)標準結構EISA ExpansionIndustryStandardArchitecture 總線 帶寬可以達到32Mb s 適用于處理器為80386類的計算機 1990年 為了適應多媒體 高質量圖形處理技術和網絡應用 推出了適合處理器為80486類計算機的VESA VideoElectronicStandardAssociation 總線 帶寬增加到132Mb s 1992年 隨著Pentium系列CPU的出現 單總線結構已經不能滿足系統(tǒng)性能要求 推出了的具有全局總線和局部總線的PCI總線 如圖8 4所示 8 1 1I O系統(tǒng) 3 圖8 4通用計算機組織結構 8 1 2設備分類 I O設備的種類繁多 從OS觀點來看 其重要的性能指標有 數據傳輸速率 數據的傳輸單位 設備的共享屬性等 1 按傳輸速率分類低速設備 指傳輸速率為每秒鐘幾個字節(jié)到數百個字節(jié)的設備 典型的設備有鍵盤 鼠標 語音的輸入等 中速設備 指傳輸速率在每秒鐘數千個字節(jié)至數十千個字節(jié)的設備 典型的設備有行式打印機 激光打印機等 高速設備 指傳輸速率在數百千個字節(jié)至數兆字節(jié)的設備 典型的設備有磁帶機 磁盤機 光盤機等 8 1 2設備分類 1 2 按信息交換的單位分類塊設備 BlockDevice 指以數據塊為單位來組織和傳送數據信息的設備 這類設備用于存儲信息 有磁盤和磁帶等 它屬于有結構設備 典型的塊設備是磁盤 每個盤塊的大小為512B 4KB 磁盤設備的基本特征是 傳輸速率較高 通常每秒鐘為幾兆位 它是可尋址的 即可隨機地讀 寫任意一塊 磁盤設備的I O采用DMA方式 字符設備 CharacterDevice 指以單個字符為單位來傳送數據信息的設備 這類設備一般用于數據的輸入和輸出 有交互式終端 打印機等 它屬于無結構設備 字符設備的基本特征是 傳輸速率較低 不可尋址 即不能指定輸入時的源地址或輸出時的目標地址 字符設備的I O常采用中斷驅動方式 8 1 2設備分類 2 3 按資源分配的角度分類獨占設備 指在一段時間內只允許一個用戶 進程 訪問的設備 大多數低速的I O設備 如用戶終端 打印機等屬于這類設備 因為獨占設備屬于臨界資源 所以多個并發(fā)進程必須互斥地進行訪問 共享設備 指在一段時間內允許多個進程同時訪問的設備 顯然 共享設備必須是可尋址的和可隨機訪問的設備 典型的共享設備是磁盤 共享設備不僅可以獲得良好的設備利用率 而且是實現文件系統(tǒng)和數據庫系統(tǒng)的物質基礎 虛擬設備 指通過虛擬技術將一臺獨占設備變換為若干臺供多個用戶 進程 共享的邏輯設備 一般可以利用假脫機技術 SPOOLing技術 實現虛擬設備 8 1 3設備管理的目標和功能 1 設備管理的目標提高設備的利用率 為此 應盡量提高CPU與I O設備之間的并行操作程度 主要利用的技術有 中斷技術 DMA技術 通道技術 緩沖技術 為用戶提供方便 統(tǒng)一的界面 所謂方便 是指用戶能獨立于具體設備的復雜物理特性之外而方便地使用設備 所謂統(tǒng)一 是指對不同的設備盡量使用統(tǒng)一的操作方式 例如各種字符設備用一種I O操作方式 這就要求用戶操作的是簡便的邏輯設備 而具體的I O物理設備由操作系統(tǒng)去實現 這種性能常常被稱為設備的獨立性 8 1 3設備管理的目標和功能 1 2 設備管理功能設備分配 指設備管理程序按照一定的算法把某一個I O設備 及其相應的設備控制器和通道分配給某一用戶 進程 對于未分配到的進程 則插入等待隊列中 緩沖區(qū)管理 為了解決CPU與I O之間速度不匹配的矛盾 在它們之間配置了緩沖區(qū) 這樣設備管理程序又要負責管理緩沖區(qū)的建立 分配和釋放 實現物理I O設備的操作 對于具有通道的系統(tǒng) 設備管理程序根據用戶提出的I O請求 生成相應的通道程序并提交給通道 然后用專門的通道指令啟動通道 對指定的設備進行I O操作 并能響應通道的中斷請求 對于未設置通道的系統(tǒng) 設備管理程序直接驅動設備進行I O操作 8 1 3設備管理的目標和功能 2 虛擬設備 通過SPOOLing技術將獨占設備改造成多個邏輯設備 可以實現對獨占設備的共享 8 2設備控制器 為了便于設計和計算機實現 通常將輸入 輸出設備分為機械部分和電子部分 機械部分為通常意義上的輸入 輸出設備本身的硬件組成和結構 如打印機 掃描儀等 電子部分為設備控制器 也稱為適配器 輸入 輸出設備通過設備控制器進入計算機系統(tǒng) 操作系統(tǒng)通過設備控制器管理設備 8 2 1設備控制器及其主要功能 接收和識別處理器命令 設備控制器具有命令寄存器和譯碼器 將處理器的命令接收到命令寄存器中并對命令進行譯碼 設備控制 根據接收和譯碼后的處理器命令對設備采取相應的控制 數據交換 實現處理器與設備控制器之間 設備控制器與設備之間的數據交換 識別設備地址 系統(tǒng)中的每一個設備都有一個地址 設備控制器能夠識別所控制設備的地址 了解和報告設備的狀態(tài) 設備控制器中的控制 狀態(tài)寄存器能夠存儲接收到的設備狀態(tài)信息 并將信息上傳給處理器 8 2 2設備控制器的組成 圖8 5設備控制器組成 設備控制器實現了處理器與設備之間的數據 控制和地址信息等信息的傳輸 設備控制器的組成如圖8 5所示 設備控制器由控制 狀態(tài)寄存器 數據寄存器 與處理機接口 與設備接口等構成 8 2 2設備控制器的組成 1 一個設備控制器接口連接一臺設備 一臺設備控制器有多個接口 可以連接多個設備 在設備控制器與設備的接口中存在數據 控制和狀態(tài)三種類型的信號 設備控制器與設備之間的接口通常是低級的字符接口 設備控制器將字符數據封裝成數據塊 以更大的數據格式傳送到計算機的內存 在編址方式上存在有內存映像編址和輸入 輸出獨立編址兩種形式 控制器端口和內存進行統(tǒng)一地編址 主機把輸入 輸出端口看作一個存儲單元 對輸入 輸出設備的讀寫操作等同于對存儲器的操作 優(yōu)點是不需要專門的輸入 輸出指令 缺點是對輸入 輸出端口操作的指令需要占用內存空間 控制器端口獨立分配地址空間 與內存的地址空間沒有關系 主機使用專門的輸入 輸出指令對端口進行操作 獨立編址的優(yōu)點是外部設備不占用內存的地址空間 缺點是對輸入 輸出端口操作的指令類型少 操作不靈活 Intel8086 8088 分配給輸入 輸出端口的地址空間為64K 即 0000H 0FFFFH 只能用IN和OUT指令對其進行讀寫操作 8 3I O控制方式 隨著計算機技術的發(fā)展 I O的控制方式也在不斷地發(fā)展 一般可分為 程序I O方式 中斷方式 DMA方式和通道方式 I O的控制方式發(fā)展的目標是盡量減少主機對I O控制的干預 8 3 1程序輪詢方式在早期的計算機系統(tǒng)中 由于沒有中斷機構 處理機對I O設備直接進行控制 采取程序輪詢I O ProgrammedI O 方式或稱為忙 等待方式 即在CPU向設備控制器發(fā)出一條I O指令啟動I O設備進行數據傳輸時 要同時把狀態(tài)寄存器中的忙 閑標志busy置為1 然后便不斷地循環(huán)測試busy 當busy l時 表示該I O設備尚未輸入完一個字 符 CPU應繼續(xù)對該標志進行測試 直至busy 0 表示該I O設備已將輸入數據送入到I O控制器的數據寄存器中 于是CPU將從數據寄存器中取出數據 送入內存的指定單元 接著 再啟動去讀下一個數據 并置busy l 8 3 1程序輪詢方式 1 8 3 1程序輪詢方式 2 在程序I O方式中 由于CPU的速度遠遠高于I O設備 導致CPU的絕大部分時間都處于等待I O設備完成而循環(huán)測試之中 造成了CPU的極大浪費 但是它管理簡單 在要求不高的場合可以被采用 8 3 2中斷控制 Interrupt drivenI O 方式在現代計算機系統(tǒng)中 對I O設備的控制 廣泛地采用中斷驅動方式 即當某進程要啟動某個I O設備時 便由CPU向相應的設備控制器發(fā)出一條I O命令 然后立即返回繼續(xù)執(zhí)行原來的任務 設備控制器便按照該命令的要求去控制I O設備 此時 CPU與I O設備處于并行工作狀態(tài) 例如 在輸入時 當設備控制器收到CPU發(fā)來的讀命令后 便準備接收從相應輸入設備送來的數據 一旦數據進入數據寄存器 控制器便通過控制線向CPU發(fā)送一中斷信號 由CPU檢查輸入過程中是否出錯 若無錯 便向控制器發(fā)取走數據的信號 然后便通過控制器將數據寫入指定內存單元 8 3 2中斷控制 Interrupt drivenI O 方式 1 8 3 2中斷控制 Interrupt drivenI O 方式 2 圖8 6個人計算機的部分設備控制器信息 8 3 2中斷控制 Interrupt drivenI O 方式 3 所以 中斷驅動方式在I O設備輸入數據的過程中 無需CPU干預 可以使CPU與I O設備并行工作 僅當輸完一個數據時 才需CPU花費極短的時間去進行中斷處理 從而大大地提高了整個系統(tǒng)的資源利用率及吞吐量 特別是CPU的利用率 8 3 3DMA DirectMemoryAccess 控制方式中斷驅動I O方式雖然大大提高了主機的利用率 但是它以字 節(jié) 為單位進行數據傳送 每完成一個字 節(jié) 的傳送 控制器便要向CPU請求一次中斷 做保存現場信息 恢復現場等工作 仍然占用了CPU的許多時間 這種方式對于高速的塊設備的I O控制顯然是不適合 為了進一步減少CPU對I O的干預 引入了直接存儲器訪問 DirectMemoryAccess 控制方式 該方式的特點是 1 它作為高速的外圍設備與內存之間成批的數據交換 但是不對數據再做加工處理 數據傳輸的基本單位是數據塊 I O操作的類型比較簡單 8 3 3DMA控制方式 1 2 它需要使用一個專門的DMA控制器 DMAC DMAC中有控制 狀態(tài)寄存器 傳送字節(jié)計數器 內存地址寄存器和數據緩沖寄存器 3 它采用盜竊總線控制權的方法 由DMAC送出內存地址和發(fā)出內存讀 設備寫或設備讀 內存寫的控制信號來完成內存與設備之間的直接數據傳送 而不用CPU的干預 有的DMA傳送甚至不經過DMAC的數據緩沖寄存器的再吞吐 傳輸速率非常高 4 僅在傳送一個或多個數據塊的開始和結束時 才需CPU干預 整塊數據的傳送是在控制器的控制下完成的 可見 DMA方式較之中斷驅動方式 又是成百倍地減少了CPU對I O控制的干預 進一步提高了CPU與I O設備的并行操作程度 8 3 3DMA控制方式 2 圖8 7DMA方式 8 3 3DMA控制方式 3 圖8 8DMA控制器組成 DMA控制器由內存地址寄存器 MAR 數據寄存器 DR 命令 狀態(tài)寄存器 CR 數據計數器 DC 以及中斷和控制邏輯等構成 如圖8 8所示 8 3 4I O通道控制方式 1 I O通道控制方式的引入雖然DMA方式比中斷驅動方式已顯著地減少了CPU的干預 即由以字 節(jié) 為單位的干預減少到以數據塊為單位的干預 但是CPU每發(fā)出一條I O指令 也只能去讀 或寫 一個連續(xù)的數據塊 而當我們需要一次去讀多個離散的數據塊且將它們分別傳送到不同的內存區(qū)域 或者相反時 則需由CPU分別發(fā)出多條I O指令及進行多次中斷處理 才能完成 由于DMA每次只能執(zhí)行一條I O指令 不能滿足復雜的I O操作要求 在大 中型計算機系統(tǒng)中 普遍采用由專用的I O處理機來接受CPU的委托 獨立執(zhí)行自己的通道程序來實現I O設備與內存之間的信息交換 這就是通道技術 通道技術可以進一步減少CPU的干預 即把對一個數據塊為單位的讀 或寫 的干預 減少到對一組數據塊為單位的讀 或寫 的有關的控制和管理的干預 這樣可實現CPU 通道和I O設備三者之間的并行工作 從而更有效地提高了整個系統(tǒng)的資源利用率和運行速度 8 3 4I O通道控制方式 1 2 通道程序通道是通過執(zhí)行通道程序 并與設備控制器來共同實現對I O設備的控制 通道程序是由一系列的通道指令 或稱為通道命令 所構成 通道指令與一般的機器指令不同 在每條指令中包含的信息較多 有操作碼 內存地址 計數 讀或寫數據的字節(jié)數 通道程序結束位P和記錄結束標志R 3 通道類型由于外圍設備的種類較多 且其傳輸速率相差很大 所以通道也具有多種類型 根據信息交換方式 可以把通道分成以下三種類型 字節(jié)多路通道 ByteMultiplexorChannel 在這種通道中 通常都含有較多個 8 16 32 非分配型子通道 每一個子通道連接一臺I O設備 這些子通道按時間片輪轉方式共享主通道 一個子通道完成一個字節(jié)的傳送后 立即讓出字節(jié)多路通道 主通道 給另一個子通道使用 它適用于連接低速或中速設備 如打印機 終端等 8 3 4I O通道控制方式 2 圖8 9字節(jié)多路通道 8 3 4I O通道控制方式 3 數組選擇通道 BlockSelectorChannel 這種通道雖然可以連接多臺I O設備 但是它只有一個分配型子通道 在一段時間內只能執(zhí)行一道通道程序 控制一臺設備進行數據傳送 其數據傳送是按數組方式進行 即當某臺設備一旦占用了該通道 就被它獨占 直至該設備傳送完畢釋放該通道為止 可見 它適于連接高速設備 如磁盤機 磁帶機 但是這種通道的利用率較低 圖8 10數組選擇通道 8 3 4I O通道控制方式 4 數組多路通道 BlockMultiplexorChannel 數組選擇通道雖然有很高的傳輸速率 但它每次只允許一個設備傳輸數據 數組多路通道是將數組選擇通道的傳輸速率高和字節(jié)多路通道的分時并行操作的優(yōu)點結合起來 形成的一種新的通道 它含有多個非分配型子通道 可以連接多臺高 中速的外圍設備 其數據傳送卻是按數組方式進行 所以這種通道既具有很高的數據傳輸速率 又能獲得令人滿意的通道利用率 圖8 11數組多路通道 8 3 4I O通道控制方式 5 3 通道的工作過程通道中的運算控制部件有 用于記錄通道程序在內存地址的通道地址字CAW 用于保存正在執(zhí)行的通道指令的通道命令字CCW 用于存放通道執(zhí)行后返回結果的通道狀態(tài)字CSW 用于存放傳輸數據的通道數據字CDW 通道有專門的通道指令 這些指令可以完成空操作 讀操作 寫操作 控制 轉移操作 用這些指令可以編寫通道程序 并在通道中執(zhí)行程序 命令格式一般包括操作碼 數據傳輸內存地址 特征位 計數器 通道輸入 輸出的工作過程如下 1 當處理器執(zhí)行用戶程序中遇到輸入 輸出請求時 根據請求生成通道程序放入內存 也可事先編好放入內存 并將該通道程序的首地址放入通道的CAW中 2 處理器執(zhí)行 啟動輸入 輸出 指令 并啟動通道工作 當通道接收到 啟動輸入 輸出 指令后 從通道的CAW中取出通道程序的首地址 根據首地址取出第一條指令放入通道的CCW中 并向處理器發(fā)應答信號 此時處理器可繼續(xù)執(zhí)行其他程序 而通道則開始執(zhí)行通道程序 8 3 4I O通道控制方式 6 3 通道程序完成輸入 輸出 啟動輸入 輸出設備 執(zhí)行完成 4 如果還有下一條指令 則繼續(xù)執(zhí)行 否則輸入 輸出完成 5 當通道傳輸完最后一條指令時 向處理器發(fā)輸入 輸出中斷 通道停止工作 6 處理器接收中斷信號 從通道的CSW中取得有關信息 決定下一步做什么 4 具有通道的計算機系統(tǒng)在計算機系統(tǒng)中 一個處理器可以連接若干個通道 一個通道可以連接若干個設備控制器 一個設備控制器可以連接若干個設備 處理器通過執(zhí)行輸入 輸出指令實現對通道的控制 通道通過執(zhí)行通道指令實現對設備控制器的控制 設備控制器發(fā)出讀寫和管理操作實施對設備的控制和完成輸入 輸出 8 3 4I O通道控制方式 7 在一般的主機系統(tǒng)中 單通道輸入 輸出的可靠性不高 為了增加系統(tǒng)的可靠性 可采用多通道 并在通道和設備控制器之間采用交叉連接 如圖8 12所示 圖8 12交叉連接的系統(tǒng) 8 3 4I O通道控制方式 8 IBM390計算機系統(tǒng)的輸入 輸出系統(tǒng)采用的是通道子系統(tǒng) 如圖8 13所示 通道路徑可以分為并行通道路徑和串行通道路徑 右邊部分為串行通道路徑 左邊部分則為并發(fā)通道路徑 分別連接不同速度的輸入 輸出設備 圖8 13IBM390系統(tǒng) 8 4緩沖 Buffering 技術 目前為了解決CPU與I O設備間速度不匹配的矛盾 提高的I O速度和設備利用率 在所有的I O設備與處理機 內存 之間 都使用了緩沖區(qū)來交換數據 所以OS必須組織和管理好這些緩沖區(qū) 8 4 1緩沖的引入1 改善CPU與I O設備間速度不匹配的矛盾例如一個程序 它時而進行長時間的計算而沒有輸出 時而又陣發(fā)性把輸出送到打印機 由于打印機的速度跟不上CPU 而使得CPU長時間的等待 如果設置了緩沖區(qū) 程序輸出的數據先送到緩沖區(qū)暫存 然后由打印機慢慢地輸出 這時 CPU不必等待 可以繼續(xù)執(zhí)行程序 實現了CPU與I O設備之間的并行工作 事實上 凡在數據的到達速率與其離去速率不同的地方 都可設置緩沖 以緩和它們之間速度不匹配的矛盾 眾所周知 通常的程序都是時而計算 時而輸出的 8 4 1緩沖的引入 1 2 可以減少對CPU的中斷頻率 放寬對中斷響應時間的限制如果I O操作每傳送一個字節(jié)就要產生一次中斷 那么設置了n個字節(jié)的緩沖區(qū)后 則可以等到緩沖區(qū)滿才產生中斷 這樣中斷次數就減少到1 n 而且中斷響應的時間也可以相應的放寬 3 提高CPU和I O設備之間的并行性緩沖的引入可顯著提高CPU和設備的并行操作程度 提高系統(tǒng)的吞吐量和設備的利用率 8 4 2單緩沖 SingleBuffer 每當一個用戶進程發(fā)出一個I O請求時 OS便在主存中為之分配一個緩沖區(qū) 例如 CPU要從磁盤上讀一塊數據進行計算 先從磁盤把一塊數據讀入到緩沖區(qū)中 然后由OS將緩沖區(qū)的數據傳送到用戶區(qū) 最后由CPU對這一塊數據進行計算 可見第一步和最后一步是可以并行執(zhí)行的 這樣就提高了CPU和外設的利用率 但是對緩沖區(qū)中數據的輸入和提取是串行工作的 如下圖所示 操作系統(tǒng)用戶進程輸入傳送I O設備 8 4 2單緩沖 SingleBuffer 1 平均每批數據的處理 輸入 傳輸 計算 時間 max 輸入時間 計算時間 傳輸時間 8 4 3雙緩沖 DoubleBuffer 雙緩沖工作方式基本方法是在設備輸入時 先將數據輸入到緩沖區(qū)A 裝滿后便轉向緩沖區(qū)B 此時OS可以從緩沖區(qū)A中提取數據傳送到用戶區(qū) 最后由CPU對數據進行計算 如下圖所示 操作系統(tǒng)用戶進程C輸入T傳送MI O設備 平均每批數據的處理 輸入 傳輸 計算 時間 max 輸入時間 計算時間 傳輸時間 A輸入 傳輸 計算 B輸入 8 4 4多緩沖 CircularBuffer 雙緩沖可以實現對緩沖區(qū)中數據的輸入和提取 與CPU的計算 三者并行工作 所以雙緩沖進一步加快了I O的速度 提高了設備的利用率 當對緩沖區(qū)中數據的輸入和提取的速度基本相匹配時 采用雙緩沖可使兩者并行工作 獲得較好的效果 但是如果兩者的速度相差甚遠時 雙緩沖的效果就不夠理想了 如果增加緩沖區(qū)的個數 情況就會有所改善 8 4 4多緩沖 CircularBuffer 1 我們可以將多個緩沖區(qū)組織成循環(huán)隊列的形式 如下圖所示 例如對于用作輸入的循環(huán)緩沖區(qū) 通常提供給輸入進程和計算進程使用 輸入進程不斷向空緩沖區(qū)中輸入數據 計算進程則從滿緩沖區(qū)中提取數據用于計算 操作系統(tǒng)用戶進程輸入傳送I O設備 8 4 4多緩沖 CircularBuffer 2 循環(huán)緩沖的組織 1空 2空 3空 4滿 5滿 6滿 空緩沖隊列頭指針E 有數據緩沖隊列頭指針F 8 4 4多緩沖 CircularBuffer 3 進程同步 1 無空緩沖 E 1 F 輸入進程阻塞 計算進程在消耗一個緩沖后喚醒它 2 無數據 E F 計算進程阻塞 輸入進程在裝滿一個緩沖后喚醒它 緩沖使用設置兩個過程 1 GetDatabuf 取有數據的緩沖 在取之前要檢查有無數據 見進程同步 F F 1 modN 2 GetEmptybuf 取空緩沖 在取之前要檢查有無空緩沖 見進程同步 E E 1 modN 8 4 5緩沖池 當系統(tǒng)配置較多的設備時 使用專用緩沖區(qū)就要消耗大量的內存空間 且其利用率不高 為了提高緩沖區(qū)的利用率 目前廣泛使用公用緩沖池 池中的緩沖區(qū)可供多個進程共享 對于同時用于輸入 輸出的公用緩沖池 至少含有三種類型的緩沖區(qū) 空緩沖區(qū) 裝滿輸入數據的緩沖區(qū)和裝滿輸出數據的緩沖區(qū) 為了管理上的方便 可將相同類型的緩沖區(qū)鏈成一個隊列 于是就形成三個隊列 空緩沖區(qū)隊列 輸入緩沖區(qū)隊列和輸出緩沖區(qū)隊列 另外還應具有四種工作緩沖區(qū) 用于收容輸入數據的工作緩沖區(qū) hin 用于提取輸入數據的工作緩沖區(qū) sin 用于收容輸出數據的工作緩沖區(qū) hout 用于提取輸出數據的工作緩沖區(qū) sout 可見 緩沖區(qū)工作在收容輸入 提取輸入 收容輸出和提取輸出四種工作方式下 如下圖5所示 申請和歸還緩沖區(qū) 1 getbuf type 2 putbuf type bufnum beginbeginP RS type P MS type P MS type addbuf type bufnum takebuf type V MS type V MS type V RS type endend 8 4 5緩沖池 1 其中 RS type 是為每種緩沖隊列設置的同步信號量 MS type 是為每種緩沖隊列設置的互斥信號量 8 5輸入 輸出軟件 I O軟件的分層 輸入 輸出軟件是實現輸入 輸出管理的軟件部分 輸入 輸出軟件設計目標是改善輸入 輸出設備的效率 實現統(tǒng)一標準的輸入 輸出設備管理方式 目前 輸入 輸出軟件設計最常用的方法是分層設計 分為四層 如下圖所示 8 5 1中斷處理程序 在設備控制器控制下 I O設備完成了I O操作后 控制器 或通道 便向CPU發(fā)出一中斷請求 CPU響應后便轉向中斷處理程序 中斷處理程序大致包含以下幾步 當中斷處理程序開始執(zhí)行時 都必須去喚醒阻塞的驅動 程序 進程 在采用信號量機制時 可通過執(zhí)行V操作 將處于阻塞狀態(tài)的驅動 程序 進程喚醒 保護被中斷進程的CPU現場 分析中斷原因 轉入相應的設備中斷處理程序 進程中斷處理 判別此次I O完成是正常結束中斷還是異常結束中斷 分別作相應處理 恢復被中斷進程或由調度程序選中的進程的CPU的現場 返回被中斷的進程 或進入新選中的進程繼續(xù)運行 在UNIX中將以上對各類設備處理相同的部分集中起來 形成中斷總控程序 每當要進行中斷處理時 都要首先進入中斷總控程序 再按需要轉入不同的設備處理程序 8 5 2設備驅動程序 設備驅動程序通常又稱為設備處理程序 它是輸入 輸出進程與設備控制器之間的通信程序 簡稱為設備驅動進程 它的主要任務是接收上層軟件發(fā)來的抽象要求并將設備控制器發(fā)來的信號傳送給上層軟件 1 設備驅動程序的功能設備驅動程序包括所有與設備相關的代碼 因此 每個設備都有自己專用的驅動程序 設備驅動程序的主要功能如下 將上層軟件傳送來的用戶作業(yè)的邏輯輸入 輸出請求轉換為設備的具體要求 驗證用戶作業(yè)輸入 輸出請求的合法性 了解輸入 輸出設備的狀態(tài) 傳遞有關參數 設置設備的工作方式 發(fā)出輸入 輸出命令 啟動分配的輸入 輸出設備工作 執(zhí)行指定的輸入 輸出操作 8 5 2設備驅動程序 1 及時響應設備控制器或通道發(fā)來的中斷請求 根據中斷類型調用相應的中斷處理程序進行處理 如果計算機系統(tǒng)設置有通道 設備驅動程序還應能夠根據用戶作業(yè)的輸入 輸出請求 自動地構成通道程序 設備出錯處理2 設備驅動程序的特點 設備驅動程序是請求輸入 輸出的進程與設備控制器之間的一個通信程序 它將進程的輸入 輸出請求傳送給設備控制器 把設備控制器中所記錄的設備狀態(tài) 輸入 輸出操作完成情況傳送給請求輸入 輸出的進程 設備驅動程序與輸入 輸出控制方式緊密相關 常用的設備控制方式是中斷和DMA方式 設備驅動程序針對一類具體的設備工作 與設備硬件緊密相關 通常情況下 設備驅動程序需要用匯編語言書寫 目前有很多驅動程序的基本部分已經固化在ROM中 8 5 2設備驅動程序 2 3 設備驅動程序的處理過程將用戶和上層軟件對設備控制的抽象要求轉換成對設備的具體要求 如對抽象要求的盤塊號轉換為磁盤的盤面 磁道及扇區(qū) 檢查I O請求的合理性 讀出和檢查設備的狀態(tài) 確保設備處于就緒態(tài) 傳送必要的參數 如傳送的字節(jié)數 數據在主存的首址等 工作方式的設置 啟動I O設備 并檢查啟動是否成功 如成功則將控制返回給I O控制系統(tǒng) 在I O設備忙于傳送數據時 該用戶進程把自己阻塞 直至中斷到來才將它喚醒 而CPU可干別的事 8 5 2設備驅動程序 3 4 設備出錯處理設備出錯處理由設備驅動程序完成 在設備使用上 大多數的設備出錯情況 只有驅動程序知道該如何處理 一般來講 設備驅動程序會根據使用出錯的情況不同 采用不同的處理方法 如果發(fā)生的錯誤很小 不影響設備的正常使用 設備驅動程序會忽略錯誤 如果發(fā)生的錯誤不能忽略 則設備驅動程序會采取重試的方法或報警的方法 如何報警 如何處理錯誤則與操作系統(tǒng)無關 可能需要人工解決 例如 使用打印機時出錯 打印機驅動程序通過系統(tǒng)通知用戶重試確認 如果打印機缺紙出錯 打印機驅動程序通過系統(tǒng)通知用戶處理 處理好后可繼續(xù)運行 使用磁盤時由于位示圖等關鍵信息出錯 則磁盤驅動程序通過系統(tǒng)打印出錯誤信息并終止執(zhí)行 驅動程序自身不能處理 8 5 3與設備無關的操作系統(tǒng)軟件 1 設備無關的軟件定義設備驅動程序與設備之間存在著緊密關系 即設備驅動程序不能獨立于設備 而最上層的用戶級輸入 輸出軟件卻要求用戶程序對設備的使用獨立于具體使用的物理設備 實現設備獨立性 因此 在設備驅動程序與用戶級輸入 輸出軟件之間需要再加上一層軟件 這層軟件是與設備無關的軟件 也稱為設備獨立性軟件 2 設備的邏輯名與物理名之間的映射正如用戶程序中要使用邏輯地址而不使用物理地址一樣 在用戶程序中使用設備的邏輯名而不使用設備的物理名 設備的邏輯名是系統(tǒng)中預先設計的統(tǒng)一名稱 不依賴于設備 可以是一個簡單的字符串或一個整數 應用在與設備有關的所有軟件模塊中 設備的物理名是系統(tǒng)提供的標準名稱 是永久的 不可改變的 設備驅動程序需要將設備的邏輯名映射為物理名 并按照設備的邏輯名進行設備的分配和回收 8 5 3與設備無關的操作系統(tǒng)軟件 1 邏輯設備表 logicalunittable 實現了設備的邏輯名到物理名的映射 對于單用戶單進程系統(tǒng) 整個系統(tǒng)設置一個邏輯設備表 由于系統(tǒng)中所有進程的設備分配情況都記錄在同一表中 不允許具有相同的邏輯設備名 對于多用戶多進程系統(tǒng) 系統(tǒng)為每個用戶設置一個邏輯設備表 每當用戶登錄時 便為用戶建立一個進程 同時也為之建立一個邏輯設備表 并將該表放入進程的進程控制塊中 只需要查詢進程控制塊即可實現邏輯名到物理名的映射 在邏輯設備表中包含有邏輯設備名 物理設備名和設備驅動程序的入口地址等信息 當進程用邏輯設備名來請求分配輸入 輸出設備時 系統(tǒng)為它分配相應的物理設備 并在邏輯設備表上建立一個表目 寫上應用程序中使用的邏輯設備名和系統(tǒng)分配的物理設備名 以及該設備的驅動程序入口地址 一個用戶程序在使用磁盤 打印機等設備時 無需因為每一種設備類型的變化而修改程序 操作系統(tǒng)可以根據當時設備的配置情況自由分配適當類型的設備 一臺設備不能提供使用 可以用相同種類的設備來提供 8 5 3與設備無關的操作系統(tǒng)軟件 2 3 設備獨立性軟件為用戶使用設備提供了統(tǒng)一操作 通過限制操作的權限達到保護設備的目的有了設備獨立性軟件 無論何種設備 都可以向用戶輸入 輸出程序層提供統(tǒng)一的接口 對所有的設備 用戶的操作都是相同的 都通過read實現讀操作 從輸入設備讀取數據 通過write實現寫操作 將數據輸出到輸出設備 系統(tǒng)對每個設備設置讀寫權限 最終實現保護設備的目的 4 實現設備獨立性軟件的優(yōu)點實現設備獨立性軟件具有如下優(yōu)點 使得設備分配時具有靈活性 提高了設備的利用率 易于實現輸入 輸出重定向 提高系統(tǒng)的可適用性用于輸入 輸出操作的設備可以更換 即重定向 而不必改變應用程序 8 5 4用戶級輸入 輸出軟件 大多數的輸入 輸出軟件都在操作系統(tǒng)核心中實現 只有與用戶程序鏈接在一起的庫函數以及運行在操作系統(tǒng)核心之外的其它程序才在用戶層實現 1 庫文件對輸入 輸出系統(tǒng)進行調用的系統(tǒng)函數屬于用戶級 如對設備的read write操作 2 spooling程序技術 1 spooling程序技術定義脫機輸入 輸出是通過外圍控制機實現信息的輸入 輸出 輸入 輸出不需要主機的參與 使得主機的處理與輸入 輸出過程并行進行 提高了系統(tǒng)的效率 特別是處理器的效率 8 5 4用戶級輸入 輸出軟件 1 隨著計算機處理速度的提高 特別是多道程序的引入 外圍控制機的輸入 輸出控制功能可以用程序來模擬 用程序來替代外圍控制機 模擬輸入程序將大量需要處理的信息預先輸入到磁盤中暫存 實現了 預輸入 當用戶作業(yè)需要輸入信息時則直接從磁盤中輸入 同樣 當用戶作業(yè)需要輸出信息時 會暫時將信息保存到磁盤中 待作業(yè)完成后 模擬輸出程序再將磁盤中的輸出信息輸出到輸出設備 實現了 緩輸出 這樣的輸入 輸出是在主機的控制下 實現的脫機輸入 輸出 稱為spooling simultaneausperiphernaloperationson line 也稱為假脫機 8 5 4用戶級輸入 輸出軟件 2 2 spooling系統(tǒng)的組成 8 5 4用戶級輸入 輸出軟件 3 spooling系統(tǒng)主要包括如下四個部分 輸入井和輸出井 輸入緩沖區(qū)和輸出緩沖區(qū) 預輸入進程SPI和緩輸出進程SPO 井管理程序在作業(yè)執(zhí)行過程中 進程如果請求啟動某臺輸入 輸出設備操作 操作系統(tǒng)得到該請求并調出井管理程序 控制從相應的輸入井讀取數據或將信息輸出到輸出井 輸入井中的信息被作業(yè)取走后 輸入井應該歸還 同樣 如果輸出井中的信息被送入到輸出緩沖區(qū)后 輸出井也應該歸還 操作系統(tǒng)通過預輸入表和緩輸出表管理輸入作業(yè)和輸出作業(yè) 表中有作業(yè)名 作業(yè)狀態(tài) 文件名 設備類 數據起始位置 數據當前位置等信息 當輸入井或輸出井刪除時 作業(yè)信息也從表中刪除 井管理程序的主要工作就是管理預輸入表和緩輸出表及回收輸入井和輸出井 8 5 4用戶級輸入 輸出軟件 4 3 應用spooling技術實現共享打印機打印機屬于獨享設備 但利用spooling技術 可將它改造為一臺可供多個用戶共享的設備 從而提高設備的利用率 方便用戶的使用 當用戶進程申請打印輸出時 spooling系統(tǒng)同意為進程打印輸出 但并不真正分配打印機給該進程 而只為該進程做了兩件事 輸出進程在輸出井中為之申請一空閑盤塊區(qū) 并將要打印的數據送入其中 輸出進程再為用戶進程請求一張空白的緩輸出表 并將用戶的打印要求填入表中 如果還有作業(yè)打印輸出 系統(tǒng)仍可以接收請求并將其寫入表中 打印機可能使用時間非常長 在用戶使用期間 其他用戶無法打印 為解決該問題 大多數操作系統(tǒng)都為打印機創(chuàng)建了一個特殊的守護進程 由守護進程從輸出井中取出用戶作業(yè)進行打印 而不需要用戶進程參與打印 這樣 用戶進程在將打印數據送入輸出井之后不需要等待打印 繼續(xù)運行 8 5 4用戶級輸入 輸出軟件 續(xù) 4 spooling技術的特點 提高了輸入 輸出速度如同脫機輸入輸出一樣 spooling提高了輸入 輸出速度 緩和了處理器與低速輸入 輸出設備之間速度不匹配的矛盾 將獨占設備改造為共享設備通過輸入井和輸出井實現了獨占設備向共享設備的轉變 實現了虛擬設備功能實現了將獨占設備變換為若干個對應的邏輯設備 8 6設備的分配和回收 在多道程序環(huán)境下 設備必須由系統(tǒng)分配 每當進程向系統(tǒng)提出I O請求時 設備分配程序按照一定的策略 把其所需的設備及其有關資源 如緩沖區(qū) 控制器和通道 分配給該進程 在分配設備時還必須考慮系統(tǒng)的安全性 避免發(fā)生死鎖現象 8 6 1設備分配原則1 根據設備的固有屬性而采取的策略獨享方式 獨享方式是指將一個設備分配給某進程后 便一直由它獨占 直至該進程完成或釋放該設備為止 系統(tǒng)才能將該設備分配給其它進程使用 這種分配方式是對獨占設備采用的分配策略 它不僅往往造成設備利用率低 而且還會引起系統(tǒng)死鎖 8 6 1設備分配原則 1 共享方式共享方式是指將共享設備 磁盤 同時分配給多個進程使用 但是這些進程對設備的訪問需進行合理的調度 虛擬方式虛擬方式是指通過高速的共享設備 把一臺慢速的以獨占方式工作的物理設備改造成若干臺虛擬的同類邏輯設備 這就需要引入SPOOLing技術 虛擬設備屬于邏輯設備 2 設備分配算法 與進程的調度算法相似 先來先服務 當多個進程同時向某一設備提出I O請求時 該算法就根據對該設備提出請求的先后次序將這些進程排列成一個設備請求隊列 設備分配程序把設備首先分配給隊首進程 優(yōu)先級高者優(yōu)先 對優(yōu)先權高的進程所提出的I O請求賦予高優(yōu)先權 在形成設備隊列時 將優(yōu)先級高的進程排在設備隊列前面 先得到分配 而對于優(yōu)先權相同的I O請求 則按先來先服務原則排隊分配 8 6 1設備分配原則 2 3 設備分配中的安全性安全分配方式每當進程發(fā)出一個I O請求后 便進入阻塞狀態(tài) 直到其I O操作完成時才被喚醒 當它運行時不保持任何設備資源 打破了產生死鎖一個必要條件 請求和保持 所以這種分配方式是安全的 但是這種分配算法使得CPU與I O設備串行工作 設備的利用率比較低 不安全分配方式進程發(fā)出一個I O請求后仍可以繼續(xù)運行 需要時還可以發(fā)第二個I O請求 第三個I O請求 只有當進程所請求的設備已被另一個進程占用時 進程才進入阻塞狀態(tài) 這種分配方式是不安全 因為它可能具備 請求和保持 條件 從而可能造成系統(tǒng)死鎖 8 6 2設備數據結構 設備分配程序是負責向對系統(tǒng)提出I O請求的進程分配設備 及其相應的控制器和通道 數據結構有 系統(tǒng)設備表 SDT 設備控制表 DCT 控制器控制表 COCT 通道控制表 CHCT 每個表的具體內容如下圖所示 在整個系統(tǒng)中 有一張系統(tǒng)設備表 SDT 用于記錄系統(tǒng)中全部設備的信息 每個設備占一個表目 其中包括設備類型 設備標識符 設備控制表指針及設備驅動程序的入口地址等表項 系統(tǒng)為每一個設備都配置了一張設備控制表 DCT 用于記錄該設備的情況 表中除了有用于指示設備類型的字段和設備標識符字段外 還應有下列字段 8 6 2設備數據結構 1 設備隊列的隊首指針 凡因請求本設備而未得到滿足的進程 其PCB都應按照一定的策略排成一個隊列 稱為設備請求隊列或簡稱為設備隊列 其隊首指針指向隊首PCB 在有的系統(tǒng)中還設置了隊尾指針 設備狀態(tài) 當設備自身處于 忙 狀態(tài)時 將設備的忙標志置 l 若與該設備相連接的控制器或通道處于 忙 狀態(tài) 而不能啟動該設備 則將設備的等待標志置 l COCT表指針 該指針指向與該設備相連接的控制器的控制表 在具有多條通路的情況下 一個設備可與多個控制器相連接 此時 在DCT中應設置多個控制器表指針 重復執(zhí)行次數 外部設備在傳送數據時 若發(fā)生信息傳送錯誤 系統(tǒng)并不立即認為傳送失敗 而是允許它重新傳送 只要在規(guī)定的重復次數或時間內恢復正常傳送 則仍認為傳送成功 否則才認為傳送失敗 8 6 2設備數據結構 2 SDT集合SDTDCT集合DCTCOCT集合COCTCHCT集合CHCT 8 6 3設備分配和回收過程 1 設備分配的流程對于具有單通道的系統(tǒng) 則當進程提出I O請求后 系統(tǒng)進行設備分配的流程圖如下圖 2 設備分配程序的改進為了獲得設備的獨立性 進程應用邏輯設備名請求I O 這樣 系統(tǒng)首先從SDT中找出第一個該類設備的DCT 如忙 則查找第二個該類設備的DCT 當所有該類設備都忙時 才把進程掛在該類設備的等待隊列中 實際上 系統(tǒng)為了提高可靠性和靈活性 通常采用多通路的I O系統(tǒng)結構 此時對多個控制器和通道的分配 必須查找所有的控制器和通道 才能決定是否將該進程掛起 單通道系統(tǒng)的設備分配流程若忙不忙不安全安全不忙忙忙不忙 進程P提出所需的I O設備 根據物理設備名 從SDT中找出該設備的DCT 由DCT的設備狀態(tài)字段 檢查該設備是否忙 將該進程的PCB插入到該設備的等待隊列中 檢查本次設備分配是否安全性 將此設備分配給該進程 從其DCT中找出與該設備連接的控制器的COCT 檢查該控制器是否忙 將該進程的PCB插入到該控制器的的等待隊列中 將該控制器分配給進程 從COCT中找到與該控制器連接的通道的CHCT 檢查該通道是否忙 將該進程的PCB插入到該通道的的等待隊列中 將該通道分配給進程 至此 設備 控制器和通道三者都已分配成功 啟動I O設備 進行具體的I O操作 練習8 8 1設備管理的主要目標是什么 設備管理的基本功能包括哪些 8 2敘述設備控制器的結構及其工作原理 8 3敘述輸入 輸出控制方式有幾種 各有何特點 8 4輸入 輸出軟件包括哪幾層 各有何功能 8 5通道的功能是什么 8 6敘述循環(huán)緩沖的工作原理 8 7敘述spooling技術的實現思想 8 8敘述設備分配的步驟 8 9什么是設備的獨立性 為什么要引入設備的獨立性 8 10敘述設備分配中可能出現死鎖的情況- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 輸入輸出 設備管理
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://www.820124.com/p-4017736.html