求助~~ 有关 windows内存管理,请问虚拟内存和页文件是什么关系? 谢谢

nanr_1122 2007-08-24 09:13:40
如题,在看 windows核心编程的 < 13.5物理存储器与页文件 > 节时,看不懂什么 关系?

"磁盘上的文件通常称为页文件,它包含了可供所
有进程使用的虚拟内存。"

主要是 这一句, 我的理解是 页文件就是说的我们设置 我的电脑-属性 里的那个虚拟内存在每个磁盘上的值, 不知道我理解的对不对?

一句话 , 页文件 虚拟内存 这两个东西是一样的吗? 指的同一东西?





书上原段:


13.5 物理存储器与页文件
在较老的操作系统中,物理存储器被视为
计算机拥有的R A M的容量。换句话说,如果计算机拥有1 6 M B的R A M,那么加载和运行的应用程序最多可以使用1 6 M B的R A M。\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\今天的操作
系统能够使得磁盘空间看上去就像内存一样。磁盘上的文件通常称为页文件,它包含了可供所
有进程使用的虚拟内存。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\当然,若要使虚拟内存能够运行,需要得到C P U本身的大量帮助。当一个线程试图访问一
个字节的内存时, C P U必须知道这个字节是在R A M中还是在磁盘上。
从应用程序的角度来看,页文件透明地增加了应用程序能够使用的R A M(即内存)的数
量。如果计算机拥有6 4 M B的R A M,同时在硬盘上有一个100 MB的页文件,那么运行的应用
程序就认为计算机总共拥有1 6 4 M B的R A M。
当然,实际上并不拥有1 6 4 M B的R A M。相反,操作系统与C P U相协调,共同将R A M的各
个部分保存到页文件中,当运行的应用程序需要时,再将页文件的各个部分重新加载到R A M。
由于页文件增加了应用程序可以使用的R A M的容量,因此页文件的使用是视情况而定的。如
果没有页文件,那么系统就认为只有较少的R A M可供应用程序使用。但是,我们鼓励用户使
用页文件,这样他们就能够运行更多的应用程序,并且这些应用程序能够对更大的数据集进行
操作。最好将物理存储器视为存储在磁盘驱动器(通常是硬盘驱动器)上的页文件中的数据。
这样,当一个应用程序通过调用Vi r t u a l A l l o c函数,将物理存储器提交给地址空间的一个区域时,
地址空间实际上是从硬盘上的一个文件中进行分配的。系统的页文件的大小是确定有多少物理
存储器可供应用程序使用时应该考虑的最重要的因素, R A M的容量则影响非常小。




谢谢大家`
...全文
204 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
feimingbiao 2007-08-24
  • 打赏
  • 举报
回复
所谓虚拟内存就是应用程序能看得到的内存,并不是真正的内存(所以叫虚拟),它的大小是操作系统定的,不受物理内存大小限制。比如在32位系统上,每个应用程序都能得到4G的内存。当然物理内存不可能这么大,不可能把所以虚拟内存里面的东西都放在物理内存里面,有些暂时不用的东西就存到硬盘上,Windows里面通常是存到一个叫pagefile.sys的文件里面,这大概就是你说的“页文件”。如果需要,再从pagefile.sys里面读到物理内存里面,这个过程就叫paging. 对于每个应用程序,它都感觉好像是自己在用整个4G的空间(虚拟空间)。
JerryHsiao 2007-08-24
  • 打赏
  • 举报
回复
个人理解:
页文件是实际存储的文件,我们设置的应该是页文件的大小,页文件大小表示的是实际可分配的虚拟内存大小,虚拟内存只是一个概念,表示可以被从硬盘中分出来当内存使唤的存储空间。
yjgx007 2007-08-24
  • 打赏
  • 举报
回复
虚拟内存可以在物理内存中分配,受物理内存大小limit, 也可以在磁盘上分配虚拟内存.

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