プロセス記述のLinuxの仮想アドレス空間

仮想メモリの概念は、オペレーティング・システムは、仮想アドレス空間と呼ばれる各プロセスのメモリのまったく同じビュー、ビューのメモリアドレス空間を提供します。

各プロセス、メモリの観点から、メモリは、排他的に存在するプロセスであり、すなわち唯一のオペレーティング・システム・カーネルと本発明の方法があります。

Linuxプロセスの仮想アドレス空間

ビュー憧れの点から、処理コードとデータ領域、ヒープデータ領域に、リザーバ領域、スタック領域、カーネルメモリ領域を共有しました。

プロセス・コードとデータ領域

二つの部分は、プログラム及びデータを含むアドレスコードの下部に分割されている領域にロードされ、実行可能プログラムファイルの内容は、読み取り専用、読み取り専用の部分を、読み取り、データを書き込むための別の記憶領域であるため、実行可能ファイルであってもよいです
読書と面積を書きます。

この領域は、オフセットアドレスを持つ、アドレス0から始まるされていません。

ヒープデータ領域

領域のすなわちヒープ領域ヒープデータ領域、Cプログラムで、割り当てと割り当て解除mallocfree行います。上位アドレス方向に下から連続して延びる領域の地域分布として。

シェア貯水池

即ち、Cワードために、ライブラリメモリマップ領域を共有し、そしてオブジェクトコードライブラリprintf関数を領域にロードされるように。

領域の開始アドレスは固定されており、高いアドレスを延びています。

スタック領域

スタックゾーン、動作手順、領域内に位置するスタックによって生成された関数呼び出し。

生成機能を有する固定領域(カーネルメモリ領域の隣)の開始アドレスは、下位アドレスと上位アドレスから連続して延びる領域において、スタックと呼ばれます。

カーネルメモリ領域。

最上位アドレスのアドレス空間の仮想アドレス空間内のカーネル仮想メモリ領域。プロセスは、ユーザ領域にアクセスすることはできません。

おすすめ

転載: www.cnblogs.com/haiiiiiyun/p/12532759.html