[kernel-ml 23] TASK&STACK

藤永清和 (NBA01614@niftyserve.or.jp)
Sun, 04 Jun 1995 23:20:00 +0900

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

[スタックの情報は共有できない]
隆一さんのご指摘どおり、スタックを別空間に置いたらスタックに置かれた情報は
タスク間で共有できませんが、そもそもスタック上に置いたデータ(自動変数)は、
他から見えないものではないでしょうか?というか、同じプロセスのタスクのスタッ
クを同一空間に置いたとしても、ご指摘のようなプログラムはまずいプログラムでは
ないでしょうか?同一空間にスタックがあっても、task1が終了したらdataは消えて
しまう)

 「チェックする方法」の話
 これは、スタックのページインの話に対して、隆一さんが[kernel-ml 16]の最後に

>>>
私もこれがいいと思います。
あと、ページフォールトが発生し、そのアドレスがスタックをアクセスしたた
めに発生したのかをチェックする方法が必要ですね。
<<<
と、仰っている件です。

 スタックを特別扱いする必要がなぜあるのかと考えたのですが、
 スタックのうち、書き込まれていない領域を読みだそうとしたら、エラーかな?ス
タックは連続した論理空間を使うと仮定してよい(不連続のページを使用することは
ない)と思いますが、いかがでしょう?

[プロセス内タスク]
 プロセス内タスクは、時間的に間に合わないアプリケーションのためだけではなく
、プログラミングの手軽さも捨て難いのではないでしょうか?(手軽に書けても堅牢
性を失っては困るが)
 それに、メモリの節約にもなると思います。

 もちろん、プロセス内タスクというのは、結局は ITRON のタスクのことです。

追伸:πさん、nyさん、1Bのローカルメモリ最大サイズのリンク時指定の件、解説
有難うございます。1Bプログラマはどんぶり勘定で指定しているのかしら?
 B−Freeでは、すべてのプロセスで等しくなりますね。