著录项信息
专利名称 | 一种应对崩溃性错误的系统及方法 |
申请号 | CN201210466453.4 | 申请日期 | 2012-11-16 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2013-02-13 | 公开/公告号 | CN102929761A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F11/30 | IPC分类号 | G;0;6;F;1;1;/;3;0;;;G;0;6;F;1;1;/;3;4查看分类表>
|
申请人 | 赛尔网络有限公司 | 申请人地址 | 北京市海淀区中关村东路1号院清华科技园8号楼B座赛尔大厦
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 赛尔网络有限公司 | 当前权利人 | 赛尔网络有限公司 |
发明人 | 郝健;李威;黄友俊;李星;吴建平 |
代理机构 | 中科专利商标代理有限责任公司 | 代理人 | 宋焰琴 |
摘要
本发明公开了一种应对崩溃性错误的系统和方法,该系统包括内核层监控模块、用户层守护模块和GUI模块,其中:内核层监控模块运行在计算机操作系统的内核层,用于监控计算机的内核状态,在计算机操作系统发生崩溃性错误时被唤醒,并在一错误信息记录文件中记录出错信息和当时系统的运行状态;用户层守护模块常驻在计算机操作系统中,用于在计算机操作系统发生崩溃性错误时唤醒内核层监控模块并对其进行初始化;GUI模块用于将出错信息及系统运行状态读取出来进行格式化处理,通过用户界面反馈给用户。本发明还公开一种应对崩溃性错误的方法。本发明能够更为方便及可扩展地捕捉系统出错信息,适用于所有服务器及设备类系统。
1.一种应对崩溃性错误的系统,其特征在于,该系统包括:内核层监控模块、用户层守护模块和图形用户接口GUI模块,其中:
所述内核层监控模块作为核心模块运行在计算机操作系统的内核层,用于监控计算机的内核状态,所述内核状态包括寄存器的存储状态、内存的使用情况、CPU占用率、内核进程状态,在计算机操作系统发生崩溃性错误时被唤醒,并在一错误信息记录文件中记录出错信息和当时系统的运行状态,所述出错信息包括出错名称、出错时间、错误发生时系统的运行状态,所述系统运行状态包括进程及其数目信息、内存使用情况、CPU信息、CPU占有率、系统运行时间、硬盘分区信息,当计算机操作系统本身发生崩溃性错误时所述内核层监控模块还在记录出错信息和当时系统的运行状态后执行重启系统的操作,其中,所述错误信息记录文件在系统启动时就处于打开状态,以对产生的出错信息和当时系统的运行状态进行记录,在系统重启后打开另一错误信息记录文件对新产生的出错信息和当时系统的运行状态进行记录;
所述用户层守护模块作为一个守护进程常驻在计算机操作系统中,用于在计算机操作系统发生崩溃性错误时唤醒所述内核层监控模块并对其进行初始化,还用于选择计算机操作系统本身发生崩溃性错误时的信息记录方式;
所述GUI模块,用于将所述错误信息记录文件中记录的出错信息及当时系统的运行状态读取出来,并且将读出的信息进行格式化处理,形成固定的格式通过用户界面反馈给用户;
其中,所述内核层监控模块在计算机操作系统启动时装载;其中,所述内核层监控模块在计算机操作系统发生崩溃性错误后,利用错误计数器对出错次数进行计数,并在计数之后进入沉睡状态;所述错误计数器在系统重启后清零;
所述初始化进一步包括初始化所述错误计数器和一个用于记录出错信息和当时系统的运行状态的缓存;
其中,所述用户层守护模块还用于选择唤醒所述内核层监控模块的触发点。
2.一种应对崩溃性错误的方法,其特征在于,该方法包括以下步骤:
步骤S1,计算机操作系统启动,装载处于沉睡状态的内核层监控模块,以对内核状态进行监控,所述内核状态包括寄存器的存储状态、内存的使用情况、CPU占用率、内核进程状态;
步骤S2,在计算机操作系统发生崩溃性错误时,用户层守护模块唤醒所述内核层监控模块并对其进行初始化,选择计算机操作系统本身发生崩溃性错误时的信息记录方式,以在一错误信息记录文件中记录出错信息和当时系统的运行状态,所述出错信息包括出错名称、出错时间、错误发生时系统的运行状态,所述系统运行状态包括进程及其数目信息、内存使用情况、CPU信息、CPU占有率、系统运行时间、硬盘分区信息,在计算机操作系统本身发生崩溃性错误时,所述内核层监控模块在记录出错信息和当时系统的运行状态后重启系统,其中,所述错误信息记录文件在系统启动时就处于打开状态,以对产生的出错信息和当时系统的运行状态进行记录,在系统重启后打开另一错误信息记录文件对新产生的出错信息和当时系统的运行状态进行记录;
步骤S3,图形用户接口GUI模块将所述错误信息记录文件中记录的出错信息及当时系统的运行状态读取出来,并且将读出的信息进行格式化处理,形成固定的格式通过用户界面反馈给用户;
其中,所述步骤S2进一步包括所述内核层监控模块在计算机操作系统发生崩溃性错误后,利用错误计数器对出错次数进行计数,并在计数之后进入沉睡状态的步骤,其中,所述错误计数器在系统重启后清零;
所述初始化包括初始化所述错误计数器和一个用于记录出错信息和当时系统的运行状态的缓存;
其中,所述步骤S2在唤醒所述内核层监控模块之前还进一步包括选择唤醒所述内核层监控模块的触发点的步骤。
一种应对崩溃性错误的系统及方法\n技术领域\n[0001] 本发明涉及计算机应用领域,尤其是一种应对崩溃性错误的系统及方法。\n背景技术\n[0002] 目前的计算机操作系统,特别是嵌入式的计算机操作系统,在系统本身发生崩溃性错误,比如内存使用错误时,计算机往往无法输入命令或者磁盘往往不可用,通常的处理方式是打印死机信息到屏幕,然后整个操作系统就进入僵死状态,需要人为辅助才能重启系统,而系统重启后,关于死机的信息全部丢失,这非常不利于系统错误的排查及纠正。\n[0003] 为了解决当前计算机操作系统无法记录死机信息的问题,本发明提出一种应对计算机操作系统崩溃性错误的系统及方法。\n发明内容\n[0004] 为了解决上述现有技术中存在的问题,本发明提出一种应对计算机操作系统崩溃性错误的系统及方法。\n[0005] 根据本发明的一方面,提出一种应对崩溃性错误的系统,该系统包括:内核层监控模块、用户层守护模块和图形用户接口GUI模块,其中:\n[0006] 所述内核层监控模块作为核心模块运行在计算机操作系统的内核层,用于监控计算机的内核状态,在计算机操作系统发生崩溃性错误时被唤醒,并在一错误信息记录文件中记录出错信息和当时系统的运行状态;\n[0007] 所述用户层守护模块作为一个守护进程常驻在计算机操作系统中,用于在计算机操作系统发生崩溃性错误时唤醒所述内核层监控模块并对其进行初始化;\n[0008] 所述GUI模块,用于将所述错误信息记录文件中记录的出错信息及当时系统的运行状态读取出来,并且将读出的信息进行格式化处理,形成固定的格式通过用户界面反馈给用户。\n[0009] 根据本发明的另一方面,提出一种应对崩溃性错误的方法,该方法包括以下步骤:\n[0010] 步骤S1,计算机操作系统启动,装载处于沉睡状态的内核层监控模块,以对内核状态进行监控;\n[0011] 步骤S2,在计算机操作系统发生崩溃性错误时,用户层守护模块唤醒所述内核层监控模块并对其进行初始化,以在一错误信息记录文件中记录出错信息和当时系统的运行状态;\n[0012] 步骤S3,图形用户接口GUI模块将所述错误信息记录文件中记录的出错信息及当时系统的运行状态读取出来,并且将读出的信息进行格式化处理,形成固定的格式通过用户界面反馈给用户。\n[0013] 采用上述技术方案,与现有技术相比,本发明能够更为方便及可扩展地捕捉信息,获得更为完整的错误信息记录,较之现有的错误信息记录,本发明获得的错误信息记录中添加了很多有用的信息比如死机信息,系统版本,系统运行时间,系统内存使用情况,系统模块状态信息,系统配置等信息,以便于计算机操作系统发生崩溃性错误时,能够及时地记录错误现场,以便于问题的定位。本发明适用于所有服务器及设备类系统,同时,本发明所提出的上述机制在需要获取其他信息的时候,可以通过简单的添加接口即可获得,具有很强的可扩展性。\n附图说明\n[0014] 图1是本发明提出的应对崩溃性错误的系统结构图;\n[0015] 图2是本发明提出的应对崩溃性错误的方法流程图。\n具体实施方式\n[0016] 为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。\n[0017] 图1是本发明提出的应对崩溃性错误的系统结构图,如图1所示,所述系统包括内核层监控模块、用户层守护模块和GUI(Graphical UserInterface,图形用户接口)模块,其中:\n[0018] 所述内核层监控模块作为核心模块运行在计算机操作系统的内核层,用于监控计算机的内核状态,在计算机操作系统发生崩溃性错误,如缺页错误、内存溢出、除零操作、文件系统崩溃、错误指令访问寄存器等时被唤醒,并在一错误信息记录文件中记录出错信息和当时系统的运行状态,当计算机操作系统本身发生崩溃性错误时所述内核层监控模块还在记录出错信息和当时系统的运行状态后执行重启系统的操作;\n[0019] 进一步地,所述内核层监控模块在计算机操作系统启动时装载;\n[0020] 进一步地,所述内核层监控模块在计算机操作系统发生崩溃性错误后,利用错误计数器对出错次数进行计数,并在计数之后进入沉睡状态。所述错误计数器在系统重启后清零。\n[0021] 其中,所述内核状态包括寄存器的存储状态、内存的使用情况、CPU占用率,内核进程状态等;\n[0022] 其中,所述错误信息记录文件在系统启动时就处于打开状态,以对产生的出错信息和当时系统的运行状态进行记录,在系统重启后打开另一错误信息记录文件对新产生的出错信息和当时系统的运行状态进行记录;\n[0023] 所述出错信息包括出错名称、出错时间、错误发生时系统的运行状态;所述系统运行状态包括进程及其数目等信息、内存使用情况、CPU信息、CPU占有率、系统运行时间、硬盘分区信息等。\n[0024] 其中,计算机操作系统本身发生的崩溃性错误,比如为系统自己使用的内存溢出。\n[0025] 所述用户层守护模块作为一个守护进程常驻在计算机操作系统中,用于在计算机操作系统发生崩溃性错误时唤醒所述内核层监控模块并对其进行初始化;\n[0026] 所述初始化包括初始化所述错误计数器和一个用于记录出错信息和当时系统的运行状态的缓存;\n[0027] 所述用户层守护模块还用于选择计算机操作系统本身发生崩溃性错误时的信息记录方式,比如选择保存所述错误信息记录文件的记忆型存储设备类型;\n[0028] 所述用户层守护模块还用于选择唤醒所述内核层监控模块的触发点,比如可以选择在调用崩溃性错误的进程处唤醒所述内核层监控模块,也可以选择在使用错误指令访问寄存器的时候唤醒所述内核层监控模块。\n[0029] 所述GUI(Graphical User Interface,图形用户接口)模块,用于将所述错误信息记录文件中记录的出错信息及当时系统的运行状态读取出来,并且将读出的信息进行格式化处理,形成固定的格式通过用户界面反馈给用户,以方便用户了解和定位崩溃性错误发生的原因并进一步寻求解决方法。所述固定的格式比如可以是加密文本文件(比如可用一些简单的异或、CRC等算法进行加密)等格式。\n[0030] 图2是本发明提出的应对崩溃性错误的方法流程图,如图2所示,所述方法包括以下步骤:\n[0031] 步骤S1,计算机操作系统启动,装载处于沉睡状态的内核层监控模块,以对内核状态进行监控;\n[0032] 其中,所述内核状态包括寄存器的存储状态、内存的使用情况、系统运行时间,CPU占用率,进程运行状态等。\n[0033] 步骤S2,在计算机操作系统发生崩溃性错误,如缺页错误、内存溢出、除零操作、文件系统崩溃、错误指令访问寄存器等时,用户层守护模块唤醒所述内核层监控模块并对其进行初始化,以在一错误信息记录文件中记录出错信息和当时系统的运行状态;\n[0034] 所述步骤S2进一步包括在计算机操作系统本身发生崩溃性错误时,所述内核层监控模块在记录出错信息和当时系统的运行状态后重启系统的步骤;\n[0035] 所述初始化包括初始化所述错误计数器和一个用于记录出错信息和当时系统的运行状态的缓存;\n[0036] 所述步骤S2进一步包括所述内核层监控模块在计算机操作系统发生崩溃性错误后,利用错误计数器对出错次数进行计数,并在计数之后进入沉睡状态的步骤,其中,所述错误计数器在系统重启后清零。\n[0037] 其中,所述错误信息记录文件在系统启动时就处于打开状态,以对产生的出错信息和当时系统的运行状态进行记录,在系统重启后打开另一个错误信息记录文件对新产生的出错信息和当时系统的运行状态进行记录;\n[0038] 所述出错信息包括出错名称、出错时间、错误发生时系统的运行状态;所述系统运行状态包括进程及其数目、内存使用情况、CPU占有率、系统运行时间等。\n[0039] 其中,计算机操作系统本身发生的崩溃性错误,比如为系统自己使用的内存溢出。\n[0040] 所述步骤S2进一步包括选择计算机操作系统本身发生崩溃性错误时的信息记录方式的步骤,比如选择保存所述错误信息记录文件的记忆型存储设备类型。\n[0041] 所述步骤S2在唤醒所述内核层监控模块之前还进一步包括选择唤醒所述内核层监控模块的触发点的步骤,比如可以选择在调用崩溃性错误的进程处唤醒所述内核层监控模块,也可以选择在使用错误指令访问寄存器的时候唤醒所述内核层监控模块。\n[0042] 步骤S3,GUI模块将所述错误信息记录文件中记录的出错信息及当时系统的运行状态读取出来,并且将读出的信息进行格式化处理,形成固定的格式通过用户界面反馈给用户,所述固定的格式比如可以是加密文本文件等格式。\n[0043] 以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2015-10-28
- 2013-03-20
实质审查的生效
IPC(主分类): G06F 11/30
专利申请号: 201210466453.4
申请日: 2012.11.16
- 2013-02-13
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2006-01-25
|
2005-04-30
| | |
2
| |
2008-06-18
|
2006-12-15
| | |
3
| |
2010-06-02
|
2009-12-25
| | |
4
| |
2011-01-12
|
2010-08-20
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |