- 464 名前:名無しさん@お腹いっぱい。 [2012/03/07(水) 23:11:48.47 .net]
- 質問です。たとえば下記のようなソースがあったとき、
int val = 100; int* p = &val; if (fork()== 0) { // 子プロセス: *p = 50; : : } else if(pid > 0) { // 親プロセス: : : } 子プロセスで変数の値を変えても、親プロセスの同じ変数は変わりません。 valは同じアドレスなのに。 これはMMUがあるからプロセス空間を分けられているからだとおもいます。 でも古いUNIXではどうなんでしょうか? MMUがないころにどうやって上のような問題を解決していたのですか? またこれに関わるのかも知れませんが、古いUNIXのスワップ処理は プロセスまるごとDISKに吐き出していたのでしょうか?
|

|