i/o 裝置及其介面線路、控制部件、通道和管理軟體。
根據輸入輸出特性劃分:
輸入型外圍裝置、輸出型外圍裝置和儲存型外圍裝置
按照輸入輸出資訊交換的單位劃分:
字元裝置:輸入型外圍裝置和輸出型外圍裝置一般為字元裝置,它與記憶體進行資訊交換的單位是位元組,即一次交換 1 個或多個位元組
塊裝置:塊裝置一次與記憶體交換的乙個或幾個塊的資訊,儲存型外圍裝置一般為塊裝置
按照 i/o 控制器功能的強弱,以及和 cpu 之間****的不同,可把i/o裝置的控制方式分為四類,它們的主要差別在於**處理器和外圍裝置並行工作的方式不同,並行工作的程度不同。
乙個資料輸入的流程可參照下圖:
1. 假如 cpu 上執行的現行程式需要從 i/o 裝置讀入一批資料,cpu程式設定交換位元組數和資料讀入主存的起始位址
2. cpu向 i/o 裝置發讀指令或查詢標誌指令,i/o 裝置便把狀態返回給 cpu
3. 如果 i/o忙或未就緒,則重複上述測試過程,繼續進行查詢
4. 如果 i/o 裝置就緒,資料傳送便開始,cpu 從 i/o介面讀乙個字,再向主存寫乙個字。如果傳送還未結束,再次向裝置發出讀指令,直到全部資料傳輸完成再返回現行程式執行
為了完成以上查詢,通常要用到三種指令:
1. 查詢指令,用來查詢裝置是否就緒;
2. 傳送指令,當裝置就緒時,執行資料交換;
3. 轉移指令,當裝置未就緒時,執行轉移指令
轉向查詢指令繼續查詢。
由上述過程可見,一旦 cpu 啟動 i/o 裝置,便不斷查詢i/o的準備情況,終止了原程式的執行。cpu在反覆查詢過程中,浪費了寶貴的 cpu 時間;另一方面,i/o 準備就緒後,cpu 參與資料的傳送工作,此時 cpu 也不能執行原程式,可見 cpu 和 i/o 裝置序列工作,使主機不能充分發揮效率,外圍裝置也不能得到合理使用,整個系統的效率很低。
中斷方式僅當操作正常或異常結束時才中斷**處理機,因而實現了一定程度的並行操作。
相比於詢問方式,中斷方式的處理流程如下所示
1. cpu 在啟動 i/o 裝置後,不必查詢 i/o 裝置是否就緒,而是繼續執行現行程式,對裝置是否就緒不加過問
2. 直到在啟動指令之後的某條指令(如第 k 條) 執行完畢,cpu 響應了 i/o 中斷請求,才中斷現行程式轉至 i/o 中斷處理程式執行
3. 在中斷處理程式中,cpu 全程參與資料傳輸操作,它從 i/o 介面讀乙個字(位元組) 並寫入主存
4. 如果i/o裝置上的資料尚未傳送完成,轉向現行程式再次啟動 i/o 裝置,於是命令 i/o 裝置再次作準備並重複上述過程
5. 否則,中斷處理程式結束後,繼續從 k+1 條指令執行
使用中斷的方式,由於輸入輸出操作直接由**處理器控制,每傳送乙個字元或乙個字,都要發生一次中斷,因而仍然消耗大量**處理器時間。
例如,輸入機每秒傳送 1000 個字元,若每次中斷處理平均花 100 微秒,為了傳輸 1000 個字元,要發生 1000 次中斷,所以,每秒內中斷處理要花去約 100 毫秒。
但是程式中斷方式 i/o,由於不必忙式查詢 i/o 準備情況,在 cpu 和 i/o 裝置可實現部分並行,與程式查詢的序列工作方式相比,使 cpu 資源得到較充分利用。
雖然程式中斷方式消除了程式查詢方式的忙式測試,提高了 cpu 資源的利用率,但是在響應中斷請求後,必須停止現行程式轉入中斷處理程式並參與資料傳輸操作。如果 i/o 裝置能直接與主存交換資料而不占用 cpu,那麼,cpu 資源的利用率還可提高,這就出現了直接儲存器訪問(direct memory access ,dma)方式。
在 dma(直接主存訪問)方式中,主存和 i/o 裝置之間有一條資料通路,在主存和 i/o 裝置之間成塊傳送資料過程中,不需要 cpu 幹予,實際操作由 dma 直接執行完成
具體處理如下圖所示:
dma至少需要以下邏輯部件:
主存位址暫存器
存放主存中需要交換資料的位址,dma 傳送前,由程式送入首位址,在dma傳送中,每交換一次資料,把位址暫存器內容加 1
字計數器
記錄傳送資料的總字數,每傳送乙個字,字計數器減 1。
資料緩衝暫存器或資料緩衝區
暫存每次傳送的資料。dma與主存間採用字傳送,dma與裝置間可能是字位或位元組傳送。所以,dma中還可能包括有資料移位暫存器、位元組計數器等硬體邏輯
裝置位址暫存器
存放 i/o 裝置資訊,如磁碟的柱面號、磁軌號、塊號。
中斷機制和控制邏輯
用於向 cpu 提出 i/o 中斷請求和儲存 cpu 發來的 i/o 命令及管理 dma的傳送過程。
dma 不僅設有中斷機構,而且,還增加了dma傳輸控制機構。若出現 dma 與 cpu 同時經匯流排訪問主存,cpu 總把匯流排佔有權讓給 dma,dma 的這種占有稱『週期竊用』,竊取的時間一般為乙個訪問週期,讓裝置和主存之間交換資料,而且在 dma 週期竊取期間,cpu不用干預,還能做運算操作。這樣可減輕cpu的負擔,每次傳送資料時,不必進入中斷系統,進一步提高了 cpu 的資源利用率。
dma 方式與程式中斷方式相比,使得cpu對io的干預從字(位元組) 為單位的減少到以資料塊為單位。而且,每次 cpu幹予時,並不要做資料拷貝,僅僅需要發一條啟動 i/o 指 令 ,以及完成 i/o 結束中斷處理。
但是,每發出一次i/o指令,只能讀寫乙個資料塊,如果使用者希望一次讀寫多個離散的資料塊,並能把它們傳送到不同的記憶體區域,或相反時,則需要由cpu分別發出多條啟動i/o指令及進行多次 i/o 中斷處理才能完成。
通道方式進一步減少了cpu對i/o操作的幹予,減少為對多個資料塊,而不是僅僅乙個資料塊,及有關管理和控制的幹予。
通道又稱輸入輸出處理器。它能完成主儲存器和外圍裝置之間的資訊傳送,與**處理器並行地執行操作。
採用輸入輸出通道設計後,輸入輸出操作過程如下:
1. **處理機在執行主程式時遇到輸入輸出請求
2. 啟動指定通道上選址的外圍裝置,一旦啟動成功,通道開始控制外圍裝置進行操作。
3. 這時**處理器就可執行其它任務並與通道並行工作,直到輸入輸出操作完成。
4. 通道發出操作結束中斷時,**處理器才停止當前工作,轉向處理輸入輸出操作結束事件。
按照資訊交換方式和加接裝置種類不同,通道可分為三種型別:
位元組多路通道
它是為連線大量慢速外圍裝置,如軟盤輸入輸出機、紙帶輸入輸出機、卡片輸入輸出機、控制台打字機等設定的。以位元組為單位交叉地工作,當為一台裝置傳送乙個位元組後,立即轉去為另一台裝置傳送乙個位元組。在ibm370系統中,這樣的通道可接 256 臺裝置。
選擇通道
它用於連線磁帶和磁碟快速裝置。以成組方式工作,每次傳送一批資料;故傳送速度很高,但在這段時間只能為一台裝置服務。每當乙個輸入輸出操作請求完成後,再選擇與通道相連線的另一裝置。
陣列多路通道
對於磁碟這樣的外圍裝置,雖然傳輸資訊很快,但是移臂定位時間很長。
1. 如果接在位元組多路通道上,那麼通道很難承受這樣高的傳輸率;
2. 如果接在選擇通道上,那麼;磁碟臂移動所花費的較長時間內,通道只能空等。
陣列多路通道可以解決這個矛盾,它先為一台裝置執行一條通道命令,然後自動轉換,為另一台裝置執行一條通道命令。
對於連線在陣列多路通道上的若干臺磁碟機,可以啟動它們同時進行移臂,查詢欲訪問的柱面,然後,按次序交叉傳輸一批批資訊,這樣就避免了移臂操作過長地占用通道。由於它在任一時刻只能為一台裝置作資料傳送服務,這類似於選擇通道;但它不等整個通道程式執行結束就能執行另一裝置的通道程式命令,這類似於位元組多路通道。
裝置控制器是 cpu 和裝置之間的乙個介面,它接收從 cpu
發來的命令,控制i/o裝置操作,實現主存和裝置之間的資料傳輸操作。
裝置控制器是乙個可編址裝置,當它連線多台裝置時,則應具有多個裝置位址。
裝置控制器的主要功能為:
1. 接收和識別 cpu 或通道發來的命
令,例如磁碟控制器能接收讀、寫、查詢、搜尋等各種命令;
2. 實現資料交換,包括裝置和控制器之間的數
據傳輸;通過資料匯流排或通道,控制器和主存之間的資料傳輸;
3. 發現和記錄裝置及自身的狀態資訊,供 cpu
處理使用;
4. 裝置位址識別。
作業系統原理番外篇 硬體架構
from ongoingcre 依稀記得那是乙個記得那是2011年的夏天,都已經到了穿涼拖的地步了。那個時候的自己感覺很陽光,哈哈!總是那麼的無畏,那麼的瀟灑!就這樣子,我接觸到了我們所謂的計算機原理課,那個時候感覺很是高大上,所以就一直嘗試著努力的去聽。可是貌似事與願違,課程開始了好幾個禮拜,基本...
作業系統硬體知識
day1 作業系統硬體知識 伺服器內部組成部分 主機板 將多個硬體進行整合,傳導電資訊 硬碟 儲資料資訊 永久儲存 光碟機 安裝系統,安裝軟體,看電影 風扇 負責散熱 cpu 處理器 大腦 運算 二進位制 控制其他硬體 記憶體 儲存資料資訊 臨時儲存 網絡卡 負責上網 電源 負責供電 陣列卡 將多塊...
作業系統IO模型
目前io模型主要經歷了以下五種 1 阻塞io 2 非阻塞io 3 io復用 select和poll 4 訊號驅動io sigio 5 非同步io aio 核心空間和使用者空間 由於作業系統都包括核心空間和使用者空間 或者說核心態和使用者態 核心空間主要存放的是核心 和資料,是供系統程序使用的空間。而...