1

質問 1 :- ブート プロセス中に、Linux はページ テーブルを作成します。ただし、新しいプロセスが実行されると、独自のページ テーブルも作成されます。これらの 2 つのテーブルの違いは何ですか?

質問 2 :- x86 arch では、Linux は明確に定義されたスキーム (ページ ディレクトリ、ページ テーブル エントリなどを含む) を使用して、線形アドレスを物理アドレスに変換します。プロセス アドレス空間 A に線形アドレス X があり、ページ テーブルを使用して変換すると物理アドレス Y に対応するとします。他のプロセス B にも、それ自身のアドレス空間に属する有効な線形アドレス X があります。プロセス B が X にアクセスしたい場合、X は再び同じ物理アドレス Y に対応するでしょうか?

4

2 に答える 2

3

質問 1:ページ テーブルは起動時にのみ作成されません。プロセスがフォークされるたびに、新しいページ テーブルが作成されます。新しいテーブルは、ブート時にカーネルによって設定されたテンプレートに従いますが、それぞれがプロセスごとに変更できる独立したデータ構造です。これらは一般に、各プロセスがそのプロセスのみがアクセスできる独自の作業メモリを持つことができるように異なります。

質問 2:いいえ。この動作は、ページングが最初に使用される理由の 1 つです。

于 2011-01-26T21:18:23.647 に答える
1

質問 1: 権限が異なります。

質問 2: いいえ。

宿題の簡単な答えを探しているだけでなく、本当に興味がある場合は、これもチェックしてみてください: http://duartes.org/gustavo/blog/post/how-the-kernel-manages-your-メモリー

于 2011-01-26T14:24:08.077 に答える