入出力制御方式とは、各種の入出力装置を効率よく動作させるように制御することである。プロセッサのレジスタを経由して、主記憶装置と入出力装置の間でデータ転送を行われる。入出力装置を制御するには、次の方式がある。プログラム制御方式(直接制御方式、バスアービタプログラム制御方式)プログラムで、制御コマンドを制御用レジスタへ書き込む。専用ハードウェア(チャネル装置)がデータ転送制御プログラムを主記憶から自律的に読み出して、入出力装置を制御する方式。チャネル装置は、チャネルプログラムの指令を解読しながら、主記憶装置と入出力装置の間のデータのやり取りを制御する。DMA方式マザーボード上にある各種の装置やメモリがCPUを介することなく、DMAコントローラーという専用ハードウェアをシステムバス/コントローラバスに接続して、データ転送を行う方式。次の図のおいて、実線が「データの流れ」、破線が「制御の流れ」とする。†チャネル制御の入出力では、CPUを介さずに主記憶装置と直接データ転送を行うチャネル装置は、主記憶と入出力装置とのデータ転送の制御を行う。チャネル装置は、チャネルプログラム(チャネルコマンドの集まり)の指示に基づいて動作する。CPUでのチャネルプログラム開始命令の実行により、チャネル装置でチャネルプログラムがスタートする。チャネルの一連の制御が終了すると、チャネル割り込みによって動作終了をCPUへ通知する。入出力動作は次のようになる。I/O命令)を、指定チャネルにSVC命令で割り込みを発生させて指示する。チャネル:主記憶上のチャネルプログラムをチャネルに読み込む。CPU:自タスク(Aプログラム)の処理を中断して、他のタスクを実行する。チャネル:チャネルプログラムを解読し、実行する。読み込みの場合は、入出力機器からのデータを主記憶に転送する。チャネル:入出力動作完了を、割り込みによってCPUに通知する。CPU:割り込みによる入出力の終了処理を行い、Aプログラムを入出力命令の次の命令から実行可能とする。入出力装置には、データ転送の単位によって次のように分類できた。データ転送の単位がブロック例:FD、磁気テープ装置データ転送の単位がバイト例:プリンタ、キャラクタ装置このようなデータ転送や装置の動作の違いに応じて、チャネル装置の種類が異なる。チャネルには接続されている入出力装置との間でのデータ転送方式により、次の方法がある。バーストモード開始から終了までひとつの入出力装置がチャネルを占有して使用するモードのこと。例:セレクタチャネルマルチプレクサモード複数の入出力装置が、ひとつのチャネルを時分割により共有して使用するモードのこと。磁気ディスク装置のようなブロックデバイスには、シークと呼ばれるデータ転送を伴なわない動作がある。シーク動作中は、他の装置の制御に時間を使うことができる。このことを利用して、複数の磁気ディスク装置を接続詞、それらの動作を多重化できるようにしたチャネル装置である。磁気テープ装置の場合には、磁気ディスク装置でのシークに相当するような動作がない。このような装置では、動作の多重化ができないため、1台の装置に対するチャネルプログラムが終了するまでチャネルを占有し、チャネルプログラム終了後に、別の装置に切り替える。†プリンタのように低速のキャラクタデバイスでは、データ転送はバイト単位で行われる。このような装置のチャネルプログラムは、入出力バッファ単位での転送が行うように設計されていることが多い。そこで、チャネルプログラムの進行を多重化することで複数のキャラクタデバイスを並列して制御し、スループットを高めることができる。†スター型接続チャネル装置から各入出力装置へ個別に接続経路を設定する方式。例:USBデイジーチェーン接続チャネル装置から芋づる式に各装置へ接続経路を連結する方式。磁気ディスク装置へのアクセスを高速化するには、データ転送・回転待ち・シークの各動作を効率よく行うことがポイントである。この状況において、高速化をするには次のようなアプローチが考えられる。オフラインシークシーク時間を他の装置の動作のために解放する。オフラインサーチ回転待ち時間を、他の装置の動作のために解放する。データ転送の高速化ディスクの回転数を高くする、あるいは磁気ディスクを多重化して実質的な転送速度を高める。データ転送ケーブルも高速化する。ディスクアクセスを減らすディスク装置にキャッシュメモリを実装し、同一データへのアクセスを省略する。これをデバイス側で行う場合で、OSの機能としてソフトウェアで行うものがある。USB(4871d)。