...请问是不是内存坏了?如果是怎么才能看出来是内存坏了?
发布网友
发布时间:2024-02-13 02:55
我来回答
共3个回答
热心网友
时间:2024-10-09 14:46
系统报“内存出错”有三种情况,分别由不同原因造成。一是开机自检时报“内存出错”,引起该故障的原因主要是内存条或内存控制器的硬件故障;二是在CMOS中设置了启动系统时不自检1M以上内存,而在运行应用程序时系统报“内存出错”,引起该故障的原因可能是内存条或内存控制器的硬件故障,也可能是软件故障;三是开机自检通过,进入DOS或Windows平台,在运行应用程序时报“内存出错”,引起该故障的原因主要是软件故障。
对于由软件故障造成的内存出错,可按下列步骤检查和处理:
1.如果是在DOS环境下运行应用程序时报“内存出错”,则怀疑是否是内存分配出错,检查DOS与运行的应用程序是否冲突,并作出相应的处理。一般可通过重新启动系统或重新编写系统配置文件来解决,对应用程序的问题则可通过相应的修改来解决。
2.如果是在Windows环境下运行应用程序时报“内存出错”,则怀疑是否是由应用程序非法访问存储器造成的,一般可通过清除内存驻留程序,减少活动窗口,调整配置程序或重新安装系统和应用程序来解决。 3.如果问题只是在运行一特殊的应用程序才出现,可能是由该软件造成的。
4.用KILL或KV300+检测系统是否带有病毒,有则杀毒。 007电脑资讯
硬件故障造成的内存出错比较常见,CMOS设置错误、内存条接触不良、内存条安装组合错误、内存条硬件损坏、内存控制器出错等均会造成内存出错,一般可按下列步骤检查和处理:
1.由于开机自检即显示“内存出错”,首先进入CMOS设置,检查CMOS中关于内存条的参数设置是否正确,是否与内存条的配置情况相符;比如,如果设置的内存读写周期或内存读写等待时间小于内存条实际值,则应增大内存读写周期或者增加内存读写等待时间。
2.如果故障仍存在,检查内存条与内存插座槽之间接触是否良好,并作出相应的处理。
3.如果故障仍未排除,检查内存条的安装组合是否正确。 一般主板的存储器安装插座分为几个体(Bank),每个体中有二至四个存储器安装插座,可安装二至四个存储器条。由于72线的内存条一次可以提供32位有效数据(30线内存条已淘汰,在此不予讨论),对于Pentium类CPU,其数据线为64位,要一次能存取64位数据,就必须同时安装两个72线内存条,所以586级微机的主机板,一般必须按偶数安装72线内存条,即一次应安装2条或4条72线SIMM存储器条。如果主板上的内存条插座是168线的,由于168线的内存条一次就可以提供64位有效数据,所以只安装一条也能正常工作。安装内存条时应注意以下几点:
·对大多数PC机来说,不能在同一个Bank内将容量不同的SIMM条混插在一起。很多PC机都可安装不同容量的SIMM条,但装在同一组Bank中的所有SIMM条必须具有相同的容量。
·对于很多PC机来说,若把不同速度的SIMM条混插在一起,即使它们的容量相同,也会带来麻烦。例如,计算机中已有运行速度为60ns(纳秒)的16MB内存,如果在主板的空闲内存槽中再插入速度为70ns的SIMM条,系统就有可能会拒绝引导或在启动后不久就陷于崩溃。对于某些微机来说,若把速度低的SIMM条放至第一组,则可解决速度混合问题,计算机会按最低速度存取。
·对于大多数PC机来说,必须将一组中的所有插槽都插满,或者将一组全部置空(当然第一组不行),在一组插槽中不能只插一部分内存条。
·PC机可接受的内存大小有一个上限(最大值可从PC机说明书中找到。若没有说明书,唯一的方法就是从实践中找到最大值了)。
·SDRAM是新一代的动态存储器,又称为同步动态存储器或同步DRAM。虽然有不少主板支持SDRAM与EDO内存混合安装,但是最好还是不要混用。原因是SDRAM只能在3.3V电压下工作,而EDO内存则多数在5V电压下工作。虽然主机板上对DIMM和SIMM分别供电,但它们的数据线总是要连在一起的,如果SIMM(72线内存)与DIMM(168线SDRAM)混用,尽管开始系统可以正常工作,但在使用一段时间后,可能会造成SDRAM的数据输入端被损坏。当然,如果你的SDRAM是适合宽电压(3V~5V)工作的产品,就不会出现这种损坏情况。
4.如果故障还未解决,则用替换法检查内存条是否已损坏,并作出相应的处理。
5.如果以上措施均不能奏效,则怀疑主板或控制芯片有问题,可送专业人员检修。
热心网友
时间:2024-10-09 14:45
内在检查失败,我也总结了以个几点,敬请参考:
1.应用程序没有检查内存分配失败
a 程序需要一块内存用以保存数据时,就需要调用操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“指针”。
b 内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的指针,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。
c 若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用指针,继续在之后的运行中使用这块内存。真正的0地址内存区保存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即死机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的“写内存”错误,并指出被引用的内存地址为“0x00000000”。
d 内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统文件之后。
2.应用程序由于自身BUG引用了不正常的内存指针
a 在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的指针已经失效了。有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止运行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!
b 像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效指针不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其他随机数字。
如果系统经常有所提到的错误提示,下面的建议可能会有帮助:
1.查看系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统,从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。
2.更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统文件、修正系统参数。有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序。
3.试用新版本的应用程序。
热心网友
时间:2024-10-09 14:48
不是坏了,是内存读取错误............