IV. NCP の全体構造
我々は、NCP が 5 つの構成プログラム、いくつかの連想テーブル、およびいくつかのキューとバッファから成るものと捉える。
構成プログラム(図 4.1 を参照)
1. 入力ハンドラ
これは割り込み駆動のルーチンである。IMP からホストへの送信を常駐バッファに対して開始し、送信が完了すると入力インタプリタを起動する。
2. 出力ハンドラ
これは割り込み駆動の出力ルーチンである。常駐バッファからホストから IMP への送信を開始し、送信が完了すると出力スケジューラを起動する。
3. 入力インタプリタ
このプログラムは、入力がユーザ宛ての通常メッセージ、ネットワーク制御メッセージ、IMP からホストへのメッセージ、またはエラーのいずれであるかを判定する。メッセージの各クラスについて、このプログラムは適切な処理を行うサブルーチンを呼び出す。
4. 出力スケジューラ
IMP へは 3 つのクラスのメッセージが送られる。
- (a) ホストから IMP へのメッセージ
- (b) 制御メッセージ
- (c) 通常メッセージ
これらのクラスの間には優先順位を設けるべきだと考える。我々が提案する優先順位は上記の順序である。出力スケジューラは最も優先順位の高いメッセージを選び、出力ハンドラに渡す。
ホストから IMP へのメッセージは先着順に処理される。制御メッセージはホストごとに個別に処理され、各ホストが順番に扱われる。外部ホストごとに制御メッセージキューが 1 つ用意される。ある特定のホストが出力対象にスケジュールされると、そのホスト宛ての制御コマンドが収まる限り連結されて 1 つのメッセージにまとめられる。通常メッセージはホストとリンクごとにグループとして処理され、固有の組み合わせのそれぞれが順番に扱われる。
5. システムコールインタプリタ
このプログラムはユーザからの要求を解釈する。各システムコールには、適切な処理を行う対応ルーチンがある。
興味深い構成要素は、入力インタプリタとシステムコールインタプリタの 2 つである。入力インタプリタが外部からの要求を処理し、システムコールインタプリタがローカルの要求を処理するという点で、両者は似ている。
図 4.1 は、我々が構想するネットワーク制御プログラムを示す。ぐにゃぐにゃしたアメーバ状の物体は構成プログラムを、円柱はキューを、矢印はデータ経路を表す。この簡略化した図ではテーブルは示していない。[編者注:原本の手描き図にあった「アメーバ状」の物体は、現在はしっかりした長方形の枠になっている。]
図中の略称ラベルの意味は次のとおりである。
- HIQ: ホストから IMP へのキュー
- OCCQ: 出力制御コマンドキュー
- DQ: データキュー
- IHBUF: 入力ハンドラバッファ
- OHBUF: 出力ハンドラバッファ
____________
| USER | STRUCTURE OF THE NETWORK CONTROL PROGRAM
|____________|
^ | Fig. 4.1
_____|______V____
| |
| System |
| Call |
| Interpreter |
|_________________| _____________
^ | | | |
| | | +---------------| Input |
| | | | +-----| Interpreter |
| | | | | | |
| V V V V -------------
|======| |=========| |=======| | ^
| D Q | | O C C Q | | H I Q | | |
|======| |=========| |=======| | |
| ^ | | | |
| | | | | |
| +--------)----------)---------+ |
| | | |
+-------+ | +------+ |
__V___V___V__ |
| | |
| Output | |
| Scheduler | |
|_____________| |
| |
V |
(===========) (===========)
( O H B U F ) ( I H B U F )
(===========) (===========)
| ^
______V______ ______|______
| | | |
| Output | | Input |
| Handler | | Handler |
| | | |
------------- -------------
| ^
| |
+----------+ +-----------+
| |
____V____|____
| |
| I M P |
|______________|