确定操作系统崩溃的方法和装置与流程

文档序号:17130478发布日期:2019-03-16 01:08阅读:243来源:国知局
确定操作系统崩溃的方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种确定操作系统崩溃的方法和装置。



背景技术:

在终端设备的操作系统重启的时候,往往无法精确确定其重启原因。不知道系统重启是由用户主动操作导致的,还是系统出现问题崩溃导致的。

当前,各个厂商可能有基于各自独特硬件的方法可以识别系统重启原因,这种方法需要额外的硬件支持,需要厂商协助才能确认原因,对终端设备的使用者来说非常的不方便。



技术实现要素:

本发明实施例提供一种确定操作系统崩溃的方法和装置,以解决现有技术中的一个或多个技术问题。

第一方面,本发明实施例提供了一种确定操作系统崩溃的方法,包括:

如果检测到终端设备的操作系统崩溃,则调用预设的回调函数向终端设备的保留内存中写入崩溃标记;

在所述操作系统重启后,检测所述保留内存;

如果在所述保留内存中检测到崩溃标记,则确定所述操作系统发生了崩溃。

在一种实施方式中,该方法还包括:

将所述终端设备的内存的一段地址预先设置为所述保留内存,所述保留内存用于保存所述崩溃标记,所述崩溃标记为表示所述终端设备的操作系统发生崩溃的标识信息。

在一种实施方式中,该方法还包括:

预先设置所述回调函数,所述回调函数用于向所述保留内存中写入所述崩溃标记。

在一种实施方式中,该方法还包括:

统计所述操作系统发生崩溃的次数。

在一种实施方式中,统计所述操作系统发生崩溃的次数,包括:

如果在所述保留内存中检测到崩溃标记,则在崩溃日志中写入崩溃记录;

统计指定时间范围内的崩溃记录的数量,得到所述操作系统在设定时间范围内发生崩溃的次数。

在一种实施方式中,该方法还包括:

在所述保留内存中检测到所述崩溃标记之后,清空所述保留内存。

第二方面,本发明实施例提供了一种确定操作系统崩溃的装置,包括:

崩溃处理模块,用于如果终端设备的操作系统崩溃,则调用预设的回调函数向终端设备的保留内存中写入崩溃标记;

检测模块,用于在所述操作系统重启后,检测所述保留内存;如果在所述保留内存中检测到崩溃标记,则确定所述操作系统发生了崩溃。

在一种实施方式中,该装置还包括:

第一初始化模块,用于将所述终端设备的内存的一段地址预先设置为所述保留内存,所述保留内存用于保存所述崩溃标记,所述崩溃标记为表示所述终端设备的操作系统发生崩溃的标识信息。

在一种实施方式中,该装置还包括:

第二初始化模块,用于预先设置所述回调函数,所述回调函数用于向所述保留内存中写入所述崩溃标记。

在一种实施方式中,该装置还包括:

统计模块,用于统计所述操作系统发生崩溃的次数。

在一种实施方式中,所述统计模块还用于如果在所述保留内存中检测到崩溃标记,则在崩溃日志中写入崩溃记录;统计指定时间范围内的崩溃记录的数量,得到所述操作系统在设定时间范围内发生崩溃的次数。

在一种实施方式中,该装置还包括:

清空模块,用于在所述保留内存中检测到所述崩溃标记之后,清空所述保留内存。

第三方面,本发明实施例提供了一种确定操作系统崩溃的装置,所述装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

在一个可能的设计中,所述装置的结构中包括处理器和存储器,所述存储器用于存储支持所述装置执行上述确定操作系统崩溃的方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述装置还可以包括通信接口,用于与其他设备或通信网络通信。

第四方面,本发明实施例提供了一种计算机可读存储介质,用于存储确定操作系统崩溃的装置所用的计算机软件指令,其包括用于执行上述确定操作系统崩溃的方法所涉及的程序。

上述技术方案中的一个技术方案具有如下优点或有益效果:可以准确区分用户主动关机、重启等操作和系统崩溃,无需额外硬件支持,能够确定各种操作系统的关机、重启原因。

上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。

附图说明

在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。

图1示出根据本发明实施例的确定操作系统崩溃的方法的流程图。

图2示出根据本发明实施例的确定操作系统崩溃的方法的流程图。

