虚拟内存与虚拟地址空间

2024-11-11 15:33:47
推荐回答(2个)
回答1:

windows下的虚拟内存指的是在硬盘上建一个文件,用来放置系统非活跃性内存数据或交换数据(怎么放,放多少由操作系统决定)
虚拟地址空间,指windows下每个进程的私有内存空间,大小是4G,能访问的是不到2G的空间,其余是系统保留的.这2G是能访问的,但并不是立即分配的,当进程使用多少时,才从物理内存中划分给它多少,划分的的方式是"映射",操作系统将虚拟内存的起始地址做个标记,标记成对应的物理内存的某个地址上.在这里,只有操作系统知道,进程是没有任何办法知道的,这是WINDOWS的高级内存管理机制决定的.物理内存的地址空间,只有操作系统才能访问(硬件驱动也可以,但已经属于系统低层了,进程是属于用户层)进程虚拟内存空间和物理内存空间的关系仅仅是看不见的映射关系.
虚拟内存通常只在系统物理内存用完时,才会使用到,但这个时候系统已经非常卡了.但也不是一点用处没有,非活跃性进程的部分数据,系统是完全可以放在虚拟内存中的,
以上基于32位Windows系统.64位的没去看过相关的资源,不清楚有没有变动.

回答2:

虚拟内存空间就是虚拟地址空间。在32位操作系统中,应用被分配到4GB的属于自己的虚拟地址空间(2GB给应用,2GB给操作系统)。因此每个进程都有2G的虚拟内存空间,空间大小只是寻址能力范围。