マインドマップギャラリー コンピュータのオペレーティング システム - 入出力管理
この記事は、コンピューター オペレーティング システム IO の基本概念について詳しく説明しており、興味のある友人の学習に役立つことを願っています。
2023-12-01 15:12:41 に編集されましたI/O管理
I/O管理の概要
I/Oデバイスの分類
使用特性による分類
人間とコンピュータの相互作用外部デバイス
ストレージデバイス
ネットワーク通信機器
伝送速度
低速デバイス
中速装備
高速装置
情報交換ユニット
ブロックデバイス
高速伝送とアドレス指定可能
キャラクターデバイス
送信は遅く、アドレス指定できず、割り込み駆動のアプローチを使用します。
I/Oコントローラー
主な機能
CPU (制御レジスタ) によって発行された命令を受け入れて識別します。
デバイスのステータスをCPUに報告します(ステータスレジスタ)
データ交換(データレジスタ一時データ)
アドレス認識 (I/O ロジックによって実装)
構成
CPUとコントローラ間のインターフェース(コントローラとCPU間の通信を実現)
I/O ロジック (CPU によって発行されたコマンドの識別とデバイスへのコマンドの発行を担当します)
コントローラとデバイス間のインターフェース(コントローラとデバイス間の通信を実現)
2 つのレジスタ アドレス指定方法
メモリマップドI/O
コントローラ内のレジスタとメモリのアドレス指定を統一
コントローラはメモリ上で動作する命令を使用して操作できます
レジスタ独立アドレッシング
コントローラー内のレジスターは個別にアドレス指定されます
コントローラを動作させるには特別な命令の設定が必要です
I/O制御モード
プログラム直接制御
欠点: CPU および I/O デバイスはシリアルでしか動作できないため、CPU 使用率が非常に低くなります。
割り込み駆動モード
I/O デバイスが CPU の動作をアクティブに中断し、サービスを要求できるようにします。 これにより CPU が解放され、I/O コントローラに読み取りコマンドを送信した後も他の有用な作業を継続できるようになります。
短所: データの各ワードは CPU を介してメモリと I/O コントローラ間で転送される必要があるため その結果、割り込み駆動方式では依然として多くの CPU 時間が消費されます。
DMA(ダイレクトメモリアクセス)方式
I/O デバイスとメモリの間に直接データ パスを確立し、CPU に完全にアクセスします
特徴
基本単位はデータブロックです
転送されるデータはデバイスからメモリに、またはその逆に直接送信されます。
CPU の介入は、1 つ以上の連続したデータ ブロックの先頭と末尾を転送する場合にのみ必要です。 データのブロック全体の転送は、DMA コントローラの制御下で完了します。
チャンネルモード
I/O チャネルは、特に入出力を担当するプロセッサであり、CPU の介入をさらに減らすことができる DMA 方式を発展させたものです。 つまり、データ ブロックの読み取り (または書き込み) の介入は、データ ブロックのグループの読み取り (または書き込み) および関連する制御と管理の介入に縮小されます。 同時に、CPU、チャネル、I/Oデバイスの並列動作を実現できます。
チャネル命令タイプは単一であり、独自のメモリを持ちません。チャネルによって実行されるチャネル プログラムは、CPU とメモリを共有します。
I/O ソフトウェア階層
ユーザーレベルのI/Oソフトウェア
ユーザーインタラクションのために実装されたインターフェース
デバイスに依存しないソフトウェア
すべてのデバイスに共通の操作を実行する
機器の流通とリサイクル
論理デバイス名を物理デバイス名にマッピングする
デバイスを保護する
バッファ管理
エラー制御
デバイスに依存しない均一なサイズの論理ブロックを提供し、デバイス間の情報交換単位サイズや伝送速度の違いを遮断します。
ユーザー層に統一されたインターフェースを提供する
デバイスドライバ
ハードウェアに関連し、システムによってデバイスに発行された操作命令を具体的に実装する責任を負います。
割り込みハンドラ
割り込み関連事項を処理するために使用されます
ハードウェア
機械コンポーネント (デバイス自体) と電子コンポーネント (デバイス コントローラー/アダプター) で構成されます。
デバイスコントローラーの機能
CPUまたはチャネルからのコマンドを認識または受け入れます
データ交換を実現
デバイスまたはそれ自体に関するステータス情報を検出してログに記録します
デバイスアドレスの識別
I/Oコアサブシステム
I/O スケジューリングの概念
I/O リクエストを実行する適切な順序を決定する
キャッシュとバッファ
単一バッファ
デバイス - (T) - バッファ - (M) - ワークスペース - (C) - 処理中
バッファがいっぱいになると、データがワークエリアに送信されます。ワークエリアがいっぱいになると、同時にバッファは空になります。
初期状態では、ワークスペースはいっぱいで、バッファーは空であると仮定します。 1 つのデータの処理にかかる平均時間は Max (C, T) M です
ダブルバッファリング
初期状態として、バッファ 1 がいっぱい、バッファ 2 が空、作業領域が空であると仮定します。 1 つのデータの処理にかかる平均時間は Max (T, C M) です
バッファ 1 がいっぱいで、データがバッファ 2 にロードされています。この時点で、データはバッファ 1 からフェッチできます。 データはバッファがいっぱいの場合にのみ取得できます
循環バッファ
複数のバッファが循環キューにリンクされ、イン ポインタは最初の空のバッファを指し、アウト ポインタは最初の満杯のバッファを指します。
バッファプール
3つの待ち行列
空のバッファキュー
入力キュー
出力キュー
4 つの作業バッファ
入力データを収容するために使用される作業バッファ、入力データを抽出するために使用される作業バッファ
出力データを格納するために使用される作業バッファ、出力データを抽出するために使用される作業バッファ
バッファとキャッシュ
バッファの概念
通常、メモリをバッファとして使用します
CPUとデバイス間の速度競合を緩和し、CPUへの割り込みの頻度を減らします。 データ粒度の不一致の問題を解決し、CPU と I/O デバイス間の並列性を向上させます。
特徴
バッファ内のデータが空でない場合、データをバッファにフラッシュすることはできず、データはバッファから転送することしかできません。
バッファが空の場合、データをバッファに突入させることができますが、データをバッファから転送するには、その前にバッファが満たされている必要があります。
機器の流通とリサイクル
考慮すべき要素
固有の特性
専用デバイス、共有デバイス、仮想デバイス(SPOOLing)
割り当てアルゴリズム
早い者勝ち、優先度の高いものから、短いタスクから順
安全性
安全な流通方法
安全でない割り当て方法
静的割り当てと動的割り当て
動的割り当ては、プロセス実行中に実行ニーズに応じて実行されます。
デバイス割り当て管理のデータ構造
デバイス制御テーブル (DCT)
各デバイスは DCT に対応し、キー フィールド: タイプ/識別子/ステータス/COCT へのポインタ/待機キュー ポインタ
コントローラー制御テーブル (COCT)
各コントローラーは COCT に対応し、キー フィールド: ステータス/CHCT へのポインター/待機キュー ポインター
チャネル制御テーブル (CHCT)
接続されたコントローラ テーブルへのポインタと、チャネルを待機しているプロセスの PCB キューの先頭ポインタと末尾ポインタがあります。
システムデバイステーブル(SDT)
システム全体のすべてのデバイスのステータスを記録します。各デバイスはエントリに対応します。
主要なフィールド
デバイスタイプ/識別子/DCT/ドライバーエントリ
1 つのチャネルで複数のコントローラを制御し、1 つのコントローラで複数のデバイスを制御
デバイスの割り当て手順
1. プロセスによって要求された物理デバイス名に基づいて SDT を検索します。 2. DCT を検索し、SDT に従って機器を割り当てます。 3. DCT に従って COCT を見つけ、コントローラーを割り当てます 4. CHCT を検索し、COCT に基づいてチャネルを割り当てます。
デバイス、コントローラ、およびチャネルがすべて正常に割り当てられた場合にのみ、デバイスは正常に割り当てられたとみなされ、データ送信のために I/O デバイスを開始できます。
欠点がある
ユーザーはプログラミング時に「物理デバイス名」を使用する必要があります。物理デバイスが変更されると、プログラムは実行されなくなります。 要求されたデバイスがビジー状態の場合、システム内に同じタイプの他のデバイスがある場合でも、プロセスは待機する必要があります。
デバイス割り当てステップの改善
ユーザーはプログラミング時に論理デバイス名を使用してデバイスを適用し、OS は論理デバイス名から物理デバイス名へのマッピングを担当します。
論理デバイステーブルの設定
システム全体で LUT は 1 つだけです。各ユーザーが使用する論理デバイス名を繰り返すことはできません。
ユーザーごとに 1 つの LUT: 各ユーザーの論理デバイス名を繰り返すことができます
スプーリング
オフラインテクノロジー
周辺コントローラ 高速機器—テープ
機能:デバイスとCPU間の速度競合を緩和し、事前入力と低速出力を実現します。
スプーリング
ソフトウェア手法を使用したオフライン技術のシミュレーション
入力ウェルと出力ウェル
記憶領域
入力プロセスと出力プロセス
入力バッファと出力バッファ
入力バッファ
入力デバイスから送信されたデータを一時的に保存
出力バッファ
出力ウェルからのデータを一時的に保存します
共有プリンター
SPOOLing テクノロジーを使用して、専用プリンターを共有プリンターに「仮想化」します。