CN113051081B - 基于内存池的事件状态管理方法、系统及存储介质 - Google Patents
基于内存池的事件状态管理方法、系统及存储介质 Download PDFInfo
- Publication number
- CN113051081B CN113051081B CN202110607541.0A CN202110607541A CN113051081B CN 113051081 B CN113051081 B CN 113051081B CN 202110607541 A CN202110607541 A CN 202110607541A CN 113051081 B CN113051081 B CN 113051081B
- Authority
- CN
- China
- Prior art keywords
- memory
- event
- state
- memory block
- event state
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于内存池的事件状态管理方法、系统及存储介质,该方法的步骤包括:侦测到逻辑过程单元启动后,确定逻辑过程单元对应的内存池,并确定逻辑过程单元在运行过程中所产生的执行事件;确定执行事件对应的事件状态,基于内存池对事件状态进行管理。本申请通过内存池对网络并行仿真的事件状态进行了统一管理,解决了内存块碎片化、事件状态分散化和多级引用的问题,从而提高了网络并行仿真的并行性能。
Description
技术领域
本申请涉及网络仿真领域,尤其涉及一种基于内存池的事件状态管理方法、系统及存储介质。
背景技术
目前网络并行仿真主流的并行仿真算法是乐观算法,乐观算法放松了对事件执行顺序的严格约束,允许程序在执行多个事件过程中存在一定的因果序违规。当检测到因果序违规时,采用恢复和修复机制将仿真状态回到一个可用的状态,并重新按当前时戳顺序处理事件。但是,由于乐观算法在检测到事件违法因果关系时,需要通过回滚方式将仿真状态恢复到上一个正确的状态,因此,需要在每个事件执行时保存事件状态,当执行的事件过多时就会消耗大量的存储资源。同时,在进行事件回滚操作时,当回滚的事件过多时也会进行大量的计算,导致并行性能显著下降。
发明内容
本申请的主要目的在于提供一种基于内存池的事件状态管理方法、系统及存储介质,旨在提高网络并行仿真的并行性能。
为实现上述目的,本申请提供一种基于内存池的事件状态管理方法,所述事件状态包括网络并行仿真的事件状态,所述基于内存池的事件状态管理方法包括步骤:
侦测到逻辑过程单元启动后,确定所述逻辑过程单元对应的内存池,并确定所述逻辑过程单元在运行过程中所产生的执行事件;
确定所述执行事件对应的事件状态,基于所述内存池对所述事件状态进行管理。
可选地,所述基于所述内存池对所述事件状态进行管理的步骤包括:
若所述事件状态为内存分配状态,则确定所述执行事件对应的待分配内存大小、第一事件身份标识码ID和事件状态数据;
在所述内存池的可分配内存中查询,是否存在与所述待分配内存大小匹配的内存链表;
若存在所述内存链表,则在所述内存链表的链表尾部确定对应的内存块,并确定所述内存块的内存大小是否与所述待分配内存大小匹配;
若确定所述内存块的内存大小与所述待分配内存大小匹配,则将所述第一事件ID和所述事件状态数据填充至所述内存块,并根据填充好的内存块返回对应的内存块地址。
可选地,所述确定所述内存块的内存大小是否与所述待分配内存大小匹配的步骤之后,还包括:
若确定所述内存块的内存大小与所述待分配内存大小不匹配,则根据所述待分配内存大小对所述内存块进行切分,得到对应的第一目标内存块,并将切分后多余的内存块返回至所述内存池的可用内存列表中;
将所述第一事件ID和所述事件状态数据填充至所述第一目标内存块,并根据填充好的第一目标内存块返回对应的内存块地址。
可选地,所述基于所述内存池对所述事件状态进行管理的步骤包括:
若所述事件状态为内存修改状态,则确定所述执行事件对应的待修改内存基地址、待修改事件状态数据、偏移值和第二事件ID;
在所述内存池中查询,是否存在与所述待修改内存基地址对应的第二目标内存块;
若存在所述第二目标内存块,则为所述第二目标内存块分配新的内存块,并将所述第二目标内存块中的原始事件状态数据拷贝至所述新的内存块;
通过所述待修改事件状态数据更新所述原始事件状态数据,并将所述第二事件ID和所述偏移值填充至数据更新后的第二目标内存块。
可选地,所述基于所述内存池对所述事件状态进行管理的步骤包括:
若所述事件状态为内存释放状态,则确定所述执行事件对应的待释放内存地址和第三事件ID;
在所述内存池中查询,是否存在与所述待释放内存地址对应的第三目标内存块;
若存在所述第三目标内存块,则将所述第三目标内存块中的内存头状态,从原始状态修改为释放状态;
将所述第三事件ID填充至状态更新后的第三目标内存块的内存块头。
可选地,所述基于所述内存池对所述事件状态进行管理的步骤包括:
若所述事件状态为内存读取状态,则确定所述执行事件对应的待读取内存地址和待读取参数大小;
根据所述待读取内存地址,在所述内存池中查询对应的第四目标内存块,根据所述待读取参数大小读取所述第四目标内存块中对应的事件状态数据。
可选地,所述基于所述内存池对所述事件状态进行管理的步骤包括:
若所述事件状态为回滚状态,则确定所述执行事件对应的待回滚事件ID;
根据所述待回滚事件ID确定所述内存池中全部的待回滚事件链表,并对所述全部的待回滚事件链表中的所有内存块进行回滚。
可选地,所述基于所述内存池对所述事件状态进行管理的步骤包括:
若所述事件状态为回收状态,则确定所述执行事件对应的待回收事件ID;
根据所述待回收事件ID确定所述内存池中全部的待回收事件链表,并对所述全部的待回收事件链表中的所有内存块进行回收。
此外,为实现上述目的,本申请还提供一种基于内存池的事件状态管理系统,所述系统包括存储器、处理器和存储在所述存储器上并在所述处理器上运行的事件状态管理程序,所述事件状态管理程序被所述处理器执行时实现如上所述的基于内存池的事件状态管理方法的步骤。
此外,为实现上述目的,本申请还提供一种存储介质,所述存储介质上存储有事件状态管理程序,所述事件状态管理程序被处理器执行时实现如上所述的基于内存池的事件状态管理方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机程序产品,所述计算机程序产品包括包括计算机程序,所述包括计算机程序被所述处理器执行时实现如上所述的基于内存池的事件状态管理方法的步骤。
本申请提供了一种基于内存池的事件状态管理方法、系统及存储介质,侦测到逻辑过程单元启动后,确定逻辑过程单元对应的内存池,并确定逻辑过程单元在运行过程中所产生的执行事件;确定执行事件对应的事件状态,基于内存池对事件状态进行管理。由此可知,本申请通过内存池对网络并行仿真的事件状态进行了统一管理,解决了内存块碎片化、事件状态分散化和多级引用的问题,从而提高了网络并行仿真的并行性能。
附图说明
图1是本申请实施例方案涉及的硬件运行环境的系统结构示意图;
图2是本申请基于内存池的事件状态管理方法第一实施例的流程示意图;
图3是本申请基于内存池的事件状态管理方法的管理框图;
图4是本申请基于内存池的事件状态管理方法内存池内存块结构图;
图5是本申请基于内存池的事件状态管理方法可分配内存块管理结构图;
图6是本申请基于内存池的事件状态管理方法事件内存块管理结构图;
图7是本申请基于内存池的事件状态管理方法另一实施例的流程示意图;
图8是本申请基于内存池的事件状态管理方法内存分配的具体流程图;
图9是本申请基于内存池的事件状态管理方法另一实施例的流程示意图;
图10是本申请基于内存池的事件状态管理方法内存修改的具体流程图;
图11是本申请基于内存池的事件状态管理方法另一实施例的流程图;
图12是本申请基于内存池的事件状态管理方法内存释放的具体流程图;
图13是本申请基于内存池的事件状态管理方法另一实施例的流程图;
图14是本申请基于内存池的事件状态管理方法另一实施例的流程图;
图15是本申请基于内存池的事件状态管理方法事件状态回滚的流程图;
图16是本申请基于内存池的事件状态管理方法另一实施例的流程图;
图17是本申请基于内存池的事件状态管理方法事件状态回收的流程图;
图18是本申请基于内存池的事件状态管理装置较佳的功能模块示意图。
本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请实施例的主要解决方案是:侦测到逻辑过程单元启动后,确定逻辑过程单元对应的内存池,并确定逻辑过程单元在运行过程中所产生的执行事件;确定执行事件对应的事件状态,基于内存池对事件状态进行管理。由此可知,本申请通过内存池对网络并行仿真的事件状态进行了统一管理,解决了内存块碎片化、事件状态分散化和多级引用的问题,提高了事件状态的回滚效率和回收效率,从而提高了网络并行仿真的并行性能。
具体地,参照图1,图1为本申请实施例方案涉及的硬件运行环境的系统结构示意图。
如图1所示,系统可以为并行仿真系统,也可以为具有数据处理的终端服务器,该系统可以包括:处理器1001,例如CPU(Central ProcessingUnit,中央处理器),存储器1005,用户接口1003,网络接口1004,通信总线1002。通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(board),用户接口1003可选的还可以包括标准的有线接口(如USB(UniversalSerialBus,通用串行总线)接口)、无线接口(如蓝牙接口)。网络接口1004可以包括标准的有线接口、无线接口(如WiFi(Wireless-Fidelity)接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatileMemory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。可选地,系统还可以包括RF(RadioFrequency,射频)电路,传感器、WiFi模块等。
本领域技术人员可以理解,图1中示出的系统结构并不构成对系统的限定,可以包括比图示更多或更少的部件,或组合某些部件,或不同的部件布置。
如图1所示,作为一种存储介质(需要说明的是,本实施例中的存储介质为计算机可读存储介质)的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及事件状态管理程序。其中,操作系统是管理和控制系统硬件和软件资源的程序,支持事件状态管理程序以及其它软件或程序的运行。
其中,处理器1001可以用于调用存储器1005中存储的事件状态管理程序,并执行如下操作:
侦测到逻辑过程单元启动后,确定所述逻辑过程单元对应的内存池,并确定所述逻辑过程单元在运行过程中所产生的执行事件;
确定所述执行事件对应的事件状态,基于所述内存池对所述事件状态进行管理。
进一步地,处理器1001可以调用存储器1005中存储的事件状态管理程序,还执行以下操作:
若所述事件状态为内存分配状态,则确定所述执行事件对应的待分配内存大小、第一事件身份标识码ID和事件状态数据;
在所述内存池的可分配内存中查询,是否存在与所述待分配内存大小匹配的内存链表;
若存在所述内存链表,则在所述内存链表的链表尾部确定对应的内存块,并确定所述内存块的内存大小是否与所述待分配内存大小匹配;
若确定所述内存块的内存大小与所述待分配内存大小匹配,则将所述第一事件ID和所述事件状态数据填充至所述内存块,并根据填充好的内存块返回对应的内存块地址。
进一步地,处理器1001可以调用存储器1005中存储的事件状态管理程序,还执行以下操作:
若确定所述内存块的内存大小与所述待分配内存大小不匹配,则根据所述待分配内存大小对所述内存块进行切分,得到对应的第一目标内存块,并将切分后多余的内存块返回至所述内存池的可用内存列表中;
将所述第一事件ID和所述事件状态数据填充至所述第一目标内存块,并根据填充好的第一目标内存块返回对应的内存块地址。
进一步地,处理器1001可以调用存储器1005中存储的事件状态管理程序,还执行以下操作:
若所述事件状态为内存修改状态,则确定所述执行事件对应的待修改内存基地址、待修改事件状态数据、偏移值和第二事件ID;
在所述内存池中查询,是否存在与所述待修改内存基地址对应的第二目标内存块;
若存在所述第二目标内存块,则为所述第二目标内存块分配新的内存块,并将所述第二目标内存块中的原始事件状态数据拷贝至所述新的内存块;
通过所述待修改事件状态数据更新所述原始事件状态数据,并将所述第二事件ID和所述偏移值填充至数据更新后的第二目标内存块。
进一步地,处理器1001可以调用存储器1005中存储的事件状态管理程序,还执行以下操作:
若所述事件状态为内存释放状态,则确定所述执行事件对应的待释放内存地址和第三事件ID;
在所述内存池中查询,是否存在与所述待释放内存地址对应的第三目标内存块;
若存在所述第三目标内存块,则将所述第三目标内存块中的内存头状态,从原始状态修改为释放状态;
将所述第三事件ID填充至状态更新后的第三目标内存块的内存块头。
进一步地,处理器1001可以调用存储器1005中存储的事件状态管理程序,还执行以下操作:
若所述事件状态为内存读取状态,则确定所述执行事件对应的待读取内存地址和待读取参数大小;
根据所述待读取内存地址,在所述内存池中查询对应的第四目标内存块,根据所述待读取参数大小读取所述第四目标内存块中对应的事件状态数据。
进一步地,处理器1001可以调用存储器1005中存储的事件状态管理程序,还执行以下操作:
若所述事件状态为回滚状态,则确定所述执行事件对应的待回滚事件ID;
根据所述待回滚事件ID确定所述内存池中全部的待回滚事件链表,并对所述全部的待回滚事件链表中的所有内存块进行回滚。
进一步地,处理器1001可以调用存储器1005中存储的事件状态管理程序,还执行以下操作:
若所述事件状态为回收状态,则确定所述执行事件对应的待回收事件ID;
根据所述待回收事件ID确定所述内存池中全部的待回收事件链表,并对所述全部的待回收事件链表中的所有内存块进行回收。
本申请提供一种基于内存池的事件状态管理方法,参照图2,图2为本申请基于内存池的事件状态管理方法第一实施例的流程示意图。
本申请实施例提供了基于内存池的事件状态管理方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些数据下,可以以不同于此处的顺序完成所示出或描述的步骤。
本申请本实施例方法的执行主体以并行仿真系统作为执行主体进行举例,基于内存池的事件状态管理方法包括:
步骤S10,侦测到逻辑过程单元启动后,确定所述逻辑过程单元对应的内存池,并确定所述逻辑过程单元在运行过程中所产生的执行事件;
步骤S20,确定所述执行事件对应的事件状态,基于所述内存池对所述事件状态进行管理。
需要说明的是,事件状态可以是网络并行仿真的事件状态。并行仿真系统侦测到逻辑过程单元LP(Logical Process)启动后,需要确定该逻辑过程单元LP对应的内存池,也即为该逻辑过程单元LP分配对应的内存池并对分配的内存池初始化。分配对应的内存池的过程具体如下:并行仿真系统确定该逻辑过程单元LP对应的ID(IdentityDocument,身份标识码),以及内存池的大小参数,接着,将LP的ID和内存池的大小参数传入对应的函数,得到对应的内存池。在本实施例中,将LP的ID定义为LPID,内存池的大小参数定义为Pool-size,将LPID和Pool-size传入LPMemPoolInit函数中,得到的内存池为MemPoolID=LPMemPoolInit(LPID,Pool-size)。同时,并行仿真系统需要确定逻辑过程单元在运行过程中所产生的执行事件,以及该执行事件对应的事件状态,然后通过分配的内存池对事件状态进行存取,其中,事件状态的存取包括事件状态的分配、事件状态的修改、事件状态的读取和事件状态的释放,或通过内存池对事件状态进行回滚,或内存池对事件状态进行回收。
再结合图3,图3是本申请基于内存池的事件状态管理方法的管理框图。内存池采用内存块管理方式,提供事件状态的存储和获取、事件状态回滚及状态回收功能。当逻辑过程单元LP产生事件时,在事件执行过程中可将事件状态数据存储到内存池中,也可读取内存池中本事件或其它事件保存的状态数据。当产生的事件违反因果关系时,通过回滚方式将事件状态恢复到正确的状态。当并行仿真系统完成了所有逻辑过程单元LP的时间同步和窗口推进,即此时间窗口范围内的事件得到了确认,后续仿真运行不会对这些事件进行回滚,并行仿真系统可对这些事件进行状态回收,释放存储资源。
再结合图4,图4是本申请基于内存池的事件状态管理方法内存池内存块结构图。内存池(Memory Pool)由多个块(Block)组成,包含但不限制于已分配块Block、已释放块Block、记录块Block和可分配块Block。每一个Block都是由Head头和Data数据两个部分组成的,其中,头结构(Head struct)由表1中的Magic(魔术)字段、Stat(状态)字段、EventID(事件ID)字段、Mask(掩码)字段、Pre字段和Next字段构成,Magic字段用于检查内存块的有效性,Stat用于记录内存块的状态,EventID是对内存块操作的事件ID,Mask掩码用于内存的增量备份,Pre和Next用于相同类型块之间的关联。
字段 | 含义 | 大小(字节) | 值 |
Magic | 魔术字 | 2 Bytes | 0x4c50 |
Stat | 状态 | 2 Bytes | 0:Available 1:Alloc 2:Record 3:Free |
EventID | 事件ID | 4 Bytes | 事件ID值 |
Mask | 掩码 | 4 Bytes | 掩码值 |
Pre | 上一块指针 | 4 Bytes | 上一块地址 |
Next | 下一块指针 | 4 Bytes | 下一块地址 |
表1
再结合图5,是本申请基于内存池的事件状态管理方法可分配内存块管理结构图。对于可分配块(Available Block),采用桶列表(List)方式进行管理,也即一个可分配块由多个可分配块桶(Available Block List),可分配块桶按块的大小进行分类,相同大小的块放入同一可分配块桶中。第一个可分配块桶存放1至31字节大小范围内的可分配内存块,第二个可分配块桶存放的块大小范围是第一个可分配块桶的2倍(即第二个可分配块桶存放32至63字节大小范围内的可分配内存块),如此类推,第N个可分配块桶存放的块大小范围为第N-1个可分配块桶的2倍。在同一可分配块桶中,每个可用内存块采用链表首尾相连,内存分配时采用后进先出分配方式从尾部分配,优先分配最近使用的内存块,内存回收时则内存块直接放入链表尾部。
再结合图6,是本申请基于内存池的事件状态管理方法事件内存块管理结构图。事件采用哈希表方式管理,事件的状态记录采用vector向量组织,一维向量由多个已分配释放块Current Block(已分配块和已释放块)存储当前事件的状态,二维向量由多个RecordBlock记录块存储事件状态的修改记录。事件的状态记录采用增量存储方式,由一个Current Block当前块和多个Record Block记录块构成存储链表,Record Block通过掩码实现增量记录存储。
本实施例侦测到逻辑过程单元启动后,确定逻辑过程单元对应的内存池,并确定逻辑过程单元在运行过程中所产生的执行事件;确定执行事件对应的事件状态,基于内存池对事件状态进行管理。由此可知,本实施例通过内存池对网络并行仿真的事件状态进行了存取、回滚或回收的统一管理,解决了内存块碎片化、事件状态分散化和多级引用的问题,使得事件状态在存取过程中不会消耗大量的存储资源,减少了事件状态的存取开销,同时,使得事件状态在回滚和回收的过程中不会进行大量的计算,提高了事件状态的回滚效率和回收效率,从而提高了网络并行仿真的并行性能。
进一步地,参照图7,图7是本申请基于内存池的事件状态管理方法另一实施例的流程示意图。所述步骤S20包括:
步骤S201,若所述事件状态为内存分配状态,则确定所述执行事件对应的待分配内存大小、第一事件身份标识码ID和事件状态数据;
步骤S202,在所述内存池的可分配内存中查询,是否存在与所述待分配内存大小匹配的内存链表;
步骤S203,若存在所述内存链表,则在所述内存链表的链表尾部确定对应的内存块,并确定所述内存块的内存大小是否与所述待分配内存大小匹配;
步骤S204,若确定所述内存块的内存大小与所述待分配内存大小匹配,则将所述第一事件ID和所述事件状态数据填充至所述内存块,并根据填充好的内存块返回对应的内存块地址;
步骤S205,若确定所述内存块的内存大小与所述待分配内存大小不匹配,则根据所述待分配内存大小对所述内存块进行切分,得到对应的第一目标内存块,并将切分后多余的内存块返回至所述内存池的可用内存列表中;
步骤S206,将所述第一事件ID和所述事件状态数据填充至所述第一目标内存块,并根据填充好的第一目标内存块返回对应的内存块地址。
需要说明的是,在本申请实施例中,事件状态的存取包括事件状态的分配、事件状态的修改、事件状态的读取和事件状态的释放。本实施例对事件状态的分配做如下具体阐述:并行仿真系统完成内存池初始化并得到内存池ID后,若确定执行事件对应的事件状态为内存分配状态,则需要确定执行事件对应的待分配内存大小、事件ID和事件状态数据。接着,并行仿真系统需要根据待分配内存大小在内存池中为其分配对应的内存块,即并行仿真系统在内存池的可分配内存中查询,是否存在与待分配内存大小匹配的内存链表,若并行仿真系统查询到存在内存链表,则在内存链表的链表尾部取出一个对应的内存块,并确定该内存块的内存大小是否与待分配内存大小匹配,也即确定该内存块的内存大小是否与待分配内存大小正好合适。若确定该内存块的内存大小与待分配内存大小匹配,并行仿真系统则将事件ID填充至内存块的内存块头,以及将执行事件携带的事件状态数据填充至内存块,并根据填充好的内存块返回对应的内存块地址。若确定内存块的内存大小与待分配内存大小不匹配,也即内存块的内存大小大于待分配内存大小,并行仿真系统则根据待分配内存大小对内存块进行切分,得到待分配内存大小对应的第一目标内存块,并将切分后多余的内存块返回至内存池的可用内存列表中。同时,并行仿真系统将事件ID填充至第一目标内存块的内存块头,以及将执行事件携带的事件状态数据填充至第一目标内存块,并根据填充好的第一目标内存块返回对应的内存块地址。其中,返回内存块地址的具体步骤如下:并行仿真系统确定事件ID和待分配内存大小参数,将事件ID和待分配内存大小参数以及内存池的ID传入对应的函数中,得到对应的内存块地址。在本实施例中,将待分配内存大小参数定义为AllocSize,将内存池的ID为MemPoolID、事件ID为eventID、待分配内存大小参数为AllocSize传入函数LPMemAlloc中,得到的内存块地址为MemAddr=LPMemAlloc(MemPoolID,eventID,AllocSize)。
再结合图8具体分析如下,图8是本申请基于内存池的事件状态管理方法内存分配的具体流程图。并行仿真系统若确定执行事件对应的事件状态为内存分配状态,则确定执行事件对应的待分配内存大小和事件ID,接着先根据待分配内存大小,从内存池的可分配内存桶中找出合适的、可用的内存链表,根据大小匹配原则,匹配大小最合适的内存链表。先匹配内存大小正好落在范围内的内存链表,若没有,再匹配下一级内存链表,如果整个列表中都没有匹配的内存链表,则内存分配失败,返回NULL。若匹配成功,则从链表尾部取出内存块,并确定内存块的内存大小与待分配内存大小是否合适,合适即可以理解为内存块的内存大小正好与待分配内存大小一样。若合适,则将取出内存块的内存块头修改该执行事件的事件ID,然后返回内存块地址。若不合适,即可以理解为内存块的内存大小比与待分配内存大小要大,此时需要对内存块进行切分,进一步可以理解为,则待分配内存大小对此内存块进行切分,为该执行时间分配一个合适的内存块,并将切分后多余的内存块放回至内存池的可用内存列表中。
本实施例若事件状态为内存分配状态,则确定执行事件对应的待分配内存大小、第一事件身份标识码ID和事件状态数据;在内存池的可分配内存中查询,是否存在与待分配内存大小匹配的内存链表;若存在内存链表,则在内存链表的链表尾部确定对应的内存块,并确定内存块的内存大小是否与待分配内存大小匹配;若确定内存块的内存大小与待分配内存大小匹配,则将第一事件ID和事件状态数据填充至内存块,并根据填充好的内存块返回对应的内存块地址;若确定内存块的内存大小与待分配内存大小不匹配,则根据待分配内存大小对内存块进行切分,得到对应的第一目标内存块,并将切分后多余的内存块返回至内存池的可用内存列表中;将第一事件ID和事件状态数据填充至第一目标内存块,并根据填充好的第一目标内存块返回对应的内存块地址。由此可知,在本实施例中,内存池提供了内存分配接口,通过内存池对事件状态进行分配,使得事件状态在内存分配过程中不会消耗大量的存储资源,减少了事件状态的存取开销,从而提高了网络并行仿真的并行性能,从而进一步提高并行仿真性能和可扩展性,实现大规模网络的仿真运行。
进一步地,参照图9,图9是本申请基于内存池的事件状态管理方法另一实施例的流程示意图。所述步骤S20包括:
步骤S207,若所述事件状态为内存修改状态,则确定所述执行事件对应的待修改内存基地址、待修改事件状态数据、偏移值和第二事件ID;
步骤S208,在所述内存池中查询,是否存在与所述待修改内存基地址对应的第二目标内存块;
步骤S209,若存在所述第二目标内存块,则为所述第二目标内存块分配新的内存块,并将所述第二目标内存块中的原始事件状态数据拷贝至所述新的内存块;
步骤S210,通过所述待修改事件状态数据更新所述原始事件状态数据,并将所述第二事件ID和所述偏移值填充至数据更新后的第二目标内存块。
本实施例对事件状态的修改做如下具体阐述:并行仿真系统完成内存池初始化并得到内存池ID后,若确定执行事件对应的事件状态为内存修改状态,则确定执行事件对应的待修改内存基地址、待修改事件状态数据、偏移值和事件ID。接着,并行仿真系统需要在内存池中查询并返回与待修改内存基地址匹配的第二目标内存块,也即并行仿真系统在内存池中查询是否存在与待修改内存基地址对应的第二目标内存块。若查询到存在第二目标内存块,并行仿真系统则为第二目标内存块分配新的内存块,并将第二目标内存块中的原始事件状态数据拷贝至新的内存块。最后,并行仿真系统通过待修改事件状态数据更新原始事件状态数据,并将事件ID填充至数据更新后的第二目标内存块的内存块头,同时,将偏移值填充至数据更新后的第二目标内存块。
再结合图10具体分析,图10是本申请基于内存池的事件状态管理方法内存修改的具体流程图。并行仿真系统若确定执行事件对应的事件状态为内存修改状态,则确定执行事件对应的待修改内存基地址、待修改事件状态数据、偏移值和事件ID,根据待修改内存基地址在内存池中找到对应的内存块,如果根据待修改内存基地址在内存池中没找到对应的内存块,并行仿真系统则返回修改失败。如果根据待修改内存基地址在内存池中找到了对应的内存块,并行仿真系统则为该内存块分配一个新的内存块,然后将该内存块修改前的原始事件状态数据拷贝到新的内存块,并将新的内存块放入记录列表中。在事件状态数据拷贝完成后,并行仿真系统用待修改事件状态数据替换该内存块修改前的原始事件状态数据,并将该执行时间的事件ID填充至在数据替换后的内存块的内存块头,同时,将偏移值填充至在数据替换后的内存块。得到修改后的内存块具体步骤如下:在本实施例中,将待修改事件状态数据定义为eventData,待修改事件状态数据对应的数据大小参数为DataSize,将偏移值定义为offset,并行仿真系统MemAddr、offset、eventID、eventData、DataSize
传入到LPMemWrite函数中,得到修改后内存块ret=LPMemWrite(MemAddr,offset,eventID,eventData,DataSize)。
本实施例若事件状态为内存修改状态,则确定执行事件对应的待修改内存基地址、待修改事件状态数据、偏移值和第二事件ID;在内存池中查询,是否存在与待修改内存基地址对应的第二目标内存块;若存在第二目标内存块,则为第二目标内存块分配新的内存块,并将第二目标内存块中的原始事件状态数据拷贝至新的内存块;通过待修改事件状态数据更新原始事件状态数据,并将第二事件ID和偏移值填充至数据更新后的第二目标内存块。由此可知,在本实施例中,内存池提供了内存修改接口,通过内存池对事件状态进行修改,使得事件状态在内存修改过程中不会消耗大量的存储资源,减少了事件状态的存取开销,从而提高了网络并行仿真的并行性能,从而进一步提高并行仿真性能和可扩展性,实现大规模网络的仿真运行。
进一步地,参照图11,图11是本申请基于内存池的事件状态管理方法另一实施例的流程示意图。所述步骤S20包括:
步骤S211,若所述事件状态为内存释放状态,则确定所述执行事件对应的待释放内存地址和第三事件ID;
步骤S212,在所述内存池中查询,是否存在与所述待释放内存地址对应的第三目标内存块;
步骤S213,若存在所述第三目标内存块,则将所述第三目标内存块中的内存头状态,从原始状态修改为释放状态;
步骤S214,将所述第三事件ID填充至状态更新后的第三目标内存块的内存块头。
本实施例对事件状态的释放做如下具体阐述:并行仿真系统完成内存池初始化并得到内存池ID后,若确定执行事件对应的事件状态为内存释放状态,并行仿真系统则确定执行事件对应的待释放内存地址和事件ID,并在内存池中查询是否存在与待释放内存地址对应的第三目标内存块。若查询到存在第三目标内存块,并行仿真系统则将第三目标内存块中的内存头状态,从原始状态修改为释放状态,最后将事件ID填充至状态更新后的第三目标内存块的内存块头。需要说明的是,内存块的状态虽然修改为释放状态,但是内存块中的数据仍然保留,不会被清除。
结合图12具体分析,图12是本申请基于内存池的事件状态管理方法内存释放的具体流程图。并行仿真系统若确定执行事件对应的事件状态为内存释放状态,则根据待释放内存地址在内存池中找到对应的内存块,如果根据待释放内存地址在内存池中没有找到对应的内存块,并行仿真系统则返回内存释放失败。如果根据待释放内存地址在内存池中找到了对应的内存块,并行仿真系统则直接将内存块的内存块状态(Stat)从原始状态修改为Free状态,并将该执行事件的事件ID填充至状态更新后的内存块的内存块头。得到更新后的内存块的具体步骤如下:在本实施例中,并行仿真系统MemAddr,eventID传入到LPMemFree函数中,得到更新后的内存块ret=LPMemFree(MemAddr,eventID)。
本实施例若事件状态为内存释放状态,则确定执行事件对应的待释放内存地址和第三事件ID;在内存池中查询,是否存在与待释放内存地址对应的第三目标内存块;若存在第三目标内存块,则将第三目标内存块中的内存头状态,从原始状态修改为释放状态;将第三事件ID填充至状态更新后的第三目标内存块的内存块头。由此可知,在本实施例中,内存池提供了内存释放接口,通过内存池对事件状态进行释放,使得事件状态在内存释放过程中不会消耗大量的存储资源,减少了事件状态的存取开销,从而提高了网络并行仿真的并行性能,从而进一步提高并行仿真性能和可扩展性,实现大规模网络的仿真运行。
进一步地,参照图13,图13是本申请基于内存池的事件状态管理方法另一实施例的流程示意图。所述步骤S20包括:
步骤S215,若所述事件状态为内存读取状态,则确定所述执行事件对应的待读取内存地址和待读取参数大小;
步骤S216,根据所述待读取内存地址,在所述内存池中查询对应的第四目标内存块,根据所述待读取参数大小读取所述第四目标内存块中对应的事件状态数据。
本实施例对事件状态的读取做如下具体阐述:并行仿真系统完成内存池初始化并得到内存池ID后,若确定执行事件对应的事件状态为内存读取状态,并行仿真系统则确定执行事件对应的待读取内存地址和待读取参数大小,并根据待读取内存地址在内存池中查询对应的第四目标内存块,并根据待读取参数大小直接读取第四目标内存块中对应大小的事件状态数据。需要说明的是,在本实施例中,可以读取本事件的事件状态数据,也可以读取其它事件的事件状态数据。事件状态数据读取的过程进一步理解如下:将待读取参数大小定义为ReadSize,输出缓冲区定义为outBuf,将待读取参数大小ReadSize、
待读取内存地址MemAddr和输出缓冲区定义outBuf传入LPMemRead函数,读取到的事件状态数据为ret=LPMemRead(MemAddr,ReadSize,outBuf)。
本实施例若事件状态为内存读取状态,则确定执行事件对应的待读取内存地址和待读取参数大小;根据待读取内存地址,在内存池中查询对应的第四目标内存块,根据待读取参数大小读取第四目标内存块中对应的事件状态数据。由此可知,在本实施例中,内存池提供了内存读取接口,通过内存池对事件状态进行读取,使得事件状态在内存读取过程中不会消耗大量的存储资源,减少了事件状态的存取开销,从而提高了网络并行仿真的并行性能,从而进一步提高并行仿真性能和可扩展性,实现大规模网络的仿真运行。
进一步地,参照图14,图14是本申请基于内存池的事件状态管理方法另一实施例的流程示意图。所述步骤S20包括:
步骤S217,若所述事件状态为回滚状态,则确定所述执行事件对应的待回滚事件ID;
步骤S218,根据所述待回滚事件ID确定所述内存池中全部的待回滚事件链表,并对所述全部的待回滚事件链表中的所有内存块进行回滚。
具体地,并行仿真系统完成内存池初始化并得到内存池ID后,若确定执行事件对应的事件状态为回滚状态,则确定执行事件对应的待回滚事件ID,执行事件的事件状态为回滚状态时,说明逻辑过程单元LP产生的新事件违反因果关系,即新事件的时间戳比最新执行事件的时间戳要早,此时需要从最新执行的事件开始进行回滚,一直回滚到比新事件时间戳早的历史事件,然后在此历史事件状态基础上执行新产生的事件。此时,并行仿真系统需要根据待回滚事件ID确定内存池中全部的待回滚事件链表。最后,并行仿真系统先对待回滚事件链表中的所有内存块进行回滚。
结合图15具体分析,图15是本申请基于内存池的事件状态管理方法事件状态回滚的流程图。并行仿真系统若确定执行事件对应的事件状态为回滚状态,则确定执行事件对应的待回滚事件ID,并根据待回滚事件ID确定内存池中全部的待回滚事件链表(待回滚事件的内存链表)。进一步地,并行仿真系统取出全部的待回滚事件链表中的第一条待回滚事件链表,并取出第一条待回滚事件链表中的第一个内存块,对第一个内存块进行回滚,也即释放第一个内存块中的内存记录。接着,并行仿真系统取出第一条待回滚事件链表中的第二个内存块进行回滚,依次执行,直至第一条待回滚事件链表中的所有内存块回滚完成。在第一条待回滚事件链表回滚完成后,再进一步地,并行仿真系统取出全部的待回滚事件链表中的第二条待回滚事件链表,并取出第二条待回滚事件链表中的第一个内存块,对第一个内存块进行回滚,也即释放第一个内存块中的内存记录。接着,并行仿真系统取出第二条待回滚事件链表中的第二个内存块进行回滚,依次执行,直至第二条待回滚事件链表中的所有内存块回滚完成。在第二条待回滚事件链表回滚完成后,同理依次循环,直至全部的待回滚事件链表回滚完成。事件状态回滚的过程进一步理解如下:将待回滚事件ID定义为rollEventID,将rollEventID和MemPoolID传入LPEventRollBack函数中,完成事件状态回滚ret=LPEventRollBack(MemPoolID,rollEventID)。
本实施例若事件状态为回滚状态,则确定执行事件对应的待回滚事件ID;根据待回滚事件ID确定内存池中全部的待回滚事件链表,并对全部的待回滚事件链表中的所有内存块进行回滚。由此可知,本实施例通过内存池对事件状态进行回滚,使得事件状态在回滚的过程中不会进行大量的计算,提高了事件状态的回滚效率,从而提高了网络并行仿真的并行性能,从而进一步提高并行仿真性能和可扩展性,实现大规模网络的仿真运行。
进一步地,参照图16,图16是本申请基于内存池的事件状态管理方法另一实施例的流程示意图。所述步骤S20包括:
步骤S219,若所述事件状态为回收状态,则确定所述执行事件对应的待回收事件ID;
步骤S220,根据所述待回收事件ID确定所述内存池中全部的待回收事件链表,并对所述全部的待回收事件链表中的所有内存块进行回收。
具体地,并行仿真系统完成内存池初始化并得到内存池ID后,若确定执行事件对应的事件状态为回收状态,则确定执行事件对应的待回收事件ID,其中,待回收事件ID包括待回收起始事件ID和待回收终止事件ID。若执行事件的事件状态为回收状态,说明并行仿真系统完成了所有逻辑过程单元LP的时间同步和窗口推进,逻辑过程单元LP会对窗口范围内的事件进行状态回收,释放存储资源,也即,将待回收起始事件ID和待回收终止事件ID之间窗口范围内的事件进行状态数据回收,将记录内存块和已释放内存块合并入内存池的可用内存块列表中。此时,并行仿真系统需要根据待回收起始事件ID和待回收终止事件ID确定内存池中全部的待回收事件链表。最后,并行仿真系统先对待回收事件链表中的所有内存块进行回收。
再结合图17具体分析,图17是本申请基于内存池的事件状态管理方法事件状态回收的流程图。并行仿真系统若确定执行事件对应的事件状态为回收状态,则确定执行事件对应的待回收起始事件ID和待回收终止事件ID,并根据待回收起始事件ID和待回收终止事件ID确定内存池中全部的待回收事件链表(待回收事件的内存链表)。进一步地,并行仿真系统取出全部的待回收事件链表中的第一条待回收事件链表,并取出第一条待回收事件链表中的第一个内存块,对第一个内存块进行回收,也即遍历第一个内存块,如果第一内存块是记录内存块或已释放内存块,则回收第一内存块,并将回收后的第一内存块放入可用内存列表。接着,并行仿真系统取出第一条待回收事件链表中的第二个内存块,对第二个内存块进行回收,依次执行,直至第一条待回收事件链表中的所有内存块完成回收。在第一待回收事件链表完成回收后,再进一步地,并行仿真系统取出全部的待回收事件链表中的第二条待回收事件链表,并取出第二条待回收事件链表中的第一个内存块,对第一个内存块进行回收,也即遍历第一个内存块,如果第一内存块是记录内存块或已释放内存块,则回收第一内存块,并将回收后的第一内存块放入可用内存列表。接着,并行仿真系统取出第二条待回收事件链表中的第二个内存块,对第二个内存块进行回收,依次执行,直至第二条待回收事件链表中的所有内存块完成回收。在第二待回收事件链表完成回收后,同理依次循环,直至全部的待回收事件链表回收完成。事件状态回收的过程进一步理解如下:将待回收事件ID中的待回收起始事件ID定义为beginEventID,将待回收终止事件ID定义为endEventID,将beginEventID、endEventID和MemPoolID传入LPMemCollection函数中,完成事件状态回收Ret=LPMemCollection(MemPoolID,beginEventID,endEventID)。
本实施例若事件状态为回收状态,则确定执行事件对应的待回收事件ID;根据待回收事件ID确定内存池中全部的待回收事件链表,并对全部的待回收事件链表中的所有内存块进行回收。由此可知,本实施例通过内存池对事件状态进行回收,使得事件状态在回收的过程中不会进行大量的计算,提高了事件状态的回收效率,从而提高了网络并行仿真的并行性能,从而进一步提高并行仿真性能和可扩展性,实现大规模网络的仿真运行。
进一步地,参照图18,图18是本申请基于内存池的事件状态管理装置较佳的功能模块示意图。所述事件状态包括网络并行仿真的事件状态,所述基于内存池的事件状态管理装置包括:
确定模块10,用于侦测到逻辑过程单元启动后,确定所述逻辑过程单元对应的内存池,并确定所述逻辑过程单元在运行过程中所产生的执行事件;
所述确定模块10还用于确定所述执行事件对应的事件状态;
管理模块20,用于基于所述内存池对所述事件状态进行管理。
本申请基于内存池的事件状态管理装置具体实施方式与上述基于内存池的事件状态管理方法各实施例基本相同,在此不再赘述。
此外,本申请实施例还提出一种存储介质,所述存储介质上存储有事件状态管理程序,所述事件状态管理程序被处理器执行时实现如上所述的基于内存池的事件状态管理方法的步骤。
本申请存储介质具体实施方式与上述基于内存池的事件状态管理方法各实施例基本相同,在此不再赘述。
此外,本申请实施例还提出一种计算机程序产品,所述计算机程序产品包括包括计算机程序,所述包括计算机程序被所述处理器执行时实现如上所述的基于内存池的事件状态管理方法的步骤。
本申请计算机程序产品具体实施方式与上述基于内存池的事件状态管理方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的数据下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多数据下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件货物的形式体现出来,该计算机软件货物存储在一个介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台系统完成本申请各个实施例所述的方法。
Claims (9)
1.一种基于内存池的事件状态管理方法,其特征在于,所述事件状态包括网络并行仿真的事件状态,所述基于内存池的事件状态管理方法包括步骤:
侦测到逻辑过程单元启动后,确定所述逻辑过程单元对应的内存池,并确定所述逻辑过程单元在运行过程中所产生的执行事件;
确定所述执行事件对应的事件状态,基于所述内存池对所述事件状态进行存取,其中,对所述事件状态进行存取包括对所述事件状态进行分配、修改、读取、释放、回滚或者回收;
所述基于所述内存池对所述事件状态进行存取的步骤包括:
若所述事件状态为内存修改状态,则确定所述执行事件对应的待修改内存基地址、待修改事件状态数据、偏移值和第二事件ID;
在所述内存池中查询,是否存在与所述待修改内存基地址对应的第二目标内存块;
若存在所述第二目标内存块,则为所述第二目标内存块分配新的内存块,并将所述第二目标内存块中的原始事件状态数据拷贝至所述新的内存块;
通过所述待修改事件状态数据更新所述原始事件状态数据,并将所述第二事件ID和所述偏移值填充至数据更新后的第二目标内存块。
2.如权利要求1所述的基于内存池的事件状态管理方法,其特征在于,所述基于所述内存池对所述事件状态进行存取的步骤包括:
若所述事件状态为内存分配状态,则确定所述执行事件对应的待分配内存大小、第一事件身份标识码ID和事件状态数据;
在所述内存池的可分配内存中查询,是否存在与所述待分配内存大小匹配的内存链表;
若存在所述内存链表,则在所述内存链表的链表尾部确定对应的内存块,并确定所述内存块的内存大小是否与所述待分配内存大小匹配;
若确定所述内存块的内存大小与所述待分配内存大小匹配,则将所述第一事件身份标识码ID和所述事件状态数据填充至所述内存块,并根据填充好的内存块返回对应的内存块地址。
3.如权利要求2所述的基于内存池的事件状态管理方法,其特征在于,所述确定所述内存块的内存大小是否与所述待分配内存大小匹配的步骤之后,还包括:
若确定所述内存块的内存大小与所述待分配内存大小不匹配,则根据所述待分配内存大小对所述内存块进行切分,得到对应的第一目标内存块,并将切分后多余的内存块返回至所述内存池的可用内存列表中;
将所述第一事件身份标识码ID和所述事件状态数据填充至所述第一目标内存块,并根据填充好的第一目标内存块返回对应的内存块地址。
4.如权利要求1所述的基于内存池的事件状态管理方法,其特征在于,所述基于所述内存池对所述事件状态进行存取的步骤包括:
若所述事件状态为内存释放状态,则确定所述执行事件对应的待释放内存地址和第三事件ID;
在所述内存池中查询,是否存在与所述待释放内存地址对应的第三目标内存块;
若存在所述第三目标内存块,则将所述第三目标内存块中的内存头状态,从原始状态修改为释放状态;
将所述第三事件ID填充至状态更新后的第三目标内存块的内存块头。
5.如权利要求1所述的基于内存池的事件状态管理方法,其特征在于,所述基于所述内存池对所述事件状态进行存取的步骤包括:
若所述事件状态为内存读取状态,则确定所述执行事件对应的待读取内存地址和待读取参数大小;
根据所述待读取内存地址,在所述内存池中查询对应的第四目标内存块,根据所述待读取参数大小读取所述第四目标内存块中对应的事件状态数据。
6.如权利要求1所述的基于内存池的事件状态管理方法,其特征在于,所述基于所述内存池对所述事件状态进行存取的步骤包括:
若所述事件状态为回滚状态,则确定所述执行事件对应的待回滚事件ID;
根据所述待回滚事件ID确定所述内存池中全部的待回滚事件链表,并对所述全部的待回滚事件链表中的所有内存块进行回滚。
7.如权利要求1所述的基于内存池的事件状态管理方法,其特征在于,所述基于所述内存池对所述事件状态进行存取的步骤包括:
若所述事件状态为回收状态,则确定所述执行事件对应的待回收事件ID;
根据所述待回收事件ID确定所述内存池中全部的待回收事件链表,并对所述全部的待回收事件链表中的所有内存块进行回收。
8.一种基于内存池的事件状态管理系统,其特征在于,所述系统包括存储器、处理器和存储在所述存储器上并在所述处理器上运行的事件状态管理程序,所述事件状态管理程序被所述处理器执行时实现如权利要求1至7中任一项所述的基于内存池的事件状态管理方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有事件状态管理程序,所述事件状态管理程序被处理器执行时实现如权利要求1至7中任一项所述的基于内存池的事件状态管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110607541.0A CN113051081B (zh) | 2021-06-01 | 2021-06-01 | 基于内存池的事件状态管理方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110607541.0A CN113051081B (zh) | 2021-06-01 | 2021-06-01 | 基于内存池的事件状态管理方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113051081A CN113051081A (zh) | 2021-06-29 |
CN113051081B true CN113051081B (zh) | 2021-10-29 |
Family
ID=76518658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110607541.0A Active CN113051081B (zh) | 2021-06-01 | 2021-06-01 | 基于内存池的事件状态管理方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113051081B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866954A (zh) * | 2012-08-31 | 2013-01-09 | 华为技术有限公司 | 内存分配的方法及装置 |
CN104615492A (zh) * | 2015-03-01 | 2015-05-13 | 中国人民解放军国防科学技术大学 | 一种多核并行离散事件仿真的内存管理方法 |
CN107515788A (zh) * | 2017-08-31 | 2017-12-26 | 郑州云海信息技术有限公司 | 一种内存分配的方法及装置 |
CN108132842A (zh) * | 2017-12-15 | 2018-06-08 | 天津津航计算技术研究所 | 一种嵌入式软件内存管理系统 |
US10127925B1 (en) * | 2007-12-17 | 2018-11-13 | Calltrol Corporation | Parallel signal processing system and method |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101841531B (zh) * | 2010-03-16 | 2013-04-03 | 中国科学院计算技术研究所 | Cdn-p2p混合网络的模拟方法和系统 |
CN101944119B (zh) * | 2010-09-21 | 2013-04-10 | 国网电力科学研究院 | 一种智能电子设备的实时事件管理方法 |
CN111625350A (zh) * | 2020-05-09 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 网络消息数据的内存分配方法、装置、设备及存储介质 |
-
2021
- 2021-06-01 CN CN202110607541.0A patent/CN113051081B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10127925B1 (en) * | 2007-12-17 | 2018-11-13 | Calltrol Corporation | Parallel signal processing system and method |
CN102866954A (zh) * | 2012-08-31 | 2013-01-09 | 华为技术有限公司 | 内存分配的方法及装置 |
CN104615492A (zh) * | 2015-03-01 | 2015-05-13 | 中国人民解放军国防科学技术大学 | 一种多核并行离散事件仿真的内存管理方法 |
CN107515788A (zh) * | 2017-08-31 | 2017-12-26 | 郑州云海信息技术有限公司 | 一种内存分配的方法及装置 |
CN108132842A (zh) * | 2017-12-15 | 2018-06-08 | 天津津航计算技术研究所 | 一种嵌入式软件内存管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113051081A (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3678015B1 (en) | Metadata query method and device | |
CN107273455B (zh) | 区块链数据访问方法和装置 | |
US8516211B2 (en) | Secure storage management system and method | |
EP3356936B1 (en) | Network attached memory using selective resource migration | |
US9672244B2 (en) | Efficient undo-processing during data redistribution | |
CN111274252B (zh) | 一种区块链的数据上链方法、装置、存储介质和服务器 | |
CN101331444A (zh) | 在线存储卷收缩 | |
AU2006262111A2 (en) | Managing memory pages | |
EP4170500A1 (en) | Method and apparatus for restoring running state of application program, and storage medium | |
CN111444147A (zh) | 一种数据页创建方法、装置、终端设备及存储介质 | |
CN110109867B (zh) | 改进在线模式检测的方法、装置和计算机程序产品 | |
CN111475100A (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN113051081B (zh) | 基于内存池的事件状态管理方法、系统及存储介质 | |
EP3405870B1 (en) | Versioned records management using restart era | |
US7051051B1 (en) | Recovering from failed operations in a database system | |
CN111752961A (zh) | 一种数据处理方法及装置 | |
CN111475424A (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN115203255A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN116868173A (zh) | 降低在恢复操作期间网络延时的影响 | |
CN116542668A (zh) | 一种基于区块链的数据处理方法、设备及可读存储介质 | |
CN108376104B (zh) | 节点调度方法及装置、计算机可读存储介质 | |
CN117009439B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN116664129B (zh) | 区块链账本数据迭代方法、电子设备及可读存储介质 | |
US20210248108A1 (en) | Asynchronous data synchronization and reconciliation | |
CN115269734B (zh) | 分布式数据库的存储管理方法及装置 |
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 |