图3示出根据本发明实施例的确定操作系统崩溃的方法的流程图。

图4示出根据本发明实施例的确定操作系统崩溃的方法的流程图。

图5示出根据本发明实施例的确定操作系统崩溃的装置的结构框图。

图6示出根据本发明实施例的确定操作系统崩溃的装置的结构框图。

图7示出根据本发明实施例的确定操作系统崩溃的装置的结构框图。

具体实施方式

在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。

图1示出根据本发明实施例的确定操作系统崩溃的方法的流程图。如图1所示,该方法包括:

步骤s11、如果检测到终端设备的操作系统崩溃,则调用预设的回调函数向终端设备的保留内存中写入崩溃标记;

步骤s12、在所述操作系统重启后,检测所述保留内存;

步骤s13、如果在所述保留内存中检测到崩溃标记,则确定所述操作系统发生了崩溃。

例如,对保留内存执行读操作,如果在保留内存中读取到崩溃标记,可以确定操作系统发生了崩溃。如果在保留内存中读取不到崩溃标记,则可以确定可能是由于用户的主动操作例如用户点击了关机、重启等,才使得终端设备的操作系统关机或重启。

再如,对保留内存执行读操作,如果保留内存中有数据,即确定操作系统发生了崩溃。

再如,对保留内存执行读操作,如果保留内存中有数据,读取该数据,并将该数据与设置的崩溃标记进行比较,如果二者一样,即确定操作系统发生了崩溃。

在本发明实施例的终端设备包括但不限于手机、平板电脑、笔记本电脑、台式机、智能家电、智能车辆等能够安装操作系统的设备。终端设备的操作系统包括但不限于windows、linux、安卓(android)、ios等。

在一种实施方式中,如图2所示,该方法还包括:

步骤s21、将所述终端设备的内存的一段地址预先设置为所述保留内存,所述保留内存用于保存所述崩溃标记,所述崩溃标记为表示所述终端设备的操作系统发生崩溃的标识信息。

在一个示例中,终端设备的内存可以采用ram(randomaccessmemory,随机存储器)来实现。可以将ram中的一段地址设置为保留内存,这段地址仅允许存储崩溃标记,不允许存储其他数据。崩溃标记可以为预先设置的表示系统崩溃的唯一的标识信息。例如,“operatingsystemcrash”、“os版本号+crash”、“开发者信息+crash”、“开发者信息+00001”等。这些崩溃标记仅是示例,而非显示,在实际应用中可以根据终端设备、操作系统、开发者等的具体需求来设置。ram具有通电时数据不丢失、掉电时数据丢失的特点。在ram中设置的保留内存,在终端设备通电的情况下,重启后能够读取保留内存中的内容。

在一种实施方式中,如图2所示,该方法还包括:

步骤s22、预先设置所述回调函数,所述回调函数用于向所述保留内存中写入所述崩溃标记。

在一个示例中,可以预先将回调函数设置为向保留内存对应的那段地址中写入设定的某个崩溃标记。在检测到操作系统崩溃时,调用该回调函数,即可实现将崩溃标记写入保留内存对应的地址。

在一种实施方式中,如图3所示,该方法还包括:

步骤s31、统计所述操作系统发生崩溃的次数。

在一种实施方式中,统计所述操作系统发生崩溃的次数,包括:如果在所述保留内存中检测到崩溃标记,则在崩溃日志中写入崩溃记录;统计指定时间范围内的崩溃记录的数量,得到所述操作系统在设定时间范围内发生崩溃的次数。

在一种示例中,可以在终端设备的存储空间中建立崩溃日志。在终端设备的操作系统重启时,或者重启之后的一段时间内,如果在保留内存中检测到崩溃标记,可以在崩溃日志中记录一条崩溃记录。崩溃记录可以包括记录时间、系统重启时间、系统重启原因为崩溃等。然后,可以统计崩溃记录的总次数,也可以统计某一段时间内系统崩溃的次数。

在另一种示例中,可以在终端设备中设置崩溃次数的计数器,每次在保留内存中检测到崩溃标记,该计数器的数值加1。也可以每隔一段时间将计数器清零,接着统计清零后的崩溃次数。

在一种实施方式中,如图3所示,该方法还包括:

