2012-11-16 61 views
0

我有一個問題,我似乎無法找到答案。將分離64位操作系統上的32位進程共享相同的地址空間?

我希望這將是一段一個簡單的答案,所以我想我會扔在這裏:

將在64位操作系統上運行的所有32位進程共享同一個4GB地址空間,或者每個32位進程都有獨立的4GB可尋址區域?

我知道一個32位進程只能解決2 字節,但這些是指向虛擬內存而不是物理內存的權利?或沒有? (我不是很確定事情是如何工作的)

我想知道我是否可以運行2個32位進程,每個內存4GB?

+0

取決於操作系統,但最有可能每個人都會在64位空間內獲得自己的單獨的32位空間塊 –

+0

我正在運行Linux – GP89

回答

0

這取決於很多事情,包括處理器和操作系統。

您可以擁有這兩種情況,您可以共享虛擬地址,並且可以從64位地址空間獲取片。我相信這是在Linux的處理器依賴,但我可能是錯的。對於32位應用程序,它們看起來好像全部共享相同的虛擬地址。

你的第二個問題,你可以訪問每個進程4GB?可能不會。內核通常有一個保留的內存空間(如果我沒有記錯,在Linux上爲1GB)。但假設你的問題是「每個進程都可以訪問3GB」,那麼答案是肯定的,假設你有足夠的物理內存。

相關問題