CN114327769B - 一种操作系统事件记录方法、装置及计算机系统 - Google Patents
一种操作系统事件记录方法、装置及计算机系统 Download PDFInfo
- Publication number
- CN114327769B CN114327769B CN202111641076.9A CN202111641076A CN114327769B CN 114327769 B CN114327769 B CN 114327769B CN 202111641076 A CN202111641076 A CN 202111641076A CN 114327769 B CN114327769 B CN 114327769B
- Authority
- CN
- China
- Prior art keywords
- event
- target
- recording
- block
- pool
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种操作系统事件记录方法、装置及计算机系统。该方法包括:配置事件记录系统,所述事件记录系统包括多个用于记录事件的事件块;在所述微内核和/或虚拟机上生成目标事件时,在所述事件记录系统中读取当前记录事件块的目标索引信息,并计算在将目标事件记录至当前记录事件块后对目标索引信息的更新索引结果;调用原子操作执行将所述事件记录系统中的目标索引信息修改为更新索引结果的操作,并在确定原子操作执行成功时,在与目标索引信息匹配的当前记录事件块中记录目标事件。本发明实施例,解决了记录开销大、用户空间和内核空间无法同量级使用的问题,实现了事件记录机制的简化,提高了事件记录处理的工作效率。
Description
技术领域
本发明实施例涉及计算机数据处理技术,尤其涉及一种操作系统事件记录方法、装置及计算机系统。
背景技术
随着计算机技术的不断发展,越来越多的计算机设备中配置有多个计算核实现协同的计算和处理功能。
目前,为了排查出在设备运行过程中发生的错误或者定位异常计算核,需要实时监控及记录各个计算核中发生的事件。现有技术中,主要基于文件系统、内存文件系统或者日志系统实现事件记录。
发明人在发明过程中,发现现有技术有以下缺陷:现有的各类事件记录方法通常记录开销大,例如,用户记录接口需要进行系统调用,记录过程需要进行临界保护以及可能需要关闭中断等;用户空间和内核空间无法同量级使用,即用户空间需要进行系统调用;此外,事件记录内容需要进行格式化输出为字符串后进行记录,无法在某些系统汇编场景进行使用;同时,某些系统是直接通过串口或其他输出机制进行事件输出,对原有系统时序造成严重破坏,无法在实际系统中进行使用。
发明内容
本发明实施例提供了一种操作系统事件记录方法、装置及计算机系统,以提供一种操作系统事件记录的新方式,大大减少事件记录的开销。
第一方面,本发明实施例提供了一种操作系统事件记录方法,其中,包括:
配置事件记录系统,所述事件记录系统包括多个用于记录事件的事件块;
在所述微内核和/或虚拟机上生成目标事件时,在所述事件记录系统中读取当前记录事件块的目标索引信息,并计算在将目标事件记录至当前记录事件块后对目标索引信息的更新索引结果;
调用原子操作执行将所述事件记录系统中的目标索引信息修改为更新索引结果的操作,并在确定原子操作执行成功时,在与目标索引信息匹配的当前记录事件块中记录目标事件。
第二方面,本发明实施例还提供了一种操作系统事件记录装置,该操作系统事件记录装置包括:
事件记录系统配置模块,用于配置事件记录系统,所述事件记录系统包括多个用于记录事件的事件块;
更新索引结果计算模块,在所述微内核和/或虚拟机上生成目标事件时,在所述事件记录系统中读取当前记录事件块的目标索引信息,并计算在将目标事件记录至当前记录事件块后对目标索引信息的更新索引结果;
目标事件记录模块,用于调用原子操作执行将所述事件记录系统中的目标索引信息修改为更新索引结果的操作,并在确定原子操作执行成功时,在与目标索引信息匹配的当前记录事件块中记录目标事件。
第三方面,本发明实施例还提供了一种计算机系统,其中,包括:操作系统和事件记录系统;所述操作系统中包括至少一个微内核,以及运行于每个微内核上的若干个虚拟机,每个微内核分配有至少一个CPU,每个CPU上用于运行至少一个虚拟机;所述事件记录系统设置于用于各微内核和各虚拟机共同访问的事件记录系统中;所述事件记录系统中包括多个用于记录事件的事件块;其中,所述操作系统,用于执行实现如本发明任意实施例所述的操作系统事件记录方法。
本发明实施例所提供的技术方案,通过配置事件记录系统,所述事件记录系统包括多个用于记录事件的事件块;在所述微内核和/或虚拟机上生成目标事件时,在所述事件记录系统中读取当前记录事件块的目标索引信息,并计算在将目标事件记录至当前记录事件块后对目标索引信息的更新索引结果;调用原子操作执行将所述事件记录系统中的目标索引信息修改为更新索引结果的操作,并在确定原子操作执行成功时,在与目标索引信息匹配的当前记录事件块中记录目标事件。本发明实施例的技术方案提供了一种简洁、通用的事件记录的新方式,仅通过使用事件记录系统及原子操作机制,实现了计算机系统中微内核与微内核事件、以及微内核和虚拟机间统一的事件记录,大大减少了事件记录的开销,提高了事件记录的效率。
附图说明
图1a为本发明实施例一提供的一种操作系统事件记录方法的流程图;
图1b为本发明实施例一的技术方案所适用的一种事件块聚合存储的结构示意图;
图1c为本发明实施例一的技术方案所适用的一种事件池中的各项事件信息的存储形式的结构示意图;
图2a为本发明实施例二提供的另一种操作系统事件记录方法的流程图;
图2b为本发明实施例二的技术方案所适用的一种具体应用场景的示意图;
图3是本发明实施例三提供的一种操作系统事件记录装置的结构示意图;
图4是本发明实施例四提供的一种计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本发明实施例的说明书和权利要求书及附图中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有设定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
实施例一
图1a为本发明实施例一提供的一种操作系统事件记录方法的流程图。本实施例可适用于计算机系统中的微内核或者微内核上设置的虚拟机将需要记录的事件写入计算机系统中的事件记录系统的情况。本实施例的方法可以由事件记录装置执行,该装置可以通过软件和/或硬件的方式实现,该装置可集成在计算机系统中的微内核或者虚拟机中服务器。其中,本发明实施例中的计算机系统中包括有多个微内核;同时,在至少一个微内核中的,安装有一个或多个虚拟机。
相应的,该方法具体包括如下步骤:
S110、配置事件记录系统,所述事件记录系统包括多个用于记录事件的事件块。
其中,事件记录系统可以是指:由操作系统进行配置的,且能够进行事件记录的系统。具体的,该事件记录系统可以位于芯片中,可以由各微内核和各虚拟机共同访问的共享内存中。具体的,事件记录系统可以包括多个事件块,其中,事件块是一个设定大小的存储空间,可以用于记录事件。
可选的,配置事件记录系统可以包括如下事项中的一项或多项:为所述事件记录系统分配存储空间、配置事件块以及配置事件块管理信息。
其中,为事件记录系统分配存储空间可以是指在全部共享内存中,为该事件记录系统分配其所能使用进行事件记录的存储空间,具体的,可以通过分配起始存储地址和终止存储地址的方式,为该事件记录系统分配存储空间。
配置事件块可以是指将为所述事件记录系统分配的全部存储空间,划分为多个事件块,并指定每个事件块的大小。进一步的,在配置事件块时,还可以同时配置各事件块之间的聚合存储形式,以方便对各事件块进行有效的定位和转存。可选的,配置各事件块采用层级聚合的方式进行存储。
配置事件块管理信息可以是对事件记录系统中各事件块的管理信息进行配置。例如,该事件记录系统中共包括多少个事件块,当前已经记录至第几个事件块了等信息。
在本实施例的一个可选的实施方式中,所述配置事件块可以包括:配置各事件块采用层级聚合的方式存储,前一层级中的每个单元中包括后一层级中的多个单元的聚合结果,末位层级中的单元为事件块;所述配置事件块管理信息包括:配置每层级中各单元的管理信息。
其中,层级聚合可以是以多层次的方式将分散的聚集到一起,每一层又可以包括多个对象。示例性的,末位层级中的层级单元为事件块,且末位层级中可以包含多个事件块。可选的,可以为每个层级单元都设置各自固定的索引号,进而可以通过索引号定位到相应的层级单位中。
示例性的,以两层级的结构为例。其中,末位层级中的层级单元为事件块,并且末位层级包含多个事件块;前一层级中的层级单元为事件池,相应的,事件记录系统中可以包含有多个事件池。
相应的,所述配置事件块具体可以包括:配置至少一个事件池,每个事件池中包括多个事件块;
所述事件块管理信息具体包括:管理全部事件池的第一控制管理信息、以及各事件池中管理各事件块的第二控制管理信息;所述第二控制管理信息中包括当前记录事件块的目标索引信息;
其中,在图1b中示出了一种事件块聚合存储的结构示意图,如图1b所示,全部事件池通过第一控制管理信息进行统一管理,通过在第一控制管理信息中读取当前记录事件池的目标事件池索引号,可以在全部事件池中定位出当前记录事件池。同时,每个事件池中包括多个事件块,全部事件块通过与事件池对应的第二控制管理信息进行统一管理。相应的,在确定当前记录事件池之后,通过在与当前记录事件池对应的第二控制管理信息中读取当前记录事件块的目标事件块索引号,可以最终在当前记录事件池中的全部事件块中定位出当前记录事件块。
在上述各实施例的基础上,在图1c中示出了事件池中的各项事件信息的存储形式的结构示意图,如图1c所示,每个事件池中包括:第二控制管理信息以及多个事件块,其中,第二控制管理信息中可以包括:事件块总数、当前记录事件块对应的目标事件块索引号以及事件记录模式等。
事件块中包括的事件块记录信息可以包括:事件类型标识、时间戳以及记录参数等。
这样设置的好处在于:通过在事件记录系统中,将各事件块采用层级聚合的方式进行存储,并且事件记录通过索引定位在每个层级对应的相应位置中,实现了不依赖于操作系统组件的轻量级事件记录机制,并且事件记录方法更加高效、通用以及可移植性强。进一步的,多层级划分后,可以以事件池为单位,实现基于快速通道的事件流上传至宿主机,进行实时事件分析,并且可以实现上传过程与事件记录互不影响。
S120、在所述微内核和/或虚拟机上生成目标事件时,在所述事件记录系统中读取当前记录事件块的目标索引信息,并计算在将目标事件记录至当前记录事件块后对目标索引信息的更新索引结果。
在本实施例中,计算机系统中包括的多个微内核,一个或者若干个微内核上设置的虚拟机,可以通过执行预先规划的逻辑代码,独立执行各自的计算或者处理功能,进而可以独立记录各自所生成的需要进行记录的事件。
具体的,编程人员可以预先在与微内核或者虚拟机配套的逻辑代码中,希望进行事件记录的代码位置处,添加事件记录点。典型的,可以以加入钩子函数的方式加入事件记录点,进而当逻辑代码执行至添加钩子函数的代码位置时,通过执行钩子函数会相应触发生成待记录的目标事件。可选的,进行事件记录的代码位置可以包括:中断处理出入口,虚拟机调度点以及系统调用出入口等。
其中,事件记录系统可以是指在多核计算机系统中,可以被不同CPU访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存。任何一个缓存的数据被更新后,由于其他CPU也可能要存取,事件记录系统就需要立即更新,否则不同的CPU可能用到不同的数据。
典型的,在一个计算芯片中,可以包括一个或者多个CPU(Central ProcessingUnit,中央处理器)作为底层计算单元,在该计算芯片中,可以安装一个操作系统。在该操作系统中可以划分出多个微内核。所谓微内核,是指用于提供操作系统核心功能的内核的精简版本。进一步的,可以在每个微内核中,进一步划分出多个虚拟机。所谓虚拟机,是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
其中,操作系统可以为每个微内核分配一个或者多个CPU,而微内核也可以将所分配的一个或者多个CPU,继续分配给匹配的虚拟机进行调度使用。一般来说,一个虚拟机可以用于调度一个微内核。
在本实施例中,以事件块作为事件记录系统中的最小单位,来记录微内核或者虚拟机在运行过程中产生的各个事件。也即,当一个微内核或者虚拟机触发生成一个目标事件后,可以将目标事件完整记录到事件记录系统的一个事件块中。其中,事件块可以为事件记录系统中的一块固定大小,或者可变大小的独立存储空间,可以通过地址索引的方式进行读写操作。
具体的,可以将用于描述该目标事件的至少一项事件块记录信息写入事件块中,可选的,事件块记录信息包括但不限于:时间戳、事件号、CPU标识、虚拟机标识以及固定个数的用户自定义参数等。具体的,该用户自定义参数与目标事件的事件类型或者用户实际的事件记录需求关联,例如,如果当前记录的目标事件为鼠标点击事件,则该用户自定义参数可以为点击类型(双击或者单击)以及点击时长等。
其中,在事件记录系统中,可以直接以事件块为单位进行管理,也可以按照一定的组织方式,对事件块进行一个或多个层级的聚合处理,进而可以通过不同存储粒度,对各事件进行管理,本实施例对此并不进行限制。
其中,当前记录事件块,是指当前可以用于记录事件的那一个事件块。目标索引信息可以是当前记录事件块的定位信息,用于描述当前记录事件块在事件记录系统中的位置。示例性的,目标索引信息的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。
相应的,通过获取该当前记录事件块的目标索引信息,可以直接在事件记录系统中定位该当前记录事件块,进而可以在该当前记录事件块中,写入与目标事件对应的各项事件块记录信息。更新索引结果可以是目标事件记录至当前记录事件块后,对当前记录事件块的目标索引信息的更新结果,也即,在本机微内核或者虚拟机在完成将目标事件记录至当前记录事件块后,与新的当前记录事件块所对应的目标索引信息。
在一个具体的例子中,可以以指针的形式,存储当前记录事件块的目标索引信息。假设虚拟内存中共包括有100个事件块,而当前指针指向第39个事件块,通过读取该指针值,可以定位事件记录系统中当前可以进行事件记录的事件块为第39个事件块,在本地拿到该目标索引信息后,通过本地对该目标索引信息进行加1处理,可以将该指针值更新至指向第40个事件块,通过上述操作,可以确定当本机成功将目标事件记录至该第39号事件块后,再有新的微内核或者虚拟机(可以包括本机)想写入新的事件时,可以将该新的事件写入至第第40个事件块。
S130、调用原子操作执行将所述事件记录系统中的目标索引信息修改为更新索引结果的操作,并在确定原子操作执行成功时,在与目标索引信息匹配的当前记录事件块中记录目标事件。
其中,原子操作可以是指不会被线程调度机制打断的操作,原子操作一旦开始,就一直运行到结束,中间不会停止并且也不会切换到另一个线程。示例性的,首先微内核或者虚拟机会自动保证基本的内存操作的原子性,保证从系统内存当中读取或者写入一个字节是原子的,意思是当一个微内核或者虚拟机读取一个字节时,其他微内核或者虚拟机不能访问这个字节的内存地址。相应的,原子操作是不可分割的,在执行完毕之前不会被任何其它任务或事件中断。
在本实施例中,通过调用原子操作执行将事件记录系统中的目标索引信息修改为更新索引结果的操作,并在确定原子操作执行成功时,可以在与目标索引信息匹配的当前记录事件块中记录目标事件。
示例性的,如果调用原子操作执行将事件记录系统中的目标索引信息修改为更新索引结果的操作执行成功,说明目标索引信息指向的当前记录事件块可以进行待记录事件的事件记录。因此,其他微内核或者虚拟机在需要进行事件记录时,仅会拿到更新索引结果,不可能再次拿到该目标索引信息,进而无法在目标索引信息指向的当前记录事件块中完成事件记录。
如果当前原子操作执行不成功,说明目标索引信息指向的当前记录事件块不可以进行该目标事件的事件记录。此时,说明在同一时间有其他微内核或者虚拟机在当前记录事件块中记录了其所触发生成的事件,因此,本机可以等待一定的时间后,重新返回执行S120,直至最终成功的将该目标事件记录至事件记录系统中。
需要再次强调的是,本发明实施例的技术方案通过调用原子操作执行将事件记录系统中的目标索引信息修改为更新索引结果的操作,并判断该操作是否成功执行的方式,可高效解决多微内核间或者多虚拟机间对于事件块的索引标识的同步获取,当这个唯一的索引标识被某一微内核或者虚拟机所获取后,对应的事件块内所记录的信息不存在竞争关系,因此事件记录过程中无需进行关中断自旋锁等保护操作,可有效降低事件记录引入的对于系统实时性的影响。
进一步的,可以通过相对预设存储地址的偏移量的方式作为该目标索引信息,因此,在不同的虚拟内存空间映射统一物理内存的情况下,对于全部事件块的操作具备一致性。
本发明实施例所提供的技术方案,通过配置事件记录系统,所述事件记录系统包括多个用于记录事件的事件块;在所述微内核和/或虚拟机上生成目标事件时,在所述事件记录系统中读取当前记录事件块的目标索引信息,并计算在将目标事件记录至当前记录事件块后对目标索引信息的更新索引结果;调用原子操作执行将所述事件记录系统中的目标索引信息修改为更新索引结果的操作,并在确定原子操作执行成功时,在与目标索引信息匹配的当前记录事件块中记录目标事件。本发明实施例的技术方案提供了一种简洁、通用的事件记录的新方式,仅通过使用事件记录系统及原子操作机制,实现了计算机系统中微内核与微内核事件、以及微内核和虚拟机间统一的事件记录,大大减少了事件记录的开销,提高了事件记录的效率。
可选的,所述配置事件记录系统还可以包括:配置事件记录限制信息;
相应的,在所述微内核和/或虚拟机上生成目标事件时,还可以包括:查询所述事件记录系统中的事件记录限制信息,判断是否满足对目标事件的记录条件,当满足时,执行在所述事件记录系统中读取当前记录事件块的目标索引信息的操作。
事件记录限制信息具体是指存储于事件记录系统中的,用于限定事件记录条件的信息。该事件记录信息中可以包括:是否允许各微内核或者各虚拟机在事件记录系统中记录事件;也可以包括:允许哪些微内核(或者微内核上的虚拟机)在事件记录系统中记录事件;还可以包括:允许记录哪些类型的事件(例如,系统事件或者用户自定义事件)等,本实施例对此并不进行限制。
在本实施例中,在计算机系统中的微内核或者虚拟机中触发生成一个目标事件后,可以首先读取事件记录系统中记录的事件记录限制信息,并根据该事件记录限制信息,确定是否允许将该目标事件记录至事件记录系统的一个事件块中,也即,判断是否满足对目标事件的记录条件。其中,在确定满足对目标事件的记录条件时,可以执行后续的事件记录流程;在确定不满足对目标事件的记录条件时,可以直接丢弃该目标事件,而不将该目标事件记录至事件记录系统中。
在本实施例的一个可选的实施方式中,查询所述事件记录系统中的事件记录限制信息,判断是否满足对目标事件的记录条件,可以包括下述至少一项:
查询所述事件记录系统中记录的事件记录使能标识位,并检测事件记录使能标识位是否标识为开启状态,若是,则确定满足对目标事件的记录条件;
查询所述事件记录系统中的CPU使能列表,并检测CPU使能列表中是否包含与所述目标事件对应的CPU,若是,则确定满足对目标事件的记录条件;
查询所述事件记录系统中记录的虚拟机使能列表,并检测所述虚拟机使能列表中是否包含与所述目标事件对应的虚拟机,若是,则确定满足对目标事件的记录条件;以及
查询所述事件记录系统中记录的事件类型使能列表,并检测事件类型使能列表中是否包含目标事件的事件类型,若是,则确定满足对目标事件的记录条件。
其中,事件记录使能标识位可以用于描述当前事件记录系统上是否允许对目标事件进行事件记录,该事件记录使能标识位可以包括开启状态或者关闭状态,开启状态则表示满足目标事件的记录条件,可以进行事件记录;关闭状态则表示不满足目标事件的记录条件,不可以进行事件记录。
CPU使能列表可以用于描述计算机系统中的哪些CPU允许进行事件记录。其中,微内核或者虚拟机均可以调度所分配的CPU,生成上述目标事件,进而无论目标事件具体是由微内核或者虚拟机发出,该目标事件中均会携带有CPU标识,通过将目标事件中的CPU标识与CPU使能列表进行比对,可以间接判断是否允许微内核或者虚拟机对目标事件进行存储。
具体的,可以通过CPU掩码的形式,构建该CPU使能列表。也即,如果一个计算机系统中包括有8个CPU,则可以构建一个8位二进制的CPU掩码,每一个bit位用于限定一个特定的CPU是否允许进行事件记录。在一个具体的例子中,如果CPU掩码中某一个bit位为“1”,代表与该bit位对应的CPU允许进行事件记录。
例如,计算机系统中共包括CPU1和CPU2,进而可以通过一个2位的CPU掩码代表与该计算机系统匹配的微内核使能列表。其中,该CPU掩码中的第一个bit位用于限定CPU1的使能状态,第二个bit位用于限定CPU2的使能状态。如果该CPU掩码为“10”,则说明在该计算机系统中,CPU1允许进行事件记录,而CPU2不允许进行事件记录。
相类似的,虚拟机使能列表可以用于描述计算机系统中的哪些虚拟机允许进行事件记录。可以理解的是,当目标事件由一个具体的虚拟机生成并发出,则该目标事件中会携带有虚拟机标识。进而,通过将目标事件中的虚拟机标识与虚拟机使能列表进行比对,可以判断是否允许该虚拟机对目标事件进行存储。
事件类型使能列表可以用于描述哪些类型的事件允许进行事件记录。相类似的,可以通过事件类型掩码的形式,构建该事件类型使能列表。也即,如果当计算机系统的微内核或者虚拟机在运行过程中,一共可以产生256种事件类型的事件,则可以构建一个256位二进制的事件类型掩码,每一个bit位用于限定一个特定类型的事件是否允许进行事件记录。
在本实施例中,通过在事件记录限制信息中的配置事件记录使能标识位、CPU使能列表、虚拟机使能列表以及事件类型使能列表中的一项或者多项,可以灵活配置该计算机系统中的事件记录条件,相应的,当一个微内核或者虚拟机触发生成一个目标事件后,通过将目标事件中包括的CPU标识、虚拟机标识或者该目标事件的事件类型与该配置事件记录限制信息进行比对,可以简单、便捷的确定出是否满足对目标事件的记录条件。
通过上述设置,编程人员可以灵活的根据实际的事件记录需求,随时设定出符合需要不同维度需求的事件记录限制信息,进而使得待记录事件能够更加准确的被记录,实现了事件记录机制的简化,提高了事件记录处理的工作效率。
实施例二
图2a为本发明实施例二提供的另一种操作系统事件记录方法的流程图。本实施例以上述各实施例为基础进行优化,在本实施例中,各事件块采用两层级聚合的方式存储于事件记录系统中,其中,低层级为事件块,高层级为事件池,一个事件池中包括多个事件块。
相应的,本发明实施例的技术方案可以包括下述操作:
S210、配置事件记录系统,所述事件记录系统包括多个用于记录事件的事件块。
在本实施例中,在事件记录系统中具体包括:至少一个事件池,每个事件池中包括多个事件块。
S220、在所述微内核和/或虚拟机上生成目标事件时,在所述事件记录系统中读取当前记录事件块的目标索引信息。
可选的,所述配置事件块具体包括:配置至少一个事件池,每个事件池中包括多个事件块;所述事件块管理信息具体包括:管理全部事件池的第一控制管理信息、以及各事件池中管理各事件块的第二控制管理信息;所述第二控制管理信息中包括当前记录事件块的目标索引信息;所述读取当前记录事件块的目标索引信息,包括:获取所述第一控制管理信息,并在第一控制管理信息中,读取与当前记录事件池对应的目标事件池索引号;根据目标事件池索引号,定位当前记录事件池,并根据定位结果,获取所述第二控制管理信息;在所述第二控制管理信息中,读取当前记录事件块在当前记录事件池中的目标事件块索引号。
其中,第一控制管理信息可以是记录全部事件池的信息,可以通过第一控制管理信息获取当前记录事件池对应的目标事件池索引号。第一控制管理信息中可以具体包括:事件池总数和当前记录事件池对应的目标事件池索引号等。具体的,该第一控制管理信息中还可以包括:事件记录限制信息。相应的,可以首先获取第一控制管理信息,并在该第一控制管理信息中查询事件记录限制信息,进而判断是否满足对目标事件的记录条件。
其中,事件记录限制信息中可以具体包括:事件记录使能标识位、CPU使能列表、虚拟机使能列表以及事件类型使能列表等。
其中,第二控制信息管理可以是记录全部事件块的信息,可以通过第二控制信息管理获取当前记录事件块对应的目标事件块索引号。第二控制管理信息中可以具体包括:事件块总数、当前记录事件块对应的目标事件块索引号以及事件记录模式等。
S230、对所述目标事件块索引号进行自增处理,得到第一自增处理结果,并读取所述第二控制管理信息中的事件块总数。
其中,第一自增结果值可以是在索引到目标事件块之后,对目标事件块索引号在加一处理的到的新的索引号的值。
S240、判断第一自增处理结果是否小于或者等于所述事件块总数,如果是,则执行S250;如果否,则执行S260。
S250、将所述第一自增处理结果确定为所述更新索引结果,执行S260。
S260、获取更新事件池,并将所述更新事件池的索引号,和/或所述更新事件池中初始事件块的索引号确定为所述更新索引结果。
可选的,获取更新事件池,并将所述更新事件池的索引号,和/或所述更新事件池中初始事件块的索引号确定为所述更新索引结果,可以包括:
读取所述第二控制管理信息中的事件记录模式;如果确定所述事件记录模式为自循环模式,则将当前记录事件池确定为更新事件池,并将所述更新事件池中初始事件块的索引号作为对目标事件块索引号的更新索引结果;如果确定事件记录模式为非自循环模式,则对所述目标事件池索引号进行自增处理,得到第二自增处理结果,并读取所述第一控制管理信息中的事件池总数;判断第二自增处理结果是否大于事件池总数;若是,则确定初始事件池为所述更新事件池,将所述更新事件池的索引号作为对目标事件池索引号的更新索引结果,并将更新事件池中初始事件块的索引号作为对目标事件块索引号的更新索引结果;若否,则将当前记录事件池的后一事件池确定为更新事件池,将第二自增处理结果作为对目标事件池索引号的更新索引结果,并将与所述更新事件池中初始记录块的索引号作为对目标事件块索引号的更新索引结果。
其中,事件记录模式可以包括自循环模式或者非自循环的模式。相应的,自循环模式是当前事件池对应的多个事件块都记录了事件,即全部事件块已经记录满,此时再开始从当前记录事件池中初始事件块记录事件。非自循环的模式是当前事件池对应的全部事件块已经记录满,则索引定位到下一个事件池进行事件记录。其中,第二自增结果值可以是在索引到目标事件池之后,对目标事件池索引号在加一处理的到的索引号的值。其中,初始事件块的索引号可以是当前事件池中对应的第一个事件块的索引号。
S270、调用原子操作执行将所述事件记录系统中的目标索引信息修改为更新索引结果的操作,并在确定原子操作执行成功时,在与目标索引信息匹配的当前记录事件块中记录目标事件。
在本实施例中,通过在事件记录系统中,获取与全部事件池对应的第一控制管理信息,并在第一控制管理信息中,读取与当前记录事件池对应的目标事件池索引号;根据目标事件池索引号,在事件记录系统中定位当前记录事件池,并根据定位结果,获取与当前记录事件池中的全部事件块对应的第二控制管理信息;在第二控制管理信息中,读取当前记录事件块在当前记录事件池中的目标事件块索引号。进一步的,在本地计算在将目标事件记录至当前记录事件块后,则需要对目标索引信息的更新索引结果事件块。
本发明实施例所提供的技术方案,通过在事件记录系统中,各事件块采用层级聚合的方式进行存储,并且事件记录通过设置第一控制信息管理和第二控制信息管理来索引定位在每个层级对应的相应位置中,进一步的,设置第一自增结果值和第二自增结果值对索引信息进行更新处理。可以使得事件记录更加准确和便捷,简化了事件记录的操作,进而提高待记录事件的处理效率。
在上述各实施例的基础上,还可以包括:在检测到所述事件记录系统中的至少一个事件池,或者至少一个事件块中已记满事件时,将已记满事件的各所述事件池或者事件块中的内容转存至外部存储设备中。
其中,外部存储设备可以是用于储存信息的外部设备,通常是将信息数字化后再以利用电、磁或光学等方式的媒体加以存储。
在本实施例中,操作系统中可以设置专门的事件记录总控模块,通过该事件记录总控模块可以判断当前事件块或者事件池中的记录内容是否已记录满,如果记录满,则需要将事件池或者事件块中的内容转存至外部存储设备中。并且事件记录总控模块还可以对第一控制管理信息和第二控制管理信息进行配置。
这样设置的好处在于:通过判断当前事件块或者事件池中的记录内容是否已记录满,来及时对该事件记录系统进行内存的清理。这样使得对待记录事件的记录更加稳定和准确。从而进一步地简化了事件记录的操作,提高了工作效率。
具体的应用场景
如图2b为一种操作系统事件记录方法中的一种具体应用场景。其中,在本应用场景中,设置全部事件池的个数为X,每个事件池包含Y个事件块,当前索引到事件池的索引号为A,对应事件池A的事件块的索引号为B。
在本应用场景中,如果确定计算机系统中的微内核O设置的虚拟机V中生成了目标事件。该目标事件的事件类型的类型标识为001。该操作系统针对该目标事件,会顺序执行下述操作:首先,需要查询并检测事件记录使能标识位是否标识为开启状态,若是,则确定满足对目标事件的一项记录条件;进一步的,需要确定该目标事件中携带的CPU标识是否在事件记录系统中记录的CPU使能列表中,若是,则确定满足对目标事件的一项记录条件;接着,需要确定目标事件中携带的虚拟机标识是否在事件记录系统中记录的虚拟机使能列表中,若是,则确定满足对目标事件的一项记录条件;相应的,需要确定目标事件的事件类型的类型标识为001是否在事件记录系统中记录的事件类型使能列表中,若是,则确定满足对目标事件的事件记录条件。
如果确定上述三项记录条件均满足时,则在事件记录系统中读取当前记录事件块的目标索引信息,并本地计算在将目标事件记录至当前记录事件块后,对目标索引信息的更新索引结果。其中,假设索引到当前记录事件池的目标事件池索引号为A,当前记录事件池A中当前记录事件块的目标事件块索引号为B,且确定当前记录事件池中包括的事件块总数为Y,事件记录系统中包括的事件池总数为X。相应的,本地计算在将目标事件记录至当前记录事件块后,对目标索引信息的更新索引结果,具体包括下述操作:
首先判断目标事件块索引号B的第一自增结果值是否大于事件块总数Y:如果确定B+1>Y,则判断需要判断当前记录事件池的事件记录模式。如果确定事件记录模式为自循环模式,则将当前记录事件池中初始事件块的索引号,典型的,索引号0作为对目标事件块索引号B的更新索引结果。如果确定事件记录模式为非自循环模式,则继续判断目标事件池索引号A的第二自增结果值是否大于事件池总数X:如果确定A+1>X,则需要获取初始事件池的索引号,典型的,索引号0作为对目标事件池索引号的更新索引结果,并将初始事件池0中初始事件块的索引号,典型的,索引号0作为对目标事件块索引号的更新索引结果;如果A+1≤X,则将A+1作为对目标事件池索引号的更新索引结果,并将与第二自增结果值A+1对应的事件池中初始记录块的索引号,典型的,索引号0作为对目标事件块索引号的更新索引结果。
此外,如果确定B+1≤Y时,则将第一自增结果值B+1作为对目标事件块索引号的更新索引结果。进一步的,调用原子操作执行将事件记录系统中的目标索引信息修改为更新索引结果的操作,并在确定原子操作执行成功时,在与目标索引信息匹配的当前记录事件块中记录目标事件。
实施例三
图3是本发明实施例三提供的一种操作系统事件记录装置的结构示意图,本实施例所提供的一种操作系统事件记录装置可以通过软件和/或硬件来实现,该装置可集成在操作系统中。其中,所述操作系统包括微内核和其上运行的若干个虚拟机。
如图3所示,该装置具体可包括:事件记录系统配置模块310、更新索引结果计算模块320和目标事件记录模块330。
其中,事件记录系统配置模块310,用于配置事件记录系统,所述事件记录系统包括多个用于记录事件的事件块。
更新索引结果计算模块320,在所述微内核和/或虚拟机上生成目标事件时,在所述事件记录系统中读取当前记录事件块的目标索引信息,并计算在将目标事件记录至当前记录事件块后对目标索引信息的更新索引结果。
目标事件记录模块330,用于调用原子操作执行将所述事件记录系统中的目标索引信息修改为更新索引结果的操作,并在确定原子操作执行成功时,在与目标索引信息匹配的当前记录事件块中记录目标事件。
本发明实施例所提供的技术方案,通过配置事件记录系统,所述事件记录系统包括多个用于记录事件的事件块;在所述微内核和/或虚拟机上生成目标事件时,在所述事件记录系统中读取当前记录事件块的目标索引信息,并计算在将目标事件记录至当前记录事件块后对目标索引信息的更新索引结果;调用原子操作执行将所述事件记录系统中的目标索引信息修改为更新索引结果的操作,并在确定原子操作执行成功时,在与目标索引信息匹配的当前记录事件块中记录目标事件。本发明实施例的技术方案提供了一种简洁、通用的事件记录的新方式,仅通过使用事件记录系统及原子操作机制,实现了计算机系统中微内核与微内核事件、以及微内核和虚拟机间统一的事件记录,大大减少了事件记录的开销,提高了事件记录的效率。
在上述各实施例的基础上,事件记录系统配置模块310,可以具体用于:配置事件记录系统包括如下事项中的一项或多项:为所述事件记录系统分配存储空间、配置事件块以及配置事件块管理信息。
在上述各实施例的基础上,事件记录系统配置模块310,可以具体用于:所述配置事件块包括:配置各事件块采用层级聚合的方式存储,前一层级中的每个单元中包括后一层级中的多个单元的聚合结果,末位层级中的单元为事件块;所述配置事件块管理信息包括:配置每层级中各单元的管理信息。
在上述各实施例的基础上,事件记录系统配置模块310,可以具体用于:所述配置事件块具体包括:配置至少一个事件池,每个事件池中包括多个事件块;所述事件块管理信息具体包括:管理全部事件池的第一控制管理信息、以及各事件池中管理各事件块的第二控制管理信息;所述第二控制管理信息中包括当前记录事件块的目标索引信息;所述读取当前记录事件块的目标索引信息,包括:获取所述第一控制管理信息,并在第一控制管理信息中,读取与当前记录事件池对应的目标事件池索引号;根据目标事件池索引号,定位当前记录事件池,并根据定位结果,获取所述第二控制管理信息;在所述第二控制管理信息中,读取当前记录事件块在当前记录事件池中的目标事件块索引号。
在上述各实施例的基础上,更新索引结果计算模块320,可以具体包括:第一自增处理结果得到单元,用于对所述目标事件块索引号进行自增处理,得到第一自增处理结果,并读取所述第二控制管理信息中的事件块总数;更新索引结果确定单元,用于如果确定所述第一自增处理结果小于或者等于所述事件块总数,则将所述第一自增处理结果确定为所述更新索引结果;事件池的索引号更新单元,用于如果确定所述第一自增处理结果大于所述事件块总数,则获取更新事件池,并将所述更新事件池的索引号,和/或所述更新事件池中初始事件块的索引号确定为所述更新索引结果。
在上述各实施例的基础上,事件池的索引号更新单元,可以具体用于:读取所述第二控制管理信息中的事件记录模式;如果确定所述事件记录模式为自循环模式,则将当前记录事件池确定为更新事件池,并将所述更新事件池中初始事件块的索引号作为对目标事件块索引号的更新索引结果;如果确定事件记录模式为非自循环模式,则对所述目标事件池索引号进行自增处理,得到第二自增处理结果,并读取所述第一控制管理信息中的事件池总数;判断第二自增处理结果是否大于事件池总数;若是,则确定初始事件池为所述更新事件池,将所述更新事件池的索引号作为对目标事件池索引号的更新索引结果,并将更新事件池中初始事件块的索引号作为对目标事件块索引号的更新索引结果;若否,则将当前记录事件池的后一事件池确定为更新事件池,将第二自增处理结果作为对目标事件池索引号的更新索引结果,并将与所述更新事件池中初始记录块的索引号作为对目标事件块索引号的更新索引结果。
在上述各实施例的基础上,事件记录系统配置模块310,可以具体用于:所述配置事件记录系统还包括:配置事件记录限制信息;更新索引结果计算模块320,可以具体用于:查询所述事件记录系统中的事件记录限制信息,判断是否满足对目标事件的记录条件,当满足时,执行在所述事件记录系统中读取当前记录事件块的目标索引信息的操作。
在上述各实施例的基础上,事件记录系统配置模块310,可以具体用于:查询所述事件记录系统中的事件记录限制信息,判断是否满足对目标事件的记录条件,包括下述至少一项:查询所述事件记录系统中的事件记录使能标识位,并检测事件记录使能标识位是否标识为开启状态,若是,则确定满足对目标事件的记录条件;查询所述事件记录系统中的CPU使能列表,并检测CPU使能列表中是否包含与所述目标事件对应的CPU,若是,则确定满足对目标事件的记录条件;查询所述事件记录系统中记录的虚拟机使能列表,并检测所述虚拟机使能列表中是否包含与所述目标事件对应的虚拟机,若是,则确定满足对目标事件的记录条件;以及查询所述事件记录系统中记录的事件类型使能列表,并检测事件类型使能列表中是否包含目标事件的事件类型,若是,则确定满足对目标事件的记录条件。
在上述各实施例的基础上,事件记录系统配置模块310,可以具体用于:在检测到所述事件记录系统中的至少一个事件池,或者至少一个事件块中已记满事件时,将已记满事件的各所述事件池或者事件块中的内容转存至外部存储设备中。
上述操作系统事件记录装置可执行本发明任意实施例所提供的操作系统事件记录方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4是本发明实施例四提供的一种计算机系统的结构示意图。本实施例以上述各实施例为基础进行优化,在本实施例中,计算机系统可以包括操作系统和事件记录系统;操作系统中包括至少一个微内核,以及运行于每个微内核上的若干个虚拟机,每个微内核分配有至少一个CPU,每个CPU上用于运行至少一个虚拟机;事件记录系统设置于用于各微内核和各虚拟机共同访问的共享内存中;事件记录系统中包括多个用于记录事件的事件块。
其中,以本实施例的方案中的操作系统仅包括一个微内核为例,该微内核通过分区的方式划分出多个虚拟机,得到微内核分时分区系统。相应的,可以由该微内核初始化并管理一块预先配置大小的物理内存,用于生成事件记录系统。同时,微内核可以向每个分区中的虚拟机提供事件记录子系统所在的物理内存的相关信息,由虚拟机通过内存映射到虚拟机内部虚拟地址后使用。
其中,微内核可以设计成在很小的内存空间内增加移植性,提供模块化设计,以使用户安装不同的接口。虚拟机可以指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现,在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。
可选的,配置事件记录系统包括如下事项中的一项或多项:为所述事件记录系统分配存储空间、配置事件块以及配置事件块管理信息。
可选的,所述配置事件块包括:配置各事件块采用层级聚合的方式存储,前一层级中的每个单元中包括后一层级中的多个单元的聚合结果,末位层级中的单元为事件块;所述配置事件块管理信息包括:配置每层级中各单元的管理信息。
可选的,所述配置事件块具体包括:配置至少一个事件池,每个事件池中包括多个事件块;所述事件块管理信息具体包括:管理全部事件池的第一控制管理信息、以及各事件池中管理各事件块的第二控制管理信息;所述第二控制管理信息中包括当前记录事件块的目标索引信息;所述读取当前记录事件块的目标索引信息,包括:获取所述第一控制管理信息,并在第一控制管理信息中,读取与当前记录事件池对应的目标事件池索引号;根据目标事件池索引号,定位当前记录事件池,并根据定位结果,获取所述第二控制管理信息;在所述第二控制管理信息中,读取当前记录事件块在当前记录事件池中的目标事件块索引号。
可选的,所述计算在将目标事件记录至当前记录事件块后对目标索引信息的更新索引结果,包括:对所述目标事件块索引号进行自增处理,得到第一自增处理结果,并读取所述第二控制管理信息中的事件块总数;如果确定所述第一自增处理结果小于或者等于所述事件块总数,则将所述第一自增处理结果确定为所述更新索引结果;如果确定所述第一自增处理结果大于所述事件块总数,则获取更新事件池,并将所述更新事件池的索引号,和/或所述更新事件池中初始事件块的索引号确定为所述更新索引结果。
可选的,获取更新事件池,并将所述更新事件池的索引号,和/或所述更新事件池中初始事件块的索引号确定为所述更新索引结果,包括:读取所述第二控制管理信息中的事件记录模式;如果确定所述事件记录模式为自循环模式,则将当前记录事件池确定为更新事件池,并将所述更新事件池中初始事件块的索引号作为对目标事件块索引号的更新索引结果;如果确定事件记录模式为非自循环模式,则对所述目标事件池索引号进行自增处理,得到第二自增处理结果,并读取所述第一控制管理信息中的事件池总数;判断第二自增处理结果是否大于事件池总数;若是,则确定初始事件池为所述更新事件池,将所述更新事件池的索引号作为对目标事件池索引号的更新索引结果,并将更新事件池中初始事件块的索引号作为对目标事件块索引号的更新索引结果;若否,则将当前记录事件池的后一事件池确定为更新事件池,将第二自增处理结果作为对目标事件池索引号的更新索引结果,并将与所述更新事件池中初始记录块的索引号作为对目标事件块索引号的更新索引结果。
可选的,所述配置事件记录系统还包括:配置事件记录限制信息;在所述微内核和/或虚拟机上生成目标事件时,还包括:查询所述事件记录系统中的事件记录限制信息,判断是否满足对目标事件的记录条件,当满足时,执行在所述事件记录系统中读取当前记录事件块的目标索引信息的操作。
可选的,查询所述事件记录系统中的事件记录限制信息,判断是否满足对目标事件的记录条件,包括下述至少一项:查询所述事件记录系统中的事件记录使能标识位,并检测事件记录使能标识位是否标识为开启状态,若是,则确定满足对目标事件的记录条件;查询所述事件记录系统中的CPU使能列表,并检测CPU使能列表中是否包含与所述目标事件对应的CPU,若是,则确定满足对目标事件的记录条件;查询所述事件记录系统中记录的虚拟机使能列表,并检测所述虚拟机使能列表中是否包含与所述目标事件对应的虚拟机,若是,则确定满足对目标事件的记录条件;以及查询所述事件记录系统中记录的事件类型使能列表,并检测事件类型使能列表中是否包含目标事件的事件类型,若是,则确定满足对目标事件的记录条件。
可选的,还包括:在检测到所述事件记录系统中的至少一个事件池,或者至少一个事件块中已记满事件时,将已记满事件的各所述事件池或者事件块中的内容转存至外部存储设备中。
本发明实施例所提供的技术方案提供的计算机系统,解决了事件记录开销大、用户空间和内核空间无法同量级使用的问题,实现了事件记录机制的简化,提高了事件记录处理的工作效率。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (8)
1.一种操作系统事件记录方法,所述操作系统包括微内核和其上运行的若干个虚拟机,其特征在于,包括:
配置事件记录系统,所述事件记录系统包括多个用于记录事件的事件块;
在所述微内核和/或虚拟机上生成目标事件时,在所述事件记录系统中读取当前记录事件块的目标索引信息,并计算在将目标事件记录至当前记录事件块后对目标索引信息的更新索引结果;
调用原子操作执行将所述事件记录系统中的目标索引信息修改为更新索引结果的操作,并在确定原子操作执行成功时,在与目标索引信息匹配的当前记录事件块中记录目标事件;
其中,所述配置事件记录系统包括如下事项中的一项或多项:
为所述事件记录系统分配存储空间、配置事件块以及配置事件块管理信息;
其中,所述配置事件块包括:
配置各事件块采用层级聚合的方式存储,前一层级中的每个单元中包括后一层级中的多个单元的聚合结果,末位层级中的单元为事件块;
所述配置事件块管理信息包括:配置每层级中各单元的管理信息;
其中,所述配置事件块具体包括:
配置至少一个事件池,每个事件池中包括多个事件块;
所述事件块管理信息具体包括:管理全部事件池的第一控制管理信息、以及各事件池中管理各事件块的第二控制管理信息;所述第二控制管理信息中包括当前记录事件块的目标索引信息;
所述读取当前记录事件块的目标索引信息,包括:
获取所述第一控制管理信息,并在第一控制管理信息中,读取与当前记录事件池对应的目标事件池索引号;
根据目标事件池索引号,定位当前记录事件池,并根据定位结果,获取所述第二控制管理信息;
在所述第二控制管理信息中,读取当前记录事件块在当前记录事件池中的目标事件块索引号。
2.根据权利要求1所述的方法,其特征在于,所述计算在将目标事件记录至当前记录事件块后对目标索引信息的更新索引结果,包括:
对所述目标事件块索引号进行自增处理,得到第一自增处理结果,并读取所述第二控制管理信息中的事件块总数;
如果确定所述第一自增处理结果小于或者等于所述事件块总数,则将所述第一自增处理结果确定为所述更新索引结果;
如果确定所述第一自增处理结果大于所述事件块总数,则获取更新事件池,并将所述更新事件池的索引号,和/或所述更新事件池中初始事件块的索引号确定为所述更新索引结果。
3.根据权利要求2所述的方法,其特征在于,获取更新事件池,并将所述更新事件池的索引号,和/或所述更新事件池中初始事件块的索引号确定为所述更新索引结果,包括:
读取所述第二控制管理信息中的事件记录模式;
如果确定所述事件记录模式为自循环模式,则将当前记录事件池确定为更新事件池,并将所述更新事件池中初始事件块的索引号作为对目标事件块索引号的更新索引结果;
如果确定事件记录模式为非自循环模式,则对所述目标事件池索引号进行自增处理,得到第二自增处理结果,并读取所述第一控制管理信息中的事件池总数;
判断第二自增处理结果是否大于事件池总数;
若是,则确定初始事件池为所述更新事件池,将所述更新事件池的索引号作为对目标事件池索引号的更新索引结果,并将更新事件池中初始事件块的索引号作为对目标事件块索引号的更新索引结果;
若否,则将当前记录事件池的后一事件池确定为更新事件池,将第二自增处理结果作为对目标事件池索引号的更新索引结果,并将与所述更新事件池中初始记录块的索引号作为对目标事件块索引号的更新索引结果。
4.根据权利要求1所述的方法,其特征在于,所述配置事件记录系统还包括:配置事件记录限制信息;
在所述微内核和/或虚拟机上生成目标事件时,还包括:
查询所述事件记录系统中的事件记录限制信息,判断是否满足对目标事件的记录条件,当满足时,执行在所述事件记录系统中读取当前记录事件块的目标索引信息的操作。
5.根据权利要求4所述的方法,其特征在于,查询所述事件记录系统中的事件记录限制信息,判断是否满足对目标事件的记录条件,包括下述至少一项:
查询所述事件记录系统中的事件记录使能标识位,并检测事件记录使能标识位是否标识为开启状态,若是,则确定满足对目标事件的记录条件;
查询所述事件记录系统中的中央处理器CPU使能列表,并检测CPU使能列表中是否包含与所述目标事件对应的CPU,若是,则确定满足对目标事件的记录条件;
查询所述事件记录系统中记录的虚拟机使能列表,并检测所述虚拟机使能列表中是否包含与所述目标事件对应的虚拟机,若是,则确定满足对目标事件的记录条件;以及
查询所述事件记录系统中记录的事件类型使能列表,并检测事件类型使能列表中是否包含目标事件的事件类型,若是,则确定满足对目标事件的记录条件。
6.根据权利要求1所述的方法,其特征在于,还包括:
在检测到所述事件记录系统中的至少一个事件池,或者至少一个事件块中已记满事件时,将已记满事件的各所述事件池或者事件块中的内容转存至外部存储设备中。
7.一种操作系统事件记录装置,所述操作系统包括微内核和其上运行的若干个虚拟机,其特征在于,包括:
事件记录系统配置模块,用于配置事件记录系统,所述事件记录系统包括多个用于记录事件的事件块;
更新索引结果计算模块,在所述微内核和/或虚拟机上生成目标事件时,在所述事件记录系统中读取当前记录事件块的目标索引信息,并计算在将目标事件记录至当前记录事件块后对目标索引信息的更新索引结果;
目标事件记录模块,用于调用原子操作执行将所述事件记录系统中的目标索引信息修改为更新索引结果的操作,并在确定原子操作执行成功时,在与目标索引信息匹配的当前记录事件块中记录目标事件;
其中,所述事件记录系统配置模块,具体用于:配置事件记录系统包括如下事项中的一项或多项:为所述事件记录系统分配存储空间、配置事件块以及配置事件块管理信息;
其中,所述事件记录系统配置模块,还具体用于:所述配置事件块包括:配置各事件块采用层级聚合的方式存储,前一层级中的每个单元中包括后一层级中的多个单元的聚合结果,末位层级中的单元为事件块;所述配置事件块管理信息包括:配置每层级中各单元的管理信息;
其中,所述事件记录系统配置模块,还具体用于:所述配置事件块具体包括:配置至少一个事件池,每个事件池中包括多个事件块;所述事件块管理信息具体包括:管理全部事件池的第一控制管理信息、以及各事件池中管理各事件块的第二控制管理信息;所述第二控制管理信息中包括当前记录事件块的目标索引信息;所述读取当前记录事件块的目标索引信息,包括:获取所述第一控制管理信息,并在第一控制管理信息中,读取与当前记录事件池对应的目标事件池索引号;根据目标事件池索引号,定位当前记录事件池,并根据定位结果,获取所述第二控制管理信息;在所述第二控制管理信息中,读取当前记录事件块在当前记录事件池中的目标事件块索引号。
8.一种计算机系统,其特征在于,包括:操作系统和事件记录系统;
所述操作系统中包括至少一个微内核,以及运行于每个微内核上的若干个虚拟机,每个微内核分配有至少一个中央处理器CPU,每个CPU上用于运行至少一个虚拟机;所述事件记录系统设置于用于各微内核和各虚拟机共同访问的共享内存中;
所述事件记录系统中包括多个用于记录事件的事件块;
其中,所述操作系统,用于执行如权利要求1-6中任一项所述的操作系统事件记录方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111641076.9A CN114327769B (zh) | 2021-12-29 | 2021-12-29 | 一种操作系统事件记录方法、装置及计算机系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111641076.9A CN114327769B (zh) | 2021-12-29 | 2021-12-29 | 一种操作系统事件记录方法、装置及计算机系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114327769A CN114327769A (zh) | 2022-04-12 |
CN114327769B true CN114327769B (zh) | 2023-01-06 |
Family
ID=81016492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111641076.9A Active CN114327769B (zh) | 2021-12-29 | 2021-12-29 | 一种操作系统事件记录方法、装置及计算机系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114327769B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115993940B (zh) * | 2023-03-23 | 2023-07-25 | 青岛鼎信通讯股份有限公司 | 一种电量防丢失方法、装置、电能表设备以及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7774790B1 (en) * | 2000-07-18 | 2010-08-10 | Apple Inc. | Event logging and performance analysis system for applications |
US7188220B2 (en) * | 2003-03-24 | 2007-03-06 | American Megatrends, Inc. | Method and system for managing the contents of an event log stored within a computer |
CN107203544A (zh) * | 2016-03-17 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 一种业务处理方法和装置 |
CN106789195A (zh) * | 2016-12-02 | 2017-05-31 | 华为技术有限公司 | 一种事件处理方法及网管设备、服务器 |
CN106874424B (zh) * | 2017-01-25 | 2019-10-15 | 杭州淘淘搜科技有限公司 | 一种基于MongoDB和Redis的网页数据采集处理方法及系统 |
US10922298B2 (en) * | 2019-01-30 | 2021-02-16 | Walmart Apollo, Llc | System and method for indexing time-series-based data |
-
2021
- 2021-12-29 CN CN202111641076.9A patent/CN114327769B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114327769A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5647203B2 (ja) | メモリページ管理 | |
US20120079212A1 (en) | Architecture for sharing caches among multiple processes | |
CN108932154B (zh) | 一种分布式虚拟机管理器 | |
US9448934B2 (en) | Affinity group access to global data | |
US11500828B1 (en) | Method and device for constructing database model with ID-based data indexing-enabled data accessing | |
WO2019143500A1 (en) | Decoupling trace data streams using cache coherence protocol data | |
CN108351826A (zh) | 监视处理器的操作 | |
US10152278B2 (en) | Logical to physical sector size adapter | |
CN115543224B (zh) | 基于zns ssd的文件系统控制方法、装置及设备 | |
CN114327769B (zh) | 一种操作系统事件记录方法、装置及计算机系统 | |
EP1760580A1 (en) | Processing operation information transfer control system and method | |
CN115904212A (zh) | 数据处理的方法、装置、处理器和混合内存系统 | |
US20060277221A1 (en) | Transactional file system with client partitioning | |
US20140289739A1 (en) | Allocating and sharing a data object among program instances | |
US10545909B2 (en) | Computing system management using shared memory | |
CN112948336B (zh) | 数据加速方法及缓存单元、电子设备及存储介质 | |
CN112346879B (zh) | 进程管理方法、装置、计算机设备及存储介质 | |
CN113867947A (zh) | 一种异构内存分配方法、装置及电子设备 | |
CN113986775A (zh) | 一种risc-v cpu验证中页表项生成方法、系统及装置 | |
US20120159247A1 (en) | Automatically changing parts in response to tests | |
US9417805B2 (en) | Exporting computational capabilities into a block-oriented disk memory | |
KR20210058613A (ko) | 단일 파일의 병렬 읽기/쓰기를 위한 락킹 방법 및 이를 구현하는 컴퓨팅 장치 | |
CN112506425B (zh) | 一种面向多核的nvm存储设备模拟器及设计方法 | |
RU2773437C2 (ru) | Запись трассировки посредством регистрации входящих потоков в кэш нижнего уровня на основе элементов в кэше верхнего уровня | |
US11874767B2 (en) | Memory partitions for processing entities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |