2012-01-24 12 views
0

私は仮想メモリについて読みました。私には疑問があります.PとQの2つのプロセスがあるとします。どちらも同じ仮想メモリアドレッシングを持ちます。彼らはどちらもページテーブルを持っています。システム全体のページテーブルを使用する場合、これらの2つのプロセスはRAM上でどのように区別されますか?仮想メモリ内の2つのプロセス

+0

仮想アドレス空間を意味しますか? –

+1

google for MMU! –

+0

プロセスIDは? – Kevin

答えて

1

各プロセスには、物理​​メモリへのマッピングを持つ仮想アドレス空間がありますが、通常はディスクに仮想化することもできます。

0

システムワイドページテーブルが常に使用されている場合は、仮想マッピングが1つしかないため、2つのプロセスが互いのメモリを処理するため、動作できません。

* nixシステムただし、プロセスごとに1つのページテーブル(単純に言います)を保持し、カーネルがプロセスの実行をスケジュールするときにそれらを切り替えます。そうすれば、各プロセスは異なる物理アドレスにマッピングされた同じ仮想アドレスを持つことができ、問題はありません。

1

仮想アドレスがユーザーとカーネル空間に分割されているためです。起動プロセスが開始されると、ページングユニットが有効になり、突然カーネル空間の仮想アドレスにジャンプし、最後に制御をユーザ空間に渡します。システムワイドページテーブルはカーネル用で、各プロセスには独自のページテーブルがあります。

カーネルに実行されるとき、カーネルページテーブルを使用し、ユーザーにスイッチバックされると、ユーザープロセスページテーブルを使用します。

各プロセスには独自のページテーブルがあり、したがって2つのプロセスを区別します。

関連する問題