1.虚拟内存 看看我的理解对不对: 虚拟内存就是在win 32为系统下,每个进程都得到
4GB空间, 范围: xo00000000 - xoFFFFFFFF, 系统对这个虚拟地址再分区管理,当某个线程
要访问数据的时候,是不是先从系统页文件去访问,如果访问不到(也就是还没有提交给物理存储器),那么系统产生一个异常,然后然后就把该页面进行提交,然后跟虚拟内存地址相关联。其实应用
程序是不是都经过虚拟地址访问物理地址的,因为他们之间已经建立某种映射关系。  2.那么系统页文件是不是就是物理存储器,只不过是系统把物理存储器的各个地址使用文件的管理方式以页面的形式表现出来的。
      3.内存影射文件书上说物理存储器使用的是磁盘文件影射到进程的虚拟地址,所以他不使用系统页文件,那么这样如果要修改内存影射文件的数据时,要不要使用系统页文件。 还是那句系统页文件到底指的是什么??

解决方案 »

  1.   

    我是这样理解地..
    1.线程访问的时候,好象是先从物理的RAM开始访问,如果访问不到,则页面失效,
    如果系统找出一个未使用的或者已标记为未修改的RAM,则把虚拟内存,也就是硬盘内的页文件内的数据,复制到RAM,然后再访问。如果系统未找到上述的RAM,则系统把已占用的RAM,存放进页文件,再把页文件内的数据读出,然后再访问。
    2.页文件,我的理解就是硬盘里的虚拟内存
    3.当用磁盘文件映射的时候,则将文件直接映射到虚拟地址,如果改动,则有COPY-ON-WRITE,于是,就动用页文件来存放原来修改部分的备份
      

  2.   

    有本电子书:Undocumented Windows NT
    其中一章:Memory Management 讲的就是NT的内存管理,讲得比较明白
      

  3.   

    谢谢楼上各位! ysai 也来了。 跟dfw 那为是同一个吧! 久仰大名了。 呵呵。
      

  4.   

    今天有看了一遍, 感觉跟第一次有进步了。 主要是把那些名词理解好就可以了。
    1.系统页文件 应该是指虚拟内存, 页文件是磁盘文件。
    2.虚拟内存 是脂在磁盘驱动器上面分配的物理存储器
    3.进程虚拟地址空间 是每个进程都自己拥有的,由virtualAlloc进行管理保留和提交等操作。
    4.内存映射文件 是指映射到进程地址空间的磁盘文件的页文件
    5.物理存储器 包括磁盘驱动器和RAM 
    理解上面的名词之后对windows的内存管理应该就容易了。如果有错误,请各位指正,谢谢各位的参与。
      

  5.   

    今天有看了一遍, 感觉跟第一次有进步了。 主要是把那些名词理解好就可以了。
    1.系统页文件 应该是指虚拟内存, 页文件是磁盘文件。
    2.虚拟内存 是脂在磁盘驱动器上面分配的物理存储器
    3.进程虚拟地址空间 是每个进程都自己拥有的,由virtualAlloc进行管理保留和提交等操作。
    4.内存映射文件 是指映射到进程地址空间的磁盘文件的页文件
    5.物理存储器 包括磁盘驱动器和RAM 
    理解上面的名词之后对windows的内存管理应该就容易了。如果有错误,请各位指正,谢谢各位的参与。
    ------------------------------------------------------------------------------------
    windows的进程内存都是虚拟内存,每一个进程有4gb的虚拟空间,该虚拟空间根据使用的情况把页面上的内容切换到实际的ram中以及写回页面文件.物理内存实模式才可以访问.这个是cpu内核决定了的,页面文件也是cpu来分的,你如果需要了解的非常详细,你需要看的不是这本书,你可以看一下有一本叫做windows 2000/xp系统原理(好象这个哈,不好意思,太久远了,老搞忘),网上也有一些比较详细的内容介绍,你可以到汇编网上去看看.总之一句话,保护模式下的内存管理比较复杂,讲起来也不好懂,你自己研究吧,我也是以前兴趣比较广的时候看了点,后来就没什么兴趣了,其实满无聊的.
      

  6.   

    这问题,有潜力,看看牛人的回答。最近发现我连pascal都没完全搞明白,更可悲的是,甚至发现我永远也不可能完全彻底的搞明白。随着经验的增加等外在情况的变化,每次去看,每次都会有新的认识,致死方休。谁让咱做的这些东西,用的这些工具、平台都是别人弄的。永远跟在别人屁股后边。唉,也许这辈子都无法完全明白。
      

  7.   

    Win32下的用户程序,只有2GB虚拟内存~低2GB是用户态的
    高2GB是核心态的(可以访问低2GB的用户态空间)
      

  8.   

    你是乎把页的概念和虚拟内存的概念绞到一起去了,实际内存中也是分页的,而虚拟内存也不过是折腾这个页罢了.
    所谓4GB空间,指的是你的逻辑地址,
    说以
    1,首先访问的是物理内存上的页,不存在就到虚拟内存上去找,找到掉入,找不到,你就可以看到可爱的windows提示.
    2.系统页文件是存在磁盘上的文件
    3.直接隐射,当然不用在访问系统页文件了.
    ps .计算机上词语很乱,如果你看不懂最好找原版看.因为翻译过来的东西可能会误倒你.
      

  9.   

    谢谢楼上的: 
      所谓4GB空间,指的是你的逻辑地址, 从 $00000000 到 $FFFFFFFF 的空间
    当第一次装载EXE文件时, 其实EXE文件就是一个内存映射文件,默认的映射基
    地址就是$00400000, 说到映射到这个地址由virtualAlloc他来管理.  这个
    地址应该要跟RAM有一个映射关系,因为CPU只跟RAM打交道,当CPU要访问的不在
    RAM上时,就会引发一个异常,操作系统知道,然后操作系统进行协调,也就是进行
    页文件交换,如果RAM上没有空闲的页,那么就要进行页文件交换, 然后再进行提交
                                                 ==========
    RAM.注意上打下划线的是不是就是系统页文件了? 也就是在"我的电脑"右键"属性"到"高级"
    到虚拟内存那个吗?? (在WIN2000下的)