プロセスは後述する仮想CPUによって実行されます. したがって各プロセ スは,それぞれ独立した仮想CPUの情報(レジスタとメモリ)を保持して います. 以下の記述は何らかのCPUのアーキテクチャに関する知識を前提としてい ます. 機械語に不慣れでも C++,Delphi等のOOP言語をご存知の方は本システ ムの場合,
| プロセス | = | クラスインスタンス |
| レジスタ | = | データメンバ |
| 命令 | = | メソッド |
仮想CPUの1プロセスは以下に示す19本の32ビットレジスタ とデータメモリ空間を持ちます.
+----------------------------------+
| プログラムカウンター |
+----------------------------------+
| 残り時間カウンター |
+----------------------------------+
| メッセージ |
+----------------------------------+
| スタックポインター |
+----------------------------------+
| ベースポインタ BP |
+----------------------------------+
| フラグレジスタ | レジスタ番号
+----------------------------------+
1 | プロセスID RQ | 1
+----------------------------------+
2 | ル-プカウンタ RL | 2
+----------------------------------+
3 | レジスタ RX | 3
+----------------------------------+
4 | レジスタ RY | 4
+----------------------------------+
5 | レジスタ RZ | 5
+----------------------------------+
6 | レジスタ RH | 6
+----------------------------------+
7 | レジスタ RP | 7
+----------------------------------+
8 | レジスタ RB | 8
+----------------------------------+
9 | 汎用レジスタ R1 | 9
+----------------------------------+
10 | 汎用レジスタ R2 | A
+----------------------------------+
11 | 汎用レジスタ R3 | B
+----------------------------------+
12 | 汎用レジスタ R4 | C
+----------------------------------+
13 | 汎用レジスタ R5 | D
+----------------------------------+
14 | 汎用レジスタ R6 | E
+----------------------------------+
プロセス固有のデータメモリ空間(スタックと共用)
+----------------------------------+
| デ-タメモリ 0 |
+----------------------------------+
| 1 |
+----------------------------------+
| 2 |
+----------------------------------+
| : |
| : |
+----------------------------------+
| 最終メモリ番地( SPの初期値 - 1 ) | ↑スタックの伸びる方向
+----------------------------------+
デ-タメモリ空間の大きさはプロセス生成時に指定可能
プログラム起動時に生成される1つのプロセス(デフォルトプロセス)
のデ-タメモリ空間の大きさは常に100です.