操作系統-I/O系統
I/O管理概述
- I/O管理示意圖, 參考這裏
I/O的特點
- I/O性能經常成爲瓶頸
- 與文件系統關係密切
- 操作系統複雜原因之一:
- 各個I/O設備之間速度差異大
- 應用
- 控制接口分複雜性
- 傳送單元
- 數據表示
- 錯誤條件
設備的分類–按數據組織分
- 塊設備
- 以數據塊爲單位存儲, 傳輸信息, 特點是傳輸速度快, 可以支持隨機讀取
- 字符設備
- 以字符爲單位傳輸信息, 傳輸速度低, 不可尋址
- 或者
- 存儲設備(磁盤, 磁帶)
- 傳輸設備(網卡)
- 人機交互設備(顯示器, 鼠標, 鍵盤)
- 資源分配角度
- 獨佔設備: 在一段時間內只有一個進程才能使用(打印機, 磁帶)
- 共享設備: 在一段時間內可以多個進程共同使用(磁盤, 硬盤)
- 虛設備: 模擬出來的, Spooling技術就是將獨佔的設備改造成共享的設備
I/O管理的目標和任務
- 概念: 控制設備,完成數據從I/O設備到內存的交換
- 目標1
- 設備的分配和回收
- 執行設備驅動程序, 實現真正的I/O操作
- 設備中斷處理: 處理來自設備中斷的信號
- 緩衝區管理: 管理I/O緩衝區
- 目標2
- 建立方便, 統一獨立於設備的接口
- 就是方便用戶使用, 屏蔽底層的硬件的接口
- 建立方便, 統一獨立於設備的接口
- 目標3
- 充分利用各種技術(通道, 中斷, 緩衝, 異步I/O等) 提高CPU與設備, 設備與設備之間的並行工作的能力, 充分利用資源, 提高資源利用率.
- 目標4
- 保護: 設備傳輸的數據應該是安全的, 保密的
I/O硬件組成
- 通常I/O設備由硬件和電子部分組成
- 機器部分: 設備本身
- 電子部分: 適配器,將計算機發來的數據信息->電子信號或者反之
- 按照主機與設備之間約定的格式和過程接受計算機發來的數據和控制信號或向主機發送數據和狀態信號
- 實現內部緩衝, 增強性能
設備接口-控制器的作用
- 操作系統將命令寫入控制器的接口寄存器, 並讀出狀態信息和結果信息
- 當控制器接受一條命令後, 可獨立於CPU完成指定操作, CPU可以去幹別的事了, 等控制器完成了命令後向CPU發出一條中斷指令, 控制轉給操作系統, 通過讀控制寄存器中的信息, 獲得操作結果和設備狀態
- 控制器和設備之間的接口通常是低級接口
- 控制器的任務: 將接收到的字節流->字節塊->檢錯->內存
I/O端口部分
- 接口電路中,每個寄存器具有的唯一的地址, 是個整數
- 所有I/O端口地址形成I/O端口空間(受到保護)