相信大家的Windows 都曾遇到“莫名其妙”的“蓝屏”,并提示“致命的异常错误0E发生在......”,使其它正在运行的软件被迫中断,给自己带来很大的损失和麻烦,而自己又不知是何原因、如何排除,因此非常烦恼。下面我们就来分析一下其中的原因,并尽量找出适当的对策。
要弄清楚出错原因,得从Windows 对内存的管理和使用谈起。我们知道,Windows 是32位操作系统,对内存具有位寻址能力,可以发挥80386以上CPU所具有的保护模式功能,为每个应用程序提供独立的4GB地址空间,但事实上,这远远超过了目前大部分PC机的内存容量,这就造成了有4GB地址空间,而无真正物理内存与之对应的问题。于是,Windows 便利用CPU的虚拟内存能力,把硬盘的一部分当作内存(硬盘交换文件)来使用,即通常所说的虚拟内存(见图)。现在很多用户配置的硬盘容量一般都较大,这下似乎有了用不完的内存,不会发生内存不够的情况了。其实不然,首先,能作虚拟内存的必须是硬盘上的空余空间,而且这些被分若干块的空间连续长度必须是512K的整数倍,才能被用作虚拟内存;第二,CPU在RAM存取数据的速度远远快于RAM与硬盘交换数据的速度。这样,有时就会发生应用程序存取当前不在RAM中而在交换文件中数据的情况,这时,CPU就会产生异常错误0E(也称为页面异常),但此时屏幕上不会有任何提示,Windows 尝试继续运行,只有当应用程序存取数据的地址或者将要跳转到的地址根本就没有分配RAM或虚拟内存时(即出现页面无效),Windows 才显示“异常错误发生......”,这下它真不行了,提示用户中止程序运行。
引起该错误的原因很多,相应有不同的处理方法:
1.CPU超频。这是最近很多人电脑发生上述故障的一个重要原因。超频提高了CPU的工作频率,同时也使其性能变得不稳定,尤其是在炎热的夏季,这个问题暴露得更加明显。究其原因,CPU在RAM存取数据的速度本来就快于RAM与硬盘交换数据的速度,超频使这种矛盾更加突出,同时由于气温升高,构成CPU等电子元器件材料的指标参数也发生微妙变化,加剧了在RAM或虚拟内存中找不到需要数据的情况,这样就会出现“异常错误”。解决办法:降低频率,使CPU工作在规定的正常频率,同时使用“降温”软件,清扫CPU风扇等。
2.硬盘剩余空间太少或碎片太多。前面已经谈到,硬盘上能作虚拟内存的必须是自由空间,而且空间连续长度必须是512K的整数倍。如果你的硬盘还只有几百MB,出现“异常错误”与此很可能有关,当然,就算硬盘容量再大,隔一段时间进行一次碎片整理也是非常必要的。
3.Windows启动的程序过多。系统资源消耗殆尽,使个别程序需要的数据在内存或虚拟内存中找不到,也会出现异常错误。解决办法:不要同时启动过多的程序,一个简单的监测方法是,随时打开Windows各窗口上“帮助”→“关于...”,看系统资源还剩多少,低于60%就应该小心了,不要再启动新的程序、打开新的窗口了。万一因此发生“异常错误”,只需重新启动系统就正常了。顺便说一句,有的朋友喜欢“Shift 重新启动计算机”,虽然重新启动的速度较快,但系统资源并不能完全释放,所以本人建议大家还是以正常方式重新启动计算机。
4.系统冲突。经常遇到的是由于声卡或显卡的设置冲突,引起异常错误。此外,其它设备的中断、DMA或端口出现冲突的话,可能导致少数驱动程序产生异常,甚至无法正常启动Windows 。解决办法:以“安全模式”启动,在“控制面板→系统→设备管理”中进行适当调整,一般可以解决。对于在驱动程序中产生异常错误的情况,可以修改注册表。选择“开始/运行”,键入“Regedit”,进入注册表编辑器,通过菜单下的“查找”功能,找到并删除与驱动程序前缀字符串相关的所有“主键”和“键值”,重新启动。
5.程序设计问题。部分程序在编制时内存分配不合理(Windows的Bug都不少),完成后又未经过严格测试,在特殊的运行条件下就会因找不到内存分配地址而频频出错。还有,编制时考虑不周,程序只适用于特殊型号、种类的硬件,如果遇到其它硬件时也会出错。顺便说一句,一些盗版软件因解密过程中破坏、丢失了部分源代码,也常常导致“异常错误”的发生。因此,还是用正版软件的好,以免前功尽弃。
6.版本冲突。多数应用程序都要调用特定版本的动态链接库DLL或者OLE组件,如果在安装某个软件时,旧版本的DLL覆盖了新版本的DLL,或者删除应用程序时,误删了有用的DLL文件,就可能使上述调用失败,从而引起“异常错误”。遇到这种情况,解决的办法,自然就是找到新版文件。“找”的方法较多,可以直接从光盘上某个软件中、游戏中拷贝,或者用Windows (包括OSR2版)光盘中的Extract这个小工具,直接从CAB压缩文档找到并解压出所需文件。
7.注册表错误。注册表是Windows 的“命根子”,其中保存有Windows 及应用程序的重要数据,即使是哪个细小地方出了问题,都很可能引发“致命异常错误”的发生,甚至可能引起系统崩溃。因此,在你估计到操作可能引起它的变动以前(如安装一个新软件),先对其进行备份是很有必要的,一旦发生错误,可以恢复注册表,否则,要么请专业人士修复注册表,要么重新安装Windows 及你的其它程序,那麻烦就真的有点大了。
8.软硬件不兼容。常遇到的是,BIOS或驱动程序太旧,以致不能很好支持硬件,导致“异常错误”的发生。如果你的主板支持BIOS升级,尽量升级到最新版本,同样,尽量找到与你设备配套的最新的设备驱动程序,也可以减少错误的发生。
9.BIOS设置。众所周知,是否正确设置BIOS,是电脑能否正常运行的关键。其中硬盘及内存等的参数设置尤为重要,弄不好,就有可能出现程序存取数据失败,而导致“异常错误”的发生。其实,现在多数主板BIOS有“硬盘实用程序”一项,它可以检测并存储硬盘的各项参数,通常使用这些检测值是安全的。但对于较老的硬盘,有必要对一些较新的设置进行屏蔽(如硬盘的32位模式等)。至于内存,要注意一、二级缓存以及影子内存的设置。实在有困难,对于BIOS的设置,可以请行家帮忙,这样,不仅正确,而且可能更加优化。
10.硬件老化或存在故障。如现在有人还在用的540M硬盘,其转速仅为3600转/分钟左右,假如用在PⅢ、PC133 SDRAM、133外频主板这样的配置上,快马拉破车,出现“异常错误”的可能性自然较大。此外,少数不法商人在给顾客组装兼容机时,使用质量低劣的板卡、内存,有的甚至出售冒牌主板和Remark过的CPU、内存,这样的机器在运行Windows 9x时很不稳定,发生“异常致命错误”在所难免。因此,用户购机时应擦亮自己的眼睛,最好带个内行参谋,并用一些较新的工具软件(如Hwinfo、Norton等)测试电脑,长时间连续烤机(如72小时),以及争取尽量长的保修时间等。
从上面可以看出,Windows 发生异常错误的原因的确是多种多样的,上面不一定已经列举完了,各自的解决办法也有所不同。实际当中,有时候,如果真要弄清此类故障的“来龙去脉”,其实是比较困难的,遇到这种情况,除了上面谈到的各种相关解决方法外,可以试试重装软件,甚至重装系统,如果仍然时常发生“异常错误”,可能你应该与软件设计者,或者硬件经销商联系了。