荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: kkboy (跟我去流浪), 信区: Microsoft
标  题: 理解Windows内存
发信站: 荔园晨风BBS站 (Sat May 18 23:28:39 2002), 转信

 内存的三种主要类型

  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才智能地分配物理内
存给它。

  如果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中的线性内存区域现在叫做系统区域。另外加入两个内存区域:

  私有内存区域,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。当应用程序的一个
部分一段时间不曾被用到时,这个部分能被丢弃,而需要到时候能被重新装载。





--
给我一次机会
我将要你心甘情愿地嫁给
我。。
☆★  ☆★
 ☆★   ☆★


※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.35.58]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店