windows 虚拟内存

虚拟内存的实现方法和过程:
(1) 当一个应用程序被启动时,操作系统就创建一个新的进程,被给每个进程分配2GB的虚拟地址(不是内存,只是地址)
(2) 虚拟内存管理器将应用程序的代码映射到那个那个应用程序的虚拟地址中的某个位置,并把当前所需要的代码读取到物理地址中(注意: 虚拟地址和应用程序代码的物理地址内存中的位置是没有关系的).
(3) 如果使用动态链接库DLL,DLL 也被映射到进程的虚拟地址空间,在需要的时候才会被读到物理内存。
(4) 其他项目(数据,堆栈等)的空间是从物理内存中分配的,并被映射到虚拟内存空间中。
(5) 应用程序通过使用他的虚拟地址空间中的地址开始执行,然后虚拟内存管理器把每次的内存访问映射到物理位置。
简单的说:
(1) 应用程序是不会直接访问物理地址的
(2) 虚拟内存管理器通过虚拟地址的访问请求,请控制所有的物理地址访问。
(3) 每个应用程序都是相互独立的4GB寻址空间,不同应用程序的地址空间是隔离。
(4) DLL程序没有自己的私有空间,他们总是被映射到其他程序的应用空间,作为其他应用程序的一部分运行。

 

posted @ 2012-12-07 10:29  小金马  阅读(200)  评论(0编辑  收藏  举报