[kernel-ml 18] MemoryManager.TASK&STACK

藤永清和 (NBA01614@niftyserve.or.jp)
Fri, 02 Jun 1995 22:08:00 +0900

 kernel-mlのみなさん、藤永です。

 1プロセスに含まれる複数タスクは、同じ仮想空間を持つものと考えておりました
。それで、隆一さん[kernel-ml 16]の案1)しか考えていませんでした。
 そのため、サブタスクに割り当てるスタックサイズの指定が必要かと考えていたの
ですが、スタックだけ別空間に配置できるなら、それがベストかも知れません。
 スタックは同じプロセス内のタスクであっても互いに干渉することは許せませんか
ら。
 スタックの成長による他のタスクのメモリへの侵害を防ぐのも、別空間なら面倒な
ことが無くて済むかしら。

 隆一さん、「あと、ページフォールトが発生し、そのアドレスがスタックをアクセ
スしたために発生したのかをチェックする方法」は必要でしょうか?

 ところで、真鍋さんが指摘しているとおり、3Bの実装では、1プロセスに、ひと
つのメインタスクと7つのサブタスクが存在でき、スタックを単純に8等分するよう
です。
 で、これは良くないと。
 まず、メインとサブにわけるのでなく、すべてのタスクが同等の機能を持つべきだ
と考えます。
 3Bのタスクは、プロセス内の非同期処理しか想定していないようです(メインタ
スクがイベントループを行ない、実際の処理をサブタスクが行なう)。
 長い時間ポインタが湯呑になって何の操作もできなくなるのだけは防げますが、そ
れだけではおもしろくないでしょう。

 プロセス内タスクは、たとえば何十個かのセンサ入力を集計するようなアプリケー
ションを、ひとつのプロセスで実現できるように実装したいと考えています。

 タスクというと、ITRONのタスクと紛らわしいから、スレッドと言った方がよ
いのかも?

  メモリ管理は極力単純で高性能なものにしたい、 藤永