能力值:
( LV12,RANK:340 )
|
-
-
2 楼
你可以这么理解,每个32位进程的虚拟地址空间都是从0x00000000 ~ 0xFFFFFFFF共4G。
一般高2G属于内核领空,这里不考虑。
剩下的空间按照4KB分一个页。如果进程的某个页被使用或者说被映射。那么这个页就有对应的物理内存页。
否则就没有,那么这个页的虚拟地址空间就是无效的。
malloc分配成功的内存页肯定是有效的。所以肯定占用物理内存页,但是该内存页如果长时间未使用,就可能被系统置换到虚拟内存页面文件中去,然后对应的物理内存页就空闲出来,可以分配给别的进程使用。
如果该进程再次访问这个虚拟地址空间,系统就会发现对应的页在页面文件。然后再置换回来。
简而言之,只要虚拟内存页是有效的(图中未标记未映射的),就占用空间。
|
|
|