2011-01-25 6 views
0

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

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

+2

"2つの質問を1つにする"ではなく、2つの異なる質問をするように編集してください。 – Arafangion

+1

これは宿題とほとんど同じですね。 – knittl

+0

@knittl:おそらく、私はここでの答えは "先生"が望んでいたものをはるかに超え、おそらくクラスノートを契約するかもしれないと思う。 (「Linuxは明確なスキームを使用していますか?ただ一つですか?これは最近変更されていませんでしたか?」 – Arafangion

答えて

2

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

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

関連する問題