学部生向けのオペレーティング システムの原則 学習記録
学習記録 ファミリー バケット
第 13 章 I/O システム
13.1 基本的な I/O の概念
13.1.1 I/O システムの基本概要
I/O システムの核となるのは、I/O の制御と管理です。
コンピュータには 2 つの主なタスクがあります。
- I/O 操作 - より頻繁に
- 計算する
I/O デバイスの機能:
- バラエティに富み、常に新しいデバイスが登場
- インターフェイスの標準化:USBなど
13.1.2 I/O システムの基本機能
- 物理デバイスの詳細を非表示にする
- デバイスに依存しない
- プロセッサと I/O デバイスの使用率を向上させる
- 制御 I/O デバイス
- デバイスの適切な共有を確保する
- エラー処理
デバイスの独立性:
オペレーティングシステムの適応性とスケーラビリティを向上させるため
-
デバイスの独立性(デバイスの独立性とも呼ばれる) は、最新のオペレーティング システムで達成されます。
-
アプリケーションは、使用される特定の物理デバイスに依存しません
実装
-
論理デバイスと物理デバイスの導入
-
アプリケーションで論理デバイス名を使用して、特定のタイプのデバイスの使用を要求します
-
システムは、実際の実行時に物理デバイス名を使用します
-
システムには、論理デバイス名を物理デバイス名に変換する機能が必要です
I/O アプリケーション インターフェイス
- I/O システム コールは、デバイスの動作をいくつかのジェネリック型にカプセル化します。
- デバイス ドライバー レイヤーは、I/O コントローラーのさまざまな詳細をカーネルから隠します。
- デバイスはさまざまな点で大きく異なります
13.1.3 I/O ハードウェア制御
デバイスの制御方法 (デバイス アドレスによる):
- ダイレクトI/O命令:IN AL、60H
- メモリ マップド I/O: デバイス アドレスとメモリ アドレスが同時にアドレス指定されます。
I/O レジスタ:
- ステータスレジスタ
- 制御レジスタ
13.1.4 I/O デバイスの種類
使用特性による分類:
- ストレージ デバイス、I/O デバイス
転送速度による分類
- 低速デバイス: キーボード、マウス、音声入力
- 中速機:ラインマトリックスプリンター、レーザープリンター
- 高速デバイス: テープ ドライブ、磁気ディスク、光ディスク
情報交換単位による分類
- ブロックデバイス、キャラクターデバイス
デバイスの共通属性による分類
- 共用設備、専用設備
13.2 I/O デバイスの制御方法
ポーリングによるI/Oプログラマブル方式:現在は基本的に使われていない
割り込みを使用したプログラマブル I/O モード: CPU と I/O デバイスは並行して動作可能
ダイレクト メモリ アクセス DMA モード: CPU と I/O デバイスの並列動作の度合いがさらに向上します。
I/O チャネル制御モード
メイン周波数: 3.0GHz
割り込みメカニズム
CPU ハードウェアに割り込み要求ライン IRL があります。
基本的な割り込み動作メカニズム
- CPU が各命令を実行した後、IRL を確認します。
- 信号が検出されると、CPU は現在の状態を保存し、割り込みハンドラにジャンプします。
- 割り込みハンドラを実行する
- 実行後、割り込みをクリアしてリターン
割り込みハンドラ
① 無応答割り込み信号の有無を検出
②割り込まれたプロセスのCPU環境を守る
③対応機器処理プログラムへの移行
④割り込み処理
⑤CPUのシーンを戻し、割り込みを抜ける
DMA ダイレクト メモリ アクセス
プログラム制御の I/O を使用して大量のデータを転送しないようにするには、
-
DMA コントローラ
-
CPU をバイパスして、I/O デバイスとメモリの間で直接データを転送する
13.3 I/Oカーネルサブシステム
I/O 関連のサービスを提供し、ハードウェアとデバイス ドライバーの構造に基づいて構築され、誤ったプロセスや悪意のあるユーザーから自身を保護する役割も担います
13.3.1 I/Oスケジューリング
一部の I/O 要求は、デバイス キューに従って並べ替えられます
したがって、先着順アルゴリズムに似た使用法があります。
13.3.2 バッファリング
最新のオペレーティング システムでは、データを交換する CPU と I/O デバイスの間にバッファがあります。
バッファは、特殊なハードウェアで構成できるストレージ領域であり、メモリのようなものです
バッファリングを導入する理由:
- I/O デバイスと高速デバイスの速度差を緩和
- 調整されたデータ転送のデータ サイズの不一致
- 「コピーセマンティクス」を維持する
CPU と I/O デバイス間にバッファリングを導入する理由:
- CPU と I/O デバイス間の速度のミスマッチを緩和
- CPUの割り込み頻度を下げ、割り込み応答時間の制限を緩和
- CPU と I/O デバイス間の並列処理の増加
13.3.3 キャッシュ
キャッシュ - データのコピーを保持する高速メモリ
- ただのコピー
- 重要なのはパフォーマンス
バッファリングとの違い:
- バッファはデータの唯一のコピーである可能性があります
- キャッシュは、高速ストレージ デバイス上の別の場所にあるデータのコピーです。
13.3.4 スプーリング
CPUの高速化とI/O機器の低速化の矛盾を緩和するため、オフライン入力・オフライン出力技術を導入。
-
このプログラムは、オフライン入力をシミュレートし、低速 I/O デバイスから高速ディスクにデータを転送します。
-
別のプログラムがオフライン出力をシミュレートし、データをディスクから低速出力デバイスに転送します
このとき、CPUによる周辺動作とデータ処理が同時に行われますが、オンライン状態で実現されるこの周辺動作の同時実行をスプーリング技術SPOOLingと呼びます。
SPOOLing システムのコンポーネント
スプーリングシステムの特長
- I/O デバイスの高速化
- 排他デバイスを共有デバイスに変更する
- 仮想デバイスの機能を実現