[b-free: 306] MemoryManager

藤永清和 (NBA01614@niftyserve.or.jp)
Thu, 01 Jun 1995 21:13:00 +0900

隆一さん、永代さん、ありがとうございます。誤植でなく、わたしの誤読だったの
ですね。
「ローカルメモリ領域の大きさ」はプロセスの最大メモリ使用量といった意味。であ
れば、よく理解できます。

プロハンでは、「実行プログラム内で指定された大きさ、すなわちリンク時に決ま
る大きさ」と書かれているので、ヒープではなくグローバル変数やスタティック変数
のことかと思ったのでした。
じっさい、1Bでは、プログラマがローカルメモリの最大サイズを指定しているの
でしょうか?

隆一さんの指摘どおり、B-Free OS では、最大メモリサイズを指定する必要は無い
と考えています。
実メモリもスワップ領域も使い果したときには、新規プロセスの生成ができないこ
とはあります。

 [スタックとサブタスク]
4M バイトのサイズのスタックというのはその成長するときの最大サイズという意味
だと理解しています。
 ただし、ひとつのプロセス空間のなかに複数のタスクが存在する場合、この4MB
を分割して各タスクのスタックとして割り当てることになるのではないでしょうか?

 プロセスの生成時には、スタックに実メモリを1ページだけ割り当てておき、スタ
ックが成長してページフォルトが発生したら新しいページを割り当てるつもりです(
最初に割り当てたページがページアウトすることもある)。