荔园在线

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

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


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

什么是自由内存

  Windows3.1x程序管理器显示一个叫做自由内存的数值。要看这个数值,你可
以从程序管理器中的帮助菜单选择AboutWindows。不幸的是, 自由内存的数量与
我们前面讨论的东西并不直接相关。自由内存大约是以下内存的和:

可使用的物理内存
虚拟内存交换文件的没使用部分
可弃内存
  一些Windows应用程序需要它们分配(或预订)的线性内存(或房间)即时与物理
内存关联。它们或许还需要给它们的物理内存永远不被交换到虚拟内存交换文件。
这通常是为了性能的原因,有时是因为内存的内容被即时用于处理一些外部事件。
例如,如果你通过modem连接到一个在线服务,例如你的因特网服务提供商(ISP),
你不会希望这部分处理通信的程序交换到磁盘。如果这发生了,把磁盘读回物理内
存或许会用很长时间,在这期间一些信息或许会丢失。

  锁定内存

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

  可弃内存

  Windows3.1x和Windows95/98应用程序被分为多个叫做段的小部分。组成一个
Windows应用程序的各个段的大小和内容是不同的,它们主要被开发这个程序的程
序员指定了。

  为了给286系统提供内存管理,也为了处理没有足够磁盘空间给虚拟内存交换
文件的情况,Windows使用下面辅助的内存管理方案:

  当Windows应用程序开发时,作为开发过程的一部分,程序员必须指出,是否
组成Windows应用程序的每一个段是可弃的。当Windows用完了物理内存和交换文件
中可用的虚拟内存时, Windows就搜索标记为可弃的应用程序段。然后被这些可弃
段占用的线性内存范围就被完全释放,而线性内存段的内容就被丢弃了。

  当Windows决定丢弃什么段时,它不考虑一个段是不是‘最长时间没使用’。
而且即使Windows仅仅需要附加4K内存,它也丢弃整个段(这个段或者有64K大)。当
可弃段的内容又被需要时, 它们被从包含整个应用程序的.EXE或.DLL文件中重新
装载。因为Windows不考虑可弃段被重新需要的可能性,可弃段不久又被需要的可
能性增加了。





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


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


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

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