チャネル・コントローラ
チャネルプログラムを実行中に読み取ったデータに基づいてチャネルプログラム自身を書き換えることもできる。この技法はよく使われており、例えばOS/360の ISAM などで使われている。
多くの場合、チャネル・コントローラは物理アドレスで処理を行うが、チャネルプログラムは仮想アドレスを使用して書かれる。OSはチャネルプログラムを実行する前に仮想アドレスから物理アドレスへの変換(翻訳)をしなければならない。I/O処理で使用するデータを含むページ群は物理メモリ内に「ロック」または「固定」される。チャネル・プログラムは仮想アドレスを物理アドレスに変換しつつコピーされ、その後I/O操作が開始される。処理完了後、それらのページはアンロックされる。
1 2 3 P.HYES & 1978,1979, p. 35.
1 2 3 JOHN 1972, p. 257-258.
↑ “709 Data Processing System”. IBM. 2012年3月20日閲覧。
↑ “7090 Data Processing System”. IBM. 2012年3月20日閲覧。
↑ IBM Corporation (1968). Student Text: Introduction to IBM System/360 Architecture. IBM Corporation. pp. 22. http://www.bitsavers.org/pdf/ibm/360/GC20-1667-1_intro360arch.pdf
↑ Attanasio, C.R.; Markstein, P.W. and Phillips, R.J. (1976). “Penetrating an Operating System: a Study of VM/370 Integrity”.
チャネル・コントローラ(channel controller)は、コンピュータシステムの一部であり、周辺機器とメモリの間のデータのやりとりを制御する単純なプロセッサ(CPU)である。設計の洗練度によって「周辺プロセッサ」あるいは「DMAコントローラ」とも呼ばれる。また、チャネル・コントローラを使った入出力方式をチャネルI/O(英: Channel I/O)と呼ぶ。