[kernel-ml 88] PM <=> MM インターフェイス

藤井 俊典 (TBE01041@niftyserve.or.jp)
Tue, 21 Nov 1995 01:28:00 +0900

Joy こと藤井です。

 ずいぶん遅れましたが、プロセスマネージャとメモリマネージャ間のイン
ターフェイスの案です。

まずメモリーのモデルとして以下の様に定義します。

◯BTRON プロセスのメモリイメージ(1プロセス内で2タスク動かした状態。

   0000 0000+−−−−−−−−−−−−−−+
       |    未使用領域     |
   0040 0000+−−−−−−−−−−−−−−+−−−−
       |   実行コード領域    | *1
       +−−−−−−−−−−−−−−+−−−−
   |  データ領域(静的)   | *2
       +−−−−−−−−−−−−−−+−−−−
       |  ヒープ・スタック領域  |
       | +−−−−−−−−−−−−+
       | |   ヒープ領域    |
       | +−−↓−−−−−−−−−+
       | |            |
       | |   未使用領域    |
       | |            |
       | +−−↑−−−−−−−−−+
       | |  スタック保護領域  | *3
       | +−−−−−−−−−−−−+
       | |スタック保護領域(task-2)|
       | +−−−−−−−−−−−−+
       | |  スタック保護領域  |
       | +−−−−−−−−−−−−+
       | |スタック保護領域(task-1)|
       | +−−−−−−−−−−−−+
       | |  スタック保護領域  |
   4000 0000+−+−−−−−−−−−−−−+−−−−
       |     共用領域     |
   8000 0000+−−−−−−−−−−−−−−+
       |    カーネル等     |
       +−−−−−−−−−−−−−−+

◯機能概要
 プロセスマネージャからメモリマネージャへの要求として、プロセス空間の
作成・破棄とタスク用スタック獲得・解放。メモリマネージャからプロセスマ
ネージャへの要求として、リージョンへのロード要求を定義します。

1. プロセスマネージャからメモリマネージャへの要求
 (正しくはBTRONプロセスのLOWLIB内よりメモリマネージャへの要求)
1.1 プロセス空間の作成
 プロセス起動時に、プロセスの初期化コードよりメモリマネージャへ*1〜
*3までの領域を指定し管理を依頼する。
 また、*1,*2に対しリージョンの生成を依頼する。

1.2 プロセス空間の破棄
 プロセス終了時に、プロセスの後処理コードよりメモリマネージャへ全リー
ジョンの開放管理の終了を依頼する。

1.3 タスク用スタック獲得
 タスク起動時に、タスクが特権レベルを3へ移行するまでにスタック領域の
獲得を依頼する。
 スタック領域はヒープ・スタック領域より切りだして獲得をする。

1.4 タスク用スタック解放
 タスク終了時に、タスクの後処理コードよりタスク用のスタック領域のの解
放を依頼する。

2. メモリマネージャからプ鴻Zスマネージャへの要求
2.1 リージョンへのロード要求
 *1,*2の領域についてアクセスが有ったとき、ファイル上等に存在する
コード・初期データを該当の領域へ設定すよう依頼する。

詳細へ続く