知识重点:软件故障的原因软件发生故障的原因有几个,丢失文件、文件版本不匹配、内存冲突、内存耗尽,具体的情况不同,也许只因为运行了一个特定的软件,也许很严重,类似于一个的系统级故障。
软件故障的原因
软件发生故障的原因有几个,丢失文件、文件版本不匹配、内存冲突、内存耗尽,具体的情况不同,也许只因为运行了一个特定的软件,也许很严重,类似于一个的系统级故障。
为了避免这种错误的出现,我们可以仔细研究一下每种情况发生的原因,看看怎样检测和避免。 丢失文件 你每次启动计算机和运行程序的时候,都会牵扯到上百个文件,绝大多数文件是一些虚拟驱动程序virtual device drivers (VxD),和应用程序非常依赖的动态链接库dynamic link library (DLL)。VXD允许多个应用程序同时访问同一个硬件并保证不会引起冲突,DLL则是一些独立于程序、单独以文件形式保存的可执行子程序,它们只有在需要的时候才会调入内存,可以更有效地使用内存。当这两类文件被删除或者损坏了,依赖于它们的设备和文件就不能正常工作。
要检测一个丢失的启动文件,可以在启动PC的时候观察屏幕,丢失的文件会显示一个“不能找到某个设备文件”的信息和该文件的文件名、位置,你会被要求按键继续启动进程。 造成类似这种启动错误信息的绝大多数原因是没有正确使用卸载软件。如果你有一个在WINDOWS启动后自动运行的程序如Norton Utilities、 Nuts and Bolts等,你希望卸载它们,应该使用程序自带的“卸载”选项,一般在“开始”菜单的“程序”文件夹中该文件的选项里会有,或者使用“控制面板”的“添加/卸载”选项。如果你直接删除了这个文件夹,在下次启动后就可能会出现上面的错误提示。其原因是WINDOWS找不到相应的文件来匹配启动命令,而这个命令实际上是在软件第一次安装时就已经置入到注册表中了。你可能需要重新安装这个软件,也许丢失的文件没有备份,但是至少你知道了是什么文件受到影响和它们来自哪里。
对文件夹和文件重新命名也会出现问题,在软件安装前就应该决定好这个新文件所在文件夹的名字。
如果你删除或者重命名了一个在“开始”菜单中运行的文件夹或者文件,你会得到另外一个错误信息,在屏幕上会出现一个对话框,提示“无效的启动程序”并显示文件名,但是没有文件的位置。如果桌面或者“开始”菜单中的快捷键指向了一个被删除的文件和文件夹,你会得到一个类似的“丢失快捷键”的提示。
丢失的文件可能被保存在一个单独的文件中,或是在被几个出品厂家相同的应用程序共享的文件夹中,例如文件夹\SYMANTEC就被Norton Utilities、Norton Antivirus和其他一些 Symantec 出品的软件共享,而对于\WINDOWS\SYSTEM来说,其中的文件被所有的程序共享。你最好搜索原来的光盘和软盘,重新安装被损坏的程序。 文件版本不匹配
绝大多数的WIN 9X用户都会不时地向系统中安装各种不同的软件,包括WINDOWS的各种补丁例如Y2K,或者将WIN 95 升级到WIN 98,这其中的每一步操作都需要向系统拷贝新文件或者更换现存的文件。每当这个时候,就可能出现新软件不能与现存软件兼容的问题。
因为在安装新软件和WINDOWS升级的时候,拷贝到系统中的大多是DLL文件,而DLL不能与现存软件“合作”是产生大多数非法操作的主要原因,即使会快速关闭被影响的程序,你也没有额外的时间来保存尚未完成的工作。
WINDOWS的基本设计使得上述DLL错误频频发生。和其他版本不同,WIN 95允许多个文件共享\WINDOWS \SYSTEM文件夹的所有文件,例如可以有多个文件使用同一个Whatnot.dll,而不幸的是,同一个DLL文件的不同版本可能分别支持不同的软件,很多软件都坚持安装适合它自己的Whatnot.dll版本来代替以前的,但是新版本一定可以和其他软件“合作愉快”吗?如果你运行了一个需要原来版本的DLL的程序,就会出现“非法操作”的提示。
在安装新软件之前,先备份\WINDOWS\SYSTEM 文件夹的内容,可以将DLL错误出现的几率降低,既然大多数DLL错误发生的原因在此,保证DLL运行安全是必要的。而绝大多数新软件在安装时也会观察现存的DLL,如果需要置换新的,会给出提示,一般可以保留新版,标明文件名,以免出现问题。
绝大多数卸载软件也可以用来监视安装,这些监视记录可以保证在以后的卸载时更加准确,另外你也可以知道哪些文件被修改了,如果提供备份功能,可以保存旧版本的文件和安装过程中被置换的文件。
WIN 98和WIN 95有所不同,它在将WINDOWS升级和安装新软件时自动备份被置换的文件,如果在WIN98安装后出现问题,你可以使用Version Conflict Manager(VCM)帮助你发现哪些文件被改变了,可以从WIN 98的备份中将原来的版本恢复出来,而VCM可以从“开始”菜单、附件、系统工具或者安装WIN 98的光盘中寻找。
另一个避免出现DLL引起的非法操作的办法是不同时运行不同版本的同一个软件,即使你为新版本软件准备了另一个新文件夹,如果你一定要同时使用两个版本,就会出现非法错误信息。 非法操作 非法操作会让很多用户觉得很迷惑,如果你仔细研究的话会就发现软件才是真凶,每当有非法操作信息出现,相关的程序和文件都会和错误类型显示在一起,如果在WINDOWS 3.1中可能是一般保护性错误(GPF),一般是由于有两个软件同时使用了内存的同一个区域,但是即使知道原因也无法避免这一类错误。
用户可以通过错误信息列出的程序和文件来研究错误起因,因为错误信息并不直接指出实际原因,如果给出的是“未知”信息,可能数据文件已经损坏,看看有没有备份或者看看厂家是否有文件修补工具。
如果是Microsoft的软件,你可以将程序名和错误信息作为关键字在Microsoft的站点进行搜索。例如我们到微软的基本知识站点http://support.microsoft.com/search中输入“WORD97的非法操作输入”,可以找到50多个文档,说明可能产生的原因。也可以将文件名、错误操作和比较准确的原因做为关键字进行输入,例如搜寻WORD 97、非法操作和kernel32.dll三项,就只会返回9条信息。
从微软的站点返回的信息大约是DLL错误、软件的BUG、在低端RAM运行或者是磁盘空间等问题,具体的弥补方法会因为问题的不同而有所区别,例如下载并安装软件的补丁、卸载并重新安装特定的程序,或者不能同时运行某些程序等。 蓝屏错误信息 要确定出现蓝屏的原因需要仔细检查错误信息,很多蓝屏发生在安装了新软件以后,是新软件和现行的WINDOWS设置发生冲突直接引起的。
出现蓝屏的真正原因不容易搞清楚,最好的办法是把错误信息保留下来,然后用“blue screen”和文件名、“fatal exception”代码到微软的站点搜索,以便确定原因。不幸的是,即使一个特定的软件被破坏,蓝屏也不能确定引起问题的文件是什么,如果在蓝屏上显示了多个信息,那么首先应该搜索第一条。
很多蓝屏可以用改变WINDOWS设置来解决,大多数情况下需要下载安装一个更新的驱动程序,一些蓝屏与版本有关,应该确定你使用的WINDOWS版本,查看WIN 9X的设备管理程序可以确定这些信息。 资源耗尽 经常有人会问,既然有了更多的内存,是不是可以运行更多程序,大多数用户对此限制有些模糊。
一些Windows程序需要消耗各种不同的资源组合,GDI(图形界面)集中了大量的资源,这些资源用来保存菜单按钮、面板对象、调色板等等;第二个积累较多的资源则是USER(用户),用来保存菜单和窗口的信息,第三个是SYSTEM(系统资源),是一些通用的资源。
这些资源在win3.x中受到的限制是很大的,在不发生GPE(一般保护性错误)和其他错误导致的资源耗尽的情况下只允许几个为数不多的程序同时运行。WIN 9X由于限制放宽了许多,所以可以有很多程序同时运行,而WIN NT才是唯一的对绝大多数资源完全不加以限制的微软的操作系统。
在程序打开和关闭之间都会消耗资源,一些在程序打开时被占用的资源在程序关闭时可以被恢复,但并不都是这样,一些程序在运行时可能导致GDI和USER资源丧失,这也就是为什么在机器运行一段时间以后最好重新启动一次补充资源的原因。
决大多数用户希望在出现非法操作或者蓝屏之前能够被提示资源占用严重的情况,WINDOWS带有一个资源测量仪(打开“开始”菜单,选择程序、附件、系统工具)可以放置在工具栏上实时显示关于GDI、USER和一些系统资源的占用情况。
防止软件故障的五个注意事项:在安装一个新软件之前,考察一下它与你的系统的兼容性;
在安装一个新的程序之前需要保护已经存在的被共享使用的DLL文件,防止在安装新文件时被其他文件覆盖;
在出现非法操作和蓝屏的时候仔细研究提示信息分析原因;
随时监察系统资源的占用情况;
使用卸载软件删除已安装的程序。
评论 {{userinfo.comments}}
{{child.content}}
{{question.question}}
提交