2015-10-28 17 views
5

私はメモリ管理関連のトピックを勉強してきました。私はそれを正しく理解したかどうか、思ったんだけど:仮想アドレスはプロセス固有ですか?

  • ポインタ(仮想)アドレスは、特定のプロセスと同じアドレスを持つポインタを持つことができます
  • 異なるプロセスであるが、これらのポインタは、異なる物理アドレス
  • に変換されます

私はこれらの記述について正しいですか?はいの場合は、アーキテクチャx86、x86-64、ARMv7、ARMv8に適用されますか?

を除くまあ
+0

[プロセス](https://en.wikipedia.org/wiki/Process_%28computing%29)、[仮想メモリ](https://en.wikipedia.org/wiki/Virtual_memory)に関連するウィキペディアを読んだことがありますか? )、[仮想アドレス空間](https://en.wikipedia.org/wiki/Virtual_address_space)....? –

+0

@BasileStarynkevitchまあ、それらのすべてではありません。しかし、私はそれを正しく理解しているかどうかはわかりません。答えを見て、どちらも反対のことを言っています。そして誰かが質問に答えたら、彼/彼女は彼/彼女がトピックを知っていると主張する。だから我々は今2つの真実を持っている: – kravemir

答えて

8

異なるプロセスが同じアドレスを持つポインタを持つことができますが、これはもちろん、異なるプロセス一般的なケースである一方、これらのポインタは、異なる物理アドレス

に変換されますはマップされたページを共有することができます(共有メモリを調べる)。は、ページが仮想アドレス空間の同じ場所にマップされている場合、同じデータを指すことができます。

はい、それは正しい理解です。

+3

また、共有メモリは異なるプロセスで異なるアドレスにマッピングされる可能性があります。 –

+0

確かに、そうかもしれませんが、する必要はありません。例えば共有ライブラリのマッピング...言葉を改善します。 –

+0

ありがとうございます。したがって、文の修正はほとんどありません:**翻訳されるかもしれません:) – kravemir

関連する問題