`
北极的。鱼
  • 浏览: 160964 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

分析应用程序假死原因

 
阅读更多


转自:http://zhidao.baidu.com/question/10665665.html


从根本上说,程序无响应是因为这个程序在运行时向系统请求资源,但一直处在资源不足的状态下,久而久只,出现了饿死现象。
导致这个问题主要是该程序的进程优先级的原因,优先级太低,在多个程度进行资源调用时,该程序申请资源,但资源不足,请求未被批准,久而久之,就被饿死了。病毒也是一样,某一项程序申请调用系统资源,但资源被病毒长时间霸占,甚至剥夺其他刚刚得到释放的资源,造成可用资源很少,或是病毒强行修改进程列表中各进程的优先级,造成资源调用申请长时间不被批准。
建议进程查杀病毒操作,并对系统进行优化,若配置较早可适当考虑升级或更换平台,如果仍然出现极个别的程序无响应的情况,可考虑在进程管理器中手动调整该进程的优先级。

 

 

其他解释:

先说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“光标”。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用光标,继续在之后的执行中使用这块内存。真正的0地址内存区储存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的内存不能为“read”错误,并指出被引用的内存地址为“0x00000000“。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统档案之后。 

在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的光标已经失效了。有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止执行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效光标不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其它随机数字。 

首先建议: 

1、 检查系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统,从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。 

2、 更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统档案、修正系统参数。有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序。 

3、 尽量使用最新正式版本的应用程序、Beta版、试用版都会有BUG。 

4、 删除然后重新创建 Winnt\System32\Wbem\Repository 文件夹中的文件:在桌面上右击我的电脑,然后单击管理。 在"服务和应用程序"下,单击服务,然后关闭并停止 Windows Management Instrumentation 服务。 删除 Winnt\System32\Wbem\Repository 文件夹中的所有文件。(在删除前请创建这些文件的备份副本。) 打开"服务和应用程序",单击服务,然后打开并启动 Windows Management Instrumentation 服务。当服务重新启动时,将基于以下注册表项中所提供的信息重新创建这些文件: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM\Autorecover MOFs 

分享到:
评论

相关推荐

    IIS应用程序池假死解决

    首先,我们需要理解导致应用程序池假死的常见原因。这些问题可能包括但不限于: 1. **资源耗尽**:如果应用程序池内的进程消耗了过多的内存或CPU资源,系统可能会自动终止该进程,以防止对整个服务器性能的影响。 ...

    程序假死解决方法 delphi 、c++

    1. **程序假死的理解**:程序假死,也被称为应用程序无响应,通常表现为程序界面无法响应用户的任何操作,例如点击按钮或滚动。这可能是由于CPU被某个长时间运行的任务占用,内存泄漏,或者线程之间的同步问题导致的...

    Windows2003 IIS应用程序池假死问题解决.doc

    以下是一些可能导致IIS应用程序池假死的原因和解决办法: 1. **设置进程池回收时间**:在IIS管理器中,可以调整应用程序池的回收时间。适当设置回收时间有助于避免资源耗尽导致的假死。默认情况下,IIS会每29小时...

    MFC对话框程序防止假死

    要防止MFC对话框程序假死,我们可以采取以下几种策略: 1. **异步处理**:将耗时任务放在单独的线程中执行,避免阻塞主线程的消息处理。这样,即使后台任务正在执行,主线程仍然可以响应用户界面的事件。 2. **...

    IIS假死的处理

    #### 常见的假死原因 1. **资源耗尽**:应用程序池中的资源(如内存、CPU)被大量消耗,达到或超过预设的上限,导致新请求无法得到及时响应。 2. **代码异常**:Web应用程序中存在错误代码或逻辑缺陷,例如死循环...

    C#进度条应用(避免假死状况)

    然而,在单线程环境中,如果更新进度条的操作与执行耗时任务在同一线程上,可能会导致应用程序界面无响应,也就是所谓的“假死”现象。用户看到的界面会卡住,无法进行其他操作,给人一种程序崩溃或无响应的错觉。 ...

    Windows 8打开文件夹就假死原因分析.docx

    标题中的“Windows 8打开文件夹就假死原因分析”是指在使用Windows 8操作系统时,用户在尝试打开特定文件夹时,系统会出现假死现象,即操作响应极慢,甚至无法进行任何操作,但稍后会恢复正常。这种问题通常是由系统...

    IIS应用程序池自动停止 关闭 假死 处理集锦

    首先,如果应用程序池出现了未指定错误并且自动停止,可能是由于没有安装SP1补丁导致的IIS6.0假死问题。这在较早版本的IIS中较为常见,但现在微软已在自动更新中提供了补丁,因此确保系统更新至最新状态能显著减少...

    winform界面假死状态

    在Winform应用程序开发过程中,经常遇到因加载大量数据导致界面出现假死状态的情况。这种现象不仅影响用户体验,还会降低应用的整体性能。本文将详细探讨这一问题,并通过示例代码展示如何利用多线程与委托技术有效...

    Windows8打开文件夹就假死原因.docx

    在Windows 8操作系统中,用户可能会遇到打开某些文件夹时系统出现假死现象,即界面响应缓慢,甚至无法进行任何操作。这种情况通常发生在打开包含大量程序安装文件的文件夹时,尤其是exe可执行程序。问题的根本原因...

    IIS假死的解决方法 缩短IIS应用池回收时间来实现减少IIS假死

    出现这种情况的原因之一是应用程序池的回收时间设置不当,导致应用程序池在长时间运行后没有及时释放资源,从而出现假死现象。下面将详细介绍如何通过减少IIS应用池回收时间来实现减少IIS假死的解决方案。 首先,...

    开机假死 都是偷懒惹的祸.docx

    #### 一、开机假死的原因分析 开机假死是一种常见的计算机故障表现,主要特征是在开机后一段时间内(通常为几分钟),计算机无法响应用户的任何操作指令,如点击鼠标或键盘输入等。这种现象不仅影响了用户的工作...

    Win8系统打开文件夹就假死的原因.docx

    ### Win8系统打开文件夹就假死的原因及解决方案 #### 一、问题现象与分析 在使用Windows 8操作系统的过程中,部分用户可能会遇到一个奇怪的现象:当尝试打开一个存放大量程序或文件的文件夹时,系统会出现明显的...

    一个很好的延时类,在某些时候比timer更易用,不易假死

    在某些场景下(如需要精确控制延迟时间或者避免程序假死的情况),`clsWaitableTimer`可以提供更为优秀的解决方案。 #### 二、基本原理与API介绍 `clsWaitableTimer`是通过Windows API中的`CreateWaitableTimer`、...

    windows系统无法正常联网并打开应用程序解决办法

    这种情况下,用户可能会感觉到计算机似乎处于“假死”状态,即看似没有响应但实际上并未完全死机。 #### 问题原因分析 根据部分用户的反馈和经验总结,导致这一问题出现的主要原因之一是360安全卫士等第三方安全...

    Windows系统任务栏总是假死该怎么办.docx

    任务栏假死的原因可能有多种,常见的包括: - **系统资源占用过高**:当计算机运行大量程序时,可能导致CPU或内存资源紧张,进而引起任务栏卡顿。 - **驱动程序不兼容**:某些驱动程序(尤其是显卡驱动)可能存在与...

    win2003 iis6 iis假死

    #### IIS假死的原因分析 1. **ASP映射问题**:如果ASP应用程序未正确映射到相应的`.dll`文件,则可能导致IIS响应异常。 2. **内存泄露**:长时间运行的应用程序可能会出现内存泄露问题,特别是在ASP代码存在错误的...

    xp系统开机出现假死状态的解决方案.docx

    ### XP系统开机出现假死状态的原因及解决方案 #### 原因分析 当Windows XP系统在开机时出现“假死”状态,通常是指系统启动缓慢或在启动过程中长时间无响应,这种现象可能由多种因素导致: 1. **启动程序过多**:...

    为应用程序池 'DefaultAppPool' 提供服务的进程关闭时间超过了限制

    ”这意味着IIS中的某个应用程序池的工作进程在尝试关闭时耗时过长,超过了IIS默认的限制时间(通常为90秒),这可能导致IIS进入非正常状态,即所谓的“假死”。 #### 问题分析 此问题的根本原因在于IIS应用程序池的...

Global site tag (gtag.js) - Google Analytics