为什么电脑会出现系统错误,电脑系统经常出错是什么原因
一、应用程序没有检查内存分配失败
程序需要一块内存用以保存数据时,就需要调用操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“指针”。
内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的指针,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。
若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用指针,继续在之后的运行中使用这块内存。真正的0地址内存区保存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即死机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的“写内存”错误,并指出被引用的内存地址为“0x00000000”。
内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统文件之后。
●二、应用程序由于自身BUG引用了不正常的内存指针
在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的指针已经失效了。有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止运行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!
像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效指针不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其他随机数字。
如果系统经常有所提到的错误提示,下面的建议可能会有帮助:
1.查看系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统,从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。
2.更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统文件、修正系统参数。有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序。
3.试用新版本的应用程序。
以下我分简单和复杂的两种方法给你讲一下,或许有用,可以参赞考一下。
简单版
一、病毒的原因。
二、硬件的问题。比如电源
三、软件的问题。比如CPU测温监控软件。
四、系统文件丢失,误操作造成的。
五、黑客攻击你。
具体解决方法是重做系统,就可以排除第1、3、4、5;如果还死 ,就是硬件问题了。
专业版
※硬件方面原因:
★“散热不良”:显示器、电源和CPU在工作中发热量非常大,因此体质良好的通风关况非常重要,如果显示器过热将会导致色彩、图像失真甚缩短显示器寿命。工作时间太长也会导致电源或显示器散热不畅而造成电脑死机。CPU的散热是关系到电脑运行的稳定性的重要问题,也是散热故障发生的“重灾区”。
★ “灰尘杀手”:机器内灰尘过多也会引起死机故障。如软驱磁头或光驱激光头沾染过多灰尘后,会导致读写错误,严重的会引起电脑死机。
★ “软硬件不兼容”:例如3D制作及一些特殊软件,可能在有的电脑中不能正常安装或启动,其中可能就有软硬件兼容方面的问题。
★ “内存条故障”:主要是内存条松动、本身质量所致。应根据具体情况排除内存条接角故障,如果是内存条质量存在问题,则需更换内存才能解决问题。
★ “硬盘故障”:主要是硬盘老化或由于使用不当造成坏道、坏扇区。这样机器在动行时就很容易发生死机。可以用专用工具软件来进行排障处理,如损坏严重则只能更换硬盘了。另外对于不支持UDMA66/100的主板,应注意CMOS中硬盘运行方式的设定。
★ “CPU超频”:超频提高了CPU的工作频率,同时,也可能使其性能变得不稳定。解决办法当然也比较简单,就是让CPU回到正常的频率上。
★ “硬件资源冲突”:常见的是声卡或显示卡的设置冲突,引起异常错误。此外,其它设备的中断、DMA或端口出现冲突的话,可能导致少数驱动程序产生异常,以致死机。解决的办法是以“安全模式”启动,在“控制面板”->“系统”->“设备管理”中进行适当调整。
★ “劣质零部件”:少数不法商人在给顾客组装机时,使用质量低劣的板卡、内存,有的甚至出售冒牌主板和打磨过的CPU、内存条,这样的机器在运行时很不稳定,发生死机在所难免。因此,用户购机时应该警惕。
※软件方面原因:
★病毒感染:病毒可以使计算机工作效率急剧下降,造成频繁死机。此类故障可通过运行杀毒软件进行全面查毒、杀毒,并应及时升级杀毒软件。
★ CMOS设置不当:硬盘参数设置、模式设置、内存参数设置不当从而导致计算机无法启动。
★ 系统文件的误删除:由于Windows 9X启动需要有Command.com、Io.sys、Msdos.sys等文件,如果这些文件遭到破坏或被误删除,即使在CMOS中各种硬件设置正确无误也无济于事。此时需用系统盘重新启动系统后,重新传送系统文件。
★ 初始化文件遭破坏:由于Windows 9X启动需要读取System.ini、Win.ini和注册表文件,如果存在Config.sys、Autoexec.bat文件,这两个文件也会被读取。只要这些文件中存在错误信息都可能出现死机,特别是System.ini、Win.ini、User.dat、System.dat这四个文件尤其重要。
★ 动态链接库文件(DLL)丢失:在Windows操作系统中还有一类文件也相当重要,这就是扩展名为DLL的动态链接库文件,这些文件从性质上来讲是属于共享类文件。如果在删除一个应用程序时将一个共享文件一并删除,特别是比较重要的核心链接文件被删除,系统就会死机甚至崩溃。
★ 硬盘剩余空间太少或碎片太多:,由于一些应用程序运行需要大量的内存,需用磁盘空间提供虚拟内存,如果硬盘的剩余空间太少难以满足软件的运行需要,就容易造成死机。解决此类问题的方法是合理划分磁盘空间、使用“磁盘碎片整理程序”定期整理硬盘、清除硬盘中垃圾文件。
★ 软件升级不当:在软件的升级过程中会对其中共享的一些组件进行升级,但其它程序可能不支持升级后的组件而导致出现各种问题。
★ 滥用测试版软件:测试版软件通常存在一些Bug或在某些方面不够稳定,使用后会出现数据丢失的程序错误提示、死机或导致系统无法启动。
★ 非法卸载软件:如果不通过软件的卸载,直接将软件安装目录删除,将无法清除注册表及Windows目录中相应的链接文件,导致系统变得不稳定而引起死机。建议删除不需要的应用软件时应使用软件提供的卸载程序,最好是运行“控制面板”中的“添加/删除程序”彻底将该软件从系统中删除。
★ 使用盗版软件:盗版软件可能隐藏着病毒,一旦执行会自动修改系统,使系统在运行中出现死机。
★ 启动的程序太多:由于运行太多的程序,使系统资源紧张,个别程序需要的数据在内存或虚拟内存中找不到,也会出现异常错误。
★ 非法操作:用非法格式或参数非法打开或释放有关程序,也会导致电脑死机。
★ 非正常关闭计算机:不要直接使用机箱电源按钮强行关机,这样易造成系统文件损坏或丢失,引起自动启动或运行时死机。对于Windows 98/2000/NT等系统来说,这点非常重要,严重的话,会引起系统崩溃。★ 内存冲突:有时候运行各种软件都正常,但是却忽然间莫名其妙地死机,重新启动后运行这些应用程序又十分正常,这是一种假死机现象。出现的原因多是Win 98的内存资源冲突。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。