步骤s32、在所述保留内存中检测到所述崩溃标记之后,清空所述保留内存。例如,每次在保留内存对应的地址中检测到崩溃标记之后,都清空保留内存对应的地址,达到重置保留内存的效果。这样,如果下次系统不是因为崩溃而关机或重启,而是由于用户主动操作而关机或重启,则保留内存为空。因此,可以多次重复确定系统关机或重启的原因是否是发生了崩溃。

在一种应用示例中,如图4所示,本发明实施例的确定操作系统崩溃的方法可以通过以下模块来实现。

(1)初始化模块41。

系统启动初始化的时候,会调用初始化模块,执行以下两个部分的操作:

a:保留一块内存(例如一段内存地址)空间,作为设置崩溃标记的空间,该空间不会被系统的其它模块使用。

b:设置回调函数,仅当系统发生崩溃的时候,该函数被调用。该回调函数的作用就是向预先保留的内存里面设置标记。

(2)崩溃处理模块42

当系统发生崩溃时,崩溃处理模块调用预先设置的回调函数,回调函数在预先保留的内存里面设置标记。这个标记写入到内存ram中,只要系统保持通电,数据不会丢失。在系统重启时,由于预先保留了内存,该数据也不会受到污染。

(3)检测模块43

检测模块会在系统重启启动的时候,检查崩溃处理模块42设置的标记。如果检测到标记,认为是系统刚发生过一次崩溃。否则认为是用户操作所致系统重启启动。每次检查时,读取保留内存中是否存在设定标记。如果有,表示系统崩溃。读取标记之后,清空保留内存。

此外,系统还可以包括记录模块,可以根据检查结果记录系统崩溃次数。

本发明实施例的方法,可以准确区分用户主动关机、重启等操作和系统崩溃,无需额外硬件支持,适用于各种操作系统,例如基于linux的系统。

图5示出根据本发明实施例的确定操作系统崩溃的装置的结构框图。如图5所示,该装置可以包括:

崩溃处理模块51,用于如果终端设备的操作系统崩溃,则调用预设的回调函数向终端设备的保留内存中写入崩溃标记;

检测模块52,用于在所述操作系统重启后,检测所述保留内存;如果在所述保留内存中检测到崩溃标记,则确定所述操作系统发生了崩溃。

在一种实施方式中,如图6所示,该装置还包括:

第一初始化模块53,用于将所述终端设备的内存的一段地址预先设置为所述保留内存,所述保留内存用于保存所述崩溃标记,所述崩溃标记为表示所述终端设备的操作系统发生崩溃的标识信息。

在一种实施方式中,该装置还包括:

第二初始化模块54,用于预先设置所述回调函数,所述回调函数用于向所述保留内存中写入所述崩溃标记。

在一种实施方式中,该装置还包括:

统计模块55,用于统计所述操作系统发生崩溃的次数。

在一种实施方式中,所述统计模块55还用于如果在所述保留内存中检测到崩溃标记,则在崩溃日志中写入崩溃记录;统计指定时间范围内的崩溃记录的数量,得到所述操作系统在设定时间范围内发生崩溃的次数。

在一种实施方式中,该装置还包括:

清空模块56,用于在所述保留内存中检测到所述崩溃标记之后,清空所述保留内存。

本发明实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。

图7示出根据本发明实施例的确定操作系统崩溃的装置的结构框图。如图7所示,该装置包括:存储器910和处理器920,存储器910内存储有可在处理器920上运行的计算机程序。所述处理器920执行所述计算机程序时实现上述实施例中的确定操作系统崩溃的方法。所述存储器910和处理器920的数量可以为一个或多个。

该装置还包括:

通信接口930,用于与外界设备进行通信,进行数据交互传输。

存储器910可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

如果存储器910、处理器920和通信接口930独立实现,则存储器910、处理器920和通信接口930可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(isa,industrystandardarchitecture)总线、外部设备互连(pci,peripheralcomponent)总线或扩展工业标准体系结构(eisa,extendedindustrystandardcomponent)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

可选的,在具体实现上,如果存储器910、处理器920及通信接口930集成在一块芯片上,则存储器910、处理器920及通信接口930可以通过内部接口完成相互间的通信。

本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现上述实施例中任一所述的方法。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1