Windows 95下“内存不足”的处理

Author: 钟原 Date: 1998年 第40期 36版

  故障现象:一台微机,配置为:Pentium 166 MMX CPU,16MB内存,1.2GB硬盘。工作一直正常,但近日发现在进入《中文之星2.97》之后,无法再进入WORD,给出的提示是:“内存不足,不能运行该程序”。此时也不能打开其它窗口,给出的提示是:“内存不足,不能打开该窗口”。
  故障分析及处理:
  1.开机自检,显示内存为16MB,用MEM检查内存容量为16MB,说明物理内存没有问题。
  2.用SYSEDIT检查WIN.INI文件,没有设置Load和Run项,说明启动系统时没有加载应用程序,因而也没有占用内存资源,检查Config.sys和Autoexec.bat文件也无错误。
  3.用多种杀毒工具检查内存和硬盘,均未发现病毒。
  4.在“控制面板/系统”中,检查系统资源使用情况,发现系统启动后可用资源为93%,在装入《中文之星》之后,可用资源为90%。此时仍不能进入WORD,说明并非由于系统资源堆占用过多而不能工作。
  5.如果启动系统之后立即进入WORD,可以正常工作。但是再进入《中文之星》仍然出现提示“内存不足,不能运行该程序”,此时也不能打开其它窗口。说明故障现象与应用程序和打开的窗口无关。
  6.经检查,该1.2GB硬盘分为C、D、E三个逻辑盘,C盘容量为500MB,但是已经几乎装满,剩下的可用空间仅为2.8MB。把C盘中的几个软件移至D盘,此时C盘的可用空间增加为20.5MB。再打开多个窗口并进入《中文之星》和WORD,均能够正常工作,故障排除。
  结论:出现“内存不足”的提示,大多数情况下是由于打开窗口过多,造成资源堆的可用空间不足所致。这种情况在Windows 3.1下比较常见,因为Windows 3.1只提供了四个64KB大小的内存块作为资源堆,如果打开过多的窗口,或者应用程序在退出运行时没有释放它所占用的资源,都将造成“内存不足”(实际上是指作为资源堆的内存块可用空间不足),因此不能运行其它程序。而在Windows 95中,为了避免“内存不足”的问题,作了进一步的改进,一是向用户程序提供了更多用于资源堆的内存块,以供给更大的应用程序使用。二是提供了防止应用程序在退出后不能回收资源的功能。在Windows 95中使用了一种称为“线程”的机构来管理分配的资源,每一个应用程序在“线程”中都有一记录,记录了该应用程序占用资源的情况。这样,当一个应用程序中止(非正常中止或者正常退出)时,Windows 95就能够回收它所占用的全部资源。因此,在Windows 95环境下出现“内存不足”的现象时,很少是真正由于资源堆空间耗尽而造成的。由于每一个应用程序在工作时,不仅要求有足够的内存空间,而且还要有一定的硬盘空间作为虚拟存储器来存放一些临时文件,通常这些临时文件都建立在该应用程序同一个磁盘上,在退出该程序时,自动删除。如果硬盘中没有足够的运行空间,应用程序是不能正常工作的。本文分析处理的故障,即是由于C盘可用空间不足所致,在这种情况下,系统给出的出错提示仍然是“内存不足”。