仮想メモリ管理ケースの分析

仮想メモリ管理ケースの分析

仮想メモリの概念を理解する必要があります。

Linux環境では、あるプロセスが4 GBの仮想メモリにマップされた2 GBを要求した場合(1 GBカーネル:3 GBのユーザースペース)、別のプロセスはすでに2 GBのマップを持っています。

スタック、ヒープ、およびデータセグメントのマッピングはどのように発生しますか?私の理解を説明する例が見つかりません。教科書では各マッピングについて個別に言及し、実際の方法については言及しません。

答え1

3GiBの利用可能な仮想アドレス空間があり、プロセスのテキスト、スタック、ヒープ、および以前のメモリマップが一緒に少量のアドレス空間(1GiBよりはるかに少ない)しか占有していないとします。その後、このプロセスが2 GBのサイズの地図を要求しても問題はなく、地図を収容するのに十分なスペースがあります。

(実際にはこれが事実ではない小さな場合があります。プロセスの既存のマッピングが断片化され、アドレス空間の周りに散在していない場合続けて利用可能なアドレス範囲は2GBです。しかし、その可能性は低いです。)

他のプロセスのアドレス空間にどのマッピングが存在するか存在しないことは重要ではありません。

関連情報