虛擬空間定義 虛擬內存與虛擬地址空間有什么聯系?
虛擬內存與虛擬地址空間有什么聯系?1. Windows中的虛擬內存是指在硬盤上創(chuàng)建一個文件,用于放置非活動內存數據或交換數據(如何放置和放置多少由操作系統決定)。2. 虛擬地址空間是指windows下
虛擬內存與虛擬地址空間有什么聯系?
1. Windows中的虛擬內存是指在硬盤上創(chuàng)建一個文件,用于放置非活動內存數據或交換數據(如何放置和放置多少由操作系統決定)。
2. 虛擬地址空間是指windows下每個進程的私有內存空間。大小為4G,可訪問空間小于2G,其余由系統預留。這個2G是可訪問的,但不會立即分配。當進程使用多少時,它就從物理內存中分離出來。劃分的方法是“映射”。操作系統設置虛擬內存的起始地址,并將其標記為相應物理內存的地址。在這里,只有操作系統知道,而進程沒有辦法知道。
3. 這是由windows的高級內存管理機制決定的。物理內存的地址空間只能由操作系統訪問(也可以使用硬件驅動程序,但它已經屬于系統的較低層,進程屬于用戶層)。進程的虛擬內存空間和物理內存空間之間的關系只是一種不可見的映射關系。
4. 虛擬內存通常只在系統的物理內存用完時才使用,但此時系統非常卡住。但也不是沒用。系統完全可以將非活動進程的一些數據放入虛擬內存中。
5. 以上是基于32位windows系統。64位。我還沒有看到相關的資源。我不知道有沒有變化。
32位CPU可尋址的最大虛擬空間是什么?
理論上,它是2的32字節(jié),即4G。
編程時,在32位CPU下,單個進程可以應用的最大內存默認為2G,剩余2G作為系統保留給內核。同時,操作系統也有相應的開關,將最大內存增加到3G。以上也是開發(fā)過程中最讓人費解的一點。