0

スタックとヒープの衝突は、両方を別のセグメントに入れるだけで防ぐことができたと思います。そのように実装されなかった理由は何ですか?

4

1 に答える 1

0

コンパイラは、オペレーティング システムの ABI に準拠するコードを生成します。したがって、コンパイラのメモリ モデルは、実際にはオペレーティング システムのメモリ モデルに従います。Linux、*BSD、またはコード/データ/スタック セグメントが重複するフラットな VA を持つその他の OS について質問している場合は、そのようにプログラムする方が簡単で、メモリ管理が大幅に簡素化されます。ヒープ スタックの衝突を防止できることは、メモリ管理の容易さの点で OS が失うものに対して小さすぎます (フラットな VA の管理はすでに十分に複雑です)。

OS/2 に何が起こったのか見てみましょう - プロテクト モードでフル セグメンテーションを使用していました...

于 2012-05-07T21:49:13.380 に答える