2013-08-21 150 views
0

所有,請原諒我,我的Windows驅動程序開發新手,看了this document from WDK後,我有件事情我不明白。虛擬地址空間

文件稱

虛擬地址範圍是提供給一個過程 呼籲進程的虛擬地址空間。每個用戶模式 進程都有其自己的專用虛擬地址空間。對於32位的 進程,虛擬地址空間通常是2千兆字節範圍 0x00000000到0x7FFFFFFF。對於64位進程,虛擬地址空間是8 TB範圍0x000'00000000到 0x7FF'FFFFFFFF。虛擬地址範圍有時稱爲虛擬內存範圍。

我關於它的問題是:

應該有它有8 GB的內存條的計算機。

  1. 所有的虛擬地址空間是否被這個 8-GB內存分配?
  2. 如果一個進程需要分配2g虛擬地址空間,我可以說如果系統中有4個進程正在運行。他們完全需要8GB的內存?如果答案是肯定的,這是否意味着在計算機中可以運行的最大進程數是4?

我不知道如果我誤解的東西。請糾正我。非常感謝。

+0

虛擬表示物理RAM的數量不會限制內存進程可以看到的數量。不適合物理RAM的數據存儲在硬盤上,內存根據需要自動分頁和分頁。即使「金額」相同,虛擬地址和物理RAM之間也不存在1:1映射。 –

+0

所有,我發現答案是[這裏](http://en.wikipedia.org/wiki/Virtual_memory),謝謝。 –

回答

1

1)任何的虛擬空間編輯部地址獨立於物理地址空間的。從OS管理的虛擬地址到物理地址有映射。因此,分配給進程的虛擬地址不依賴於系統中的物理內存。

2)否,再次虛擬地址是從物理地址分開。此外,Windows還支持虛擬內存,因此即使您沒有足夠的物理內存來保存所有進程,活動內存也可以分頁輸出到磁盤。