真鍋さんと同じく、わたしも「局所変数」を他のタスクと共有できなくてよいと考
えています。
隆一さんが言われる、再帰呼び出しや再入の問題とタスク間での共有とはまったく
異なる話ではありませんか?
下記のプログラムで、proc1とproc2では、proc2がアクセスするのは意味のないデ
ータでしょう。
int *share_data;
main()
{
proc1();
proc2();
}
proc1 ()
{
int data[2];
data[0] = 1;
data[1] = 2;
share_data = data;
}
proc2 ()
{
printf ("data[0] = %d\n", share_data[0]);
printf ("data[1] = %d\n", share_data[1]);
}
「タスク間でスタックの中身を共有できない」という仕様にしましょう。ただ、禁
止=検出(エラーチェック)は不可能かな?
[プロセスの生成とメモリ]
プロセスを生成するときには、新しい論理空間を割り当てます。(管理情報作成)
プロセス管理がオブジェクトファイルをオープンする。
タスク生成もプロセス管理? (TCB作成)
タスクにリージョン割り当て。
もし、すでに動いているプログラムであれば、コードリージョンを共有する。
新規のプログラムなら、コード部に実メモリを割り当てて、ロードする。
TCBに、リージョン情報と、自タスクが属するプロセス情報(IDなど)が必要
ですね。