当前位置:操作系统 > Windows Xp >>

理解Windows内存

内存的三种主要类型

  Windows内存分为三种主要类型:
物理内存虚拟内存线性内存
  物理内存

  物理内存,也叫RandomAccessMemory(RAM),是安装在小块SIMM或DIMM板上的所有RAM芯片的总量。RAM之所以叫随机存取,是因为下一位信息能用相同的时间来定位,而不管它在RAM的哪个地方。这意味着从RAM记忆中存取信息非常快。另一方面,RAM是易变的,这就是说,如果你关掉电脑或遇到电力中断,临时存储在RAM里面的信息就会丢失。
  物理内存是电脑,软件和信息的快速的临时的活跃的工作场所。当你要保存信息时,RAM中的信息被拷贝到一个更长久储存形式(一个3.5英寸软盘,一个硬盘, 一个ZIP驱动器,一个磁带盒,等等)。
  Windows怎样使用物理内存

  物理内存是电脑的主要内存,电脑在那里临时放置信息的拷贝,因此你能地使用这些信息工作。当你启动Windows时,部分Windows软件被拷贝到内存, 因此Windows能在屏幕上显示信息,能对你在输入设备(如键盘和鼠标)上的活动作出反应。
  Windows控制你的电脑的一部分物理内存,当你运行Windows应用程序时,Windows为其提供分配内存块的内存管理方案。当你使用应用程序时, 它们需要被拷贝到物理内存,你正在使用的文档部分(展开表,图象,声音,等等)也一样需要被拷贝到物理内存。例如,如果你打开一个展开表文档,Windows就拷贝展开表应用程序到RAM, 然后应用程序拷贝这个文档到RAM。如果你在展开表里重新计算数值,那么应用程序执行计算并把结果临时放在RAM里。如果你保存结果,那么应用程序从RAM拷贝信息到一个你指定的软盘或硬盘。
  与内存不同,磁盘是一个更长久的存储介质,因为当驱动器的电力中断时它们包含的信息还保留着。
  虚拟内存

  当一个Windows应用程序需要内存时,Windows分配所谓的线性内存给应用程序。Windows依赖于有多少可用的物理内存而以物理内存或虚拟内存‘填充’一个应用程序的线性内存。虚拟内存实际上是Windows以交换文件的形式保留在你的系统硬盘上的硬盘存储空间。

  在Windows3.1x中的虚拟内存

  当你第一次安装Windows时,或当你在控制面板的虚拟内存对话框改变设置时,Windows就创建了虚拟内存。这部分硬盘空间之所以叫虚拟内存,是因为Windows使用这部分硬盘空间来存储没被使用的部分物理内存 (RAM)。这就允许Windows运行,存储的信息和应用程序比你的电脑的所有物理内存所能放进的更多。
  这种让Windows临时和自动移动部分内存到磁盘的方法的好处是,应用程序能指望Windows供给它们所需要的内存。让Windows照顾内存管理问题, 包括虚拟内存,会给PC尽可能好的性能。
  Windows95/98中的虚拟内存

  在Windows95/98中,虚拟内存交换文件是动态的。这就是说,依赖于你用电脑干什么,交换文件会变大或变小。如果你使用Windows95/98, 你可能不需要如同在Windows3.1x那样选择虚拟内存设置。相反,你可以让Windows95/98的智能系统为你缺省配置虚拟内存。如果你技术先进, 在Windows95/98中你仍然可以自己配置虚拟内存,如果你喜欢的话。
  线性内存

  内存的三种类型中,线性内存是最难理解的。线性内存是人为的内存,它仅含糊地相关于另外两种内存类型(物理内存和虚拟内存)。
  在Windows3.1x中的线性内存

  当你启动Windows时,Windows通过它可用的自由物理内存(RAM)乘以4来决定线性内存(或乘以SYSTEM.INI文件的PageOverCommit设置定义的任意数值, 例如,如果这个设置是:PageOverCommit=5,那么就用5乘自由内存)。
  线性内存=自由RAM′4(或PageOverCommit=#)
  在这个计算中Windows使用的自由物理内存很可能少于你的RAM的总量,因为有使用常规内存和扩展内存的DOS应用程序。在Windows的运行期间, 这个数目(4乘自由RAM)就是所有Windows下运行的应用程序,甚至Windows下运行的DOS应用程序(在一个MS-DOS命令窗口)所能用的最大线性内存。
  每当一个应用程序向Windows申请内存时,Windows就给它一部分线性内存范围。当Windows分配线性内存给一个应用程序时,没有物理内存被初始关联到这个线性内存范围.当应用程序实际需要使用物理内存时, Windows才智能地分配物理内存给它。


   本篇文章共4页,此页为首页   下一页



  如果RAM在一个应用程序需要使用它时是可用的话,Windows就用RAM填充应用程序的线性内存范围。如果没有RAM是可用的话,Windows就搜索所有其他有RAM关联的应用程序的线性内存范围。Windows取出最长时间没使用的且分配有RAM的线性内存范围, 把RAM的内容写到虚拟内存交换文件(以备后用),然后重新分配此RAM给新的范围,把旧的较少使用的范围标记为空。如果那些放置到虚拟内存交换文件里的旧信息又被需要的话, Windows就重做这整个过程,重新分配线性内存范围到磁盘。
  这个过程甚至施行到你的DOS应用程序。每次当你打开一个Windows里的DOS提示符窗口时,一个(大约)640K的线性内存块就被分配给它。然而如果你运行一个只需要使用这640K中的250K的DOS应用程序, 那么Windows只需要分配250KRAM给DOS提示符窗口。
  因此物理内存是RAM,线性内存可以想象成房间。线性内存是放置Windows应用程序使用的RAM的空间。
  线性内存概括

  线性内存是应用程序运行的空间(或房间),而物理内存是需要时分配到此空间的能使用的建筑材料。
  或者考虑另外一个比喻。当你出去度假时,你或许向旅店预订房间。当你这样做时,旅店用你的名字保留一个房间,但是只有你到达他们的前台时,房间的钥匙才会给你。如果你实际上没来的话, 旅店或许会把为你保留的房间给另一个到来的顾客用。因此旅店房间的预订的就像Windows—两者都负责分配‘房间’。当你向旅店预订房间时,这就像Windows应用程序在实际需要使用RAM前就申请RAM一样。当你在旅店的前台登记时, 这就像Windows应用程序试图访问分配给它的线性内存范围。当你登记时,旅店就从可用的房间之中选一间给你住。当Windows应用程序想访问其线性内存时, Windows就意识到并试图提供物理内存给应用程序(即给它RAM房间的钥匙)去处理眼前的任务。
  Windows95/98中的线性内存

  在Windows95/98中的线性内存模式由三部分组成而不是一部分。原来在Widows3.1x中的线性内存区域现在叫做系统区域。另外加入两个内存区域:
计算机教程理解Windows内存来自www.itwen.comIT WEN计算机教程网

  私有内存区域,Windows32位应用程序就在这里运行
  共享内存区域,内存映射文件驻留在这里,Windows32位应用程序相互之间在这里共享信息,Windows32位应用程序与Windows 16位应用程序也在这里共享信息。
  不必担心Windows95/98提供三个线性内存范围而不是一个。线性内存仍然只是房间—在Windows95/98中只是有更多的房间,并且没有必要设置PageOverCommit, 因为Windows95/98能动态地生成它的线性内存地址范围,几乎高达386处理器结构的完全4GB(gigabyte)容量。这意味着Windows 95/98不会用完线性内存。因此如果你使用Windows95/98,你不必担心线性内存的使用。它仍然只是房间,只有当Windows分配物理内存(RAM) 给线性内存的一段范围时它才能使用。如果你用完了RAM,你仍然需要保存某些RAM中的东西到磁盘(即你应该保存自你最后一次保存后做过改动的文档)。一当你保存了这些改动, Windows就能使用RAM去填充某些另外的房间。
  内存映射文件

  内存映射文件的概念简单而优美。一个内存映射文件只是一个文件,它的整个长度已经被分配了线性内存(房间)。当一个应用程序访问分配到此文件的任意一部分线性内存时, 此文件的相应部分被读入内存,而RAM被放在这个应用程序访问的线性内存地址。
  如果需要RAM的话,Windows能分辨这个文件区域是否被改动,如果没改动的话,它能完全扔掉RAM的内容,它知道信息仍然存储在磁盘上。如果文件区域已经被改动的话, 那么在RAM被重新使用之前RAM的内容被写到这个文件。对于应用程序文件,这使得事情简单了。Windows仅仅分配线性内存给整个应用程序,然后开始执行它。当应用程序的各个部分被需要时, 它们就被装进RAM。当应用程序的一个部分一段时间不曾被用到时,这个部分能被丢弃,而需要到时候能被重新装载。
  什么是自由内存

  Windows3.1x程序管理器显示一个叫做自由内存的数值。要看这个数值,你可以从程序管理器中的帮助菜单选择AboutWindows。不幸的是, 自由内存的数量与我们前面讨论的东西并不直接相关。自由内存大约是以下内存的和:可使用的物理内存虚拟内存交换文件的没使用部分可弃内存
  一些Windows应用程序需要它们分配(或预订)的线性内存(或房间)即时与物理内存关联。它们或许还需要给它们的物理内存永远不被交换到虚拟内存交换文件。这通常是为了性能的原因,有时是因为内存的内容被即时用于处理一些外部事件。例如,如果你通过modem连接到一个在线服务,例如你的因特网服务提供商(ISP),你不会希望这部分处理通信的程序交换到磁盘。如果这发生了,把磁盘读回物理内存或许会用很长时间,在这期间一些信息或许会丢失。

   本篇文章共4页,此页为第2 页   上一页   下一页


  


  锁定内存

  为了防止类似上述的问题,例如时间敏感的信息被意外地丢失或延迟,Windows允许应用程序锁定线性内存的范围。这迫使物理内存(RAM)即时关联到线性内存范围,并防止线性内存范围被交换到虚拟内存交换文件(房间被锁住了,所以RAM不能走出),即使物理内存没被使用一些时间。当你退出一个锁定了一段线性内存范围的应用程序时,或者当应用程序

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,