CN101944119A - 一种智能电子设备的实时事件管理方法 - Google Patents

一种智能电子设备的实时事件管理方法 Download PDF

Info

Publication number
CN101944119A
CN101944119A CN2010102887721A CN201010288772A CN101944119A CN 101944119 A CN101944119 A CN 101944119A CN 2010102887721 A CN2010102887721 A CN 2010102887721A CN 201010288772 A CN201010288772 A CN 201010288772A CN 101944119 A CN101944119 A CN 101944119A
Authority
CN
China
Prior art keywords
real
event
time
index node
sram
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.)
Granted
Application number
CN2010102887721A
Other languages
English (en)
Other versions
CN101944119B (zh
Inventor
吴海
罗华煜
滕春涛
张少波
张宏波
田小锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Electric Power Research Institute
Original Assignee
State Grid Electric Power Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by State Grid Electric Power Research Institute filed Critical State Grid Electric Power Research Institute
Priority to CN2010102887721A priority Critical patent/CN101944119B/zh
Publication of CN101944119A publication Critical patent/CN101944119A/zh
Application granted granted Critical
Publication of CN101944119B publication Critical patent/CN101944119B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种智能电子设备的实时事件管理方法,包括以下步骤:1)把实时事件的数据实体和逻辑关系分开存储和处理;2)使用链式池的机制来管理空闲索引节点;3)采用一个写指针和多个读指针的双向链表结构;4)使用事件发生时间和事件优先级两个关键字来处理实时事件之间的逻辑关系;5)根据存储在SRAM事件数据体中的产生时间关键字,在初始化时完整并正确地重建整个双链表;6)建立与操作系统接口的过程列表和事件管理例程接口。本发明有益效果在于能够提供对变电站内各种类型的实时事件进行管理,而且能够适用于多种实时操作系统上,简化各种智能电子设备对实时事件的管理复杂度,而能更侧重于对实时事件的分析、计算与处理功能。

Description

一种智能电子设备的实时事件管理方法
技术领域
本发明涉及一种管理需掉电保存的实时事件的方法,适用于智能电子设备对来自外部或自产生的实时事件的管理。
背景技术
随着国家电网建设的发展,变电站自动化系统在各种电压等级的变电站得到大规模应用。变电站自动化系统由多种具有不同功能的智能电子设备组成,如各种保护装置、测控装置、通信装置、安全稳定装置、合并单元、智能操作箱和数字录波器等。在变电站运行过程中,会发生大量的多种类型的实时事件,如断路器、隔离开关的变化信息,保护装置输出的跳闸信息、值班人员对设备操作的信息、以及智能电子设备运行过程中产生的自诊断信息。管理这些实时事件是智能电子设备的基本功能之一,智能电子设备需对这些信息进行监视、存储和读取,并能够通过某种标准协议(如IEC61850)传输给与之互联的其它多个设备。
智能电子设备要按照实时事件的发生时间依次存储事件,并且在系统资源可用的情况下,尽最大可能的存储重要的优先级高的事件。智能电子设备要实时、快速地按时间先后次序对外传输事件,在突然失电后恢复正常运行的情况下,设备应能够继续传输未传输过的事件,不能多传输,也不能少传输。
传统的解决方案是使用SRAM(静态内存,一种具有静止存取功能的内存),作为存储介质,使用环形队列的管理方式来管理事件,根据队列头尾索引下标序号来判断未传输的实时事件。但是,环形队列是按照先进先出的原则存储和读取数据的,存在以下问题:
(1)在多任务环境下,应用任务存储实时事件的时刻并不严格以实时事件发生时间的先后为序,在这种情况下,存储事件时需要调整原来队列中事件的存储位置,会牵涉到大量的内存拷贝操作,严重影响实时处理效率。在大量事件同时产生的极端情况下,会严重影响智能电子设备对外的响应速度。
(2)在全站雪崩实验情况下,会产生大量实时事件,此时装置事件存储区一定会存满。此时若发生新的实时事件,按照环形队列的操作逻辑,只能按照数组下标次序先覆盖最先发生的事件,而不能根据事件的重要性次序先覆盖存储不重要且时间较旧的事件。如此,会造成重要事件的丢失,影响其他设备对现场运行情况的分析和处理。
另外一种解决方案使用链表来管理实时事件,但是,在对实时事件存储和读取时会涉及到对链表中指针的操作。如果在操作链表指针时,设备突然失电,链表的结构必然会遭到破坏。在设备恢复运行时,对链表的重构比较复杂,甚至不能完全正确的重构链表,造成智能电子设备的初始化失败,不能正常运行。
发明内容
本发明的目的在于提出了一种通用的实时事件的管理方法,以解决多任务环境下无法严格控制时序(1)或重负荷情况下无法完全保留重要事件(2)等问题,从而保证智能电子设备在过程监视、事件存储、事件读取和记录传输等实时事件处理的稳定性,提高智能电子设备的实时处理性能以及对外部的响应速度,并提高设备运行的稳定性与可靠性。
为了实现上述目的和功能,本发明采取的技术方案的具体步骤是:
(1)把实时事件的数据实体和逻辑关系分开存储和处理。数据实体存储在SRAM,使用数组的数据结构来管理;在内存中对应于SRAM中的每个事件数据的存储空间建立1个存储索引节点,使用双向链表来管理所有索引节点,索引节点在链表中的位置次序动态反映实时事件之间的先后逻辑关系。使用该方法解决以前实现方案中单独使用循环队列或链表来管理的缺陷。
(2)使用链式池的机制来管理空闲索引节点。在初始化事件管理器时,根据管理所需的内存大小,一次性从系统分配大块内存后不再释放,并建立链式内存池,以后根据运行需要从该链式池中动态地分配和回收索引节点,减少系统内存碎片的增加,提高系统的稳定性。
(3)为了实现在多个客户端(需获取实时事件的每个外部智能电子设备)之间共享同一个事件数据实体,采用一个写指针和多个读指针的双向链表结构。同时设置事件数据引用计数,每个客户端读取事件后,引用计数器即减1,当引用计数值为0时,回收该节点到空闲索引节点链池。为了掉电后能重建链表,这个结构需在SRAM和内存中各保留一份,根据内存中的读写指针值来判断是否有实时事件需对外传输。这样,可以减少SRAM的开销,节省系统的硬件成本。
(4)使用事件发生时间和事件优先级(两个关键字来处理实时事件之间的逻辑关系。优先级反映了实时事件的重要性。存储事件时,按发生时间从老到新的次序连入索引节点的双链表。并设置最近发生的低优先级的事件的最少保存数目,在SRAM空间满时,根据此值来选择被覆盖存储的事件,此值由应用程序指定,提高管理程序的灵活性。
(5)根据存储在SRAM事件数据体中的产生时间关键字,在初始化时完整并正确地重建整个双链表。在实时事件传输过程中,如果装置失电并重新上电后,根据SRAM中事件数据体的产生时间先后关系重建内存中事件索引节点的链表,并根据存储在SRAM读写指针中的数组下标值,恢复内存中索引节点的链表一尾多头的指针值,如此,可以满足实时事件管理的正确性。
(6)建立与操作系统接口的过程列表,如分配和释放内存的系统接口,使用该列表访问操作系统接口,封装操作系统的多样性。根据应用需求,为外部应用程序提供初始化、存储以及读取等实时事件管理例程接口,屏蔽实现细节,使该方法具备良好的可扩展性和通用性。每个数据体的定义分为管理用数据头和数据信息实体部分,并且管理数据头在前,便于抽象管理各种类型的实时事件。
本发明的效果是:
本方法能够提供对变电站内各种类型的实时事件进行管理,而且能够适用于多种实时操作系统上,简化各种智能电子设备对实时事件的管理复杂度,而能更侧重于对实时事件的分析、计算与处理功能。
本方法提出了一种将事件数据的内容和相互之间的逻辑关系分开处理的方法,使用双向链表管理事件之间的逻辑关系,降低了处理过程的复杂性,提高了实时事件的处理性能。提出了根据数据的某个关键字正确的重建链表的方法,保证了实时事件管理的正确性。
另外,实时系统的内存管理考虑到实时性的要求,一般采用高效的管理算法,如伙伴系统和边界标识法等,并且采用较简单的内存回收和释放算法,回收内存时,只是把相邻的空闲内存块合并成一个大块,不存在专门的碎片回收算法。因此,如果频繁申请和释放内存,会导致系统内存碎片的增加,影响实时系统的性能。考虑到本方案使用的数据体是等大小的,本方法中使用了一个高效的链式池的管理方法来管理空闲内存区,申请和释放都是从自管理的链式池中进行,无需动态、频繁地调用系统内存管理接口函数,而且申请和释放算法的时间复杂度为O(1),提高了系统的实时性能。
附图说明
图1是本方法中各种数据存储结构和对应关系图。
图2是本方法初始化实时事件管理器的流程框图。
图3是本方法存储实时事件的流程框图。
图4是本方法读取实时事件的流程框图(包含事件删除过程)。
具体实施方式
本方法的具体实施方案如下:
(1)定义存储实时事件数据实体、索引节点以及各种管理数据的结构,各种结构之间的逻辑关系见图1。
在SRAM中定义存储实时事件实体的数组,每个事件体定义一个公用信息头,包括的内容有:事件发生时刻、反映事件重要性的优先级、引用计数器和有效性标志位。在内存中定义存储双向链表前后节点位置的链表节点,实时事件索引节点含有一个链表节点和一个索引变量,该索引变量的值为SRAM区中事件数组的下标序号。
定义一个空闲索引节点的链式内存池,使用索引节点中链表节点的后向指针组成单链表。在该链表中设置一头指针,用于指示当前的空闲索引节点。
定义一个实时事件索引节点链表,使用索引节点中的链表节点组成双向链表,所有索引节点在该链表中按实时事件的发生时刻从旧到新排序。定义链表的头指针与写指针,头指针指向链表中的第一节点,写指针指向链表中的最后一个节点。并且为每个访问客户端设置一个读指针,指向当前需向外部设备传输的实时事件索引节点。在SRAM中也需定义与之相对应的读写指针,读写指针在SRAM中保存的是事件数组的下标序号,而在内存中保存的是索引节点的地址。
(2)初始化事件管理器,建立内存中空闲索引节点的链池,并重构内存中实时事件索引节点的链表,具体流程见图2。
首先,根据用户指定的客户端数目和事件数目计算所需RAM(内存)大小,一次性从系统申请分配一块大内存块。在内存块中预先留出两个链表所使用的读、写指针的空间,在剩余空间上建立空闲索引节点内存链池。
然后,判断SRAM区是否是第一次被使用,如果是第一次被使用,需初始化SRAM事件数据区,按数组顺序依次把所有事件数据体中的有效性标志设置为无效,并设置SRAM中的读写下标序号为无效值。还需初始化内存中的事件索引节点链表,设置该链表的所有读写指针为空指针。如果SRAM事件数据区被使用过,即按数组次序依次读取事件数据体,根据事件体的有效标志判断该事件是否有效,如果是有效数据,取出空闲索引节点的链式内存池的头指针所指的节点,把头指针指向下该节点的下一个节点,即从内存链池中分配出一个空闲索引节点,把该索引节点中的索引值设置为该事件体的数组下标序号。解下来,依次遍历事件索引节点链表,把该事件的发生时刻和链表中的事件发生时刻做比较,按发生时间的先后次序插入到链表中的合适位置。此时,如果SRAM中保存的读、写下标序号等于该事件的数组下标序号,则把事件索引节点链表的读、写指针以及客户端读指针指向该索引节点,至此,已完成重构内存中的事件索引节点链表。
最后,按顺序遍历空闲索引节点链表,把索引节点中的索引值设置为未保存过的事件数组的下标序号值。
(3)当智能电子设备接收到外部或自产生的实时事件时,存储该实时事件,具体流程见图3。
首先,根据空闲索引节点内存链池的头指针值来判断是否还有空闲索引节点,如果有,取出头指针所指向的空闲索引节点。如果没有,需要从事件索引节点链表中回收一个合适的索引节点。回收索引节点时,如果当前低优先级事件数目大于用户设定的需保存的最小数目,从事件索引节点链表的头指针指向的索引节点开始,正向依次遍历链表中的节点,找到优先级最低的事件的节点,即为优先级最低的旧事件的索引节点;否则取出事件索引节点链表的头指针指向的节点,即为最先发生的事件的索引节点,从该链表中删除该索引节点。
然后,根据上述步骤得到的索引节点中的索引值,用此值作为数组下标访问SRAM区中的实时事件区,填写实时事件数据体,并设置该事件的引用计数器值为最大的读客户端数目,根据该事件的优先级来修改当前低优先级事件数目。接下来,从事件索引节点链表的头指针指向的索引节点开始,正向依次遍历链表中的节点,找到第一个发生时刻大于该事件的发生时刻的索引节点,把该节点插入到上述找到的节点之前。插入后,如果该索引节点为链表的最后一个节点,需把事件索引节点链表的写指针指向该索引节点,并把SRAM区的写下标序号设置为该索引节点的索引值。
(4)当智能电子设备向外部其他设备实时传输事件时,读取实时事件,并当外部所有客户端都获取完一个实时事件后,删除该事件,具体流程见图4。
首先,判断实时事件索引节点链表中该读取客户的读指针是否等于写指针,如果两者相等,则说明无新发生的需对外传输的事件。如果不等,则说明有未传输过的新事件。
然后,取出链表中该客户端的读指针所指向的索引节点中的索引值,作为数组下标访问SRAM区中的实时事件区,把事件区的数据拷贝到用户缓冲区,接下来,设置该客户端的读指针为该索引节点后向指针指向的下一索引节点。相应的,把SRAM中的写下标序号设置为下一索引节点的中的索引值。
最后,把事件的引用计数器值减1,如果该事件的引用计数值为0,从事件索引节点链表中删除该索引节点。在删除节点时,如果链表的写指针或客户端的读指针指向该节点,需修改读、写指针指向本节点的下一个节点,同时修改存储于SRAM中的写下标序号和客户端读下标序号。接下来,回收该索引节点到空闲索引节点内存链池,把被回收节点的后向指针的值写为空闲索引节点内存链池的头指针的值,而头指针的值写为该索引节点的地址,即可完成回收索引节点的工作。
上述实施例不以任何形式限制本发明,凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

Claims (2)

1.一种智能电子设备的实时事件管理方法,其特征在于,包括以下步骤:
1)把实时事件的数据实体和逻辑关系分开存储和处理;
具体为,数据实体存储在SRAM,使用数组的数据结构来管理;在内存中对应于SRAM中的每个事件数据的存储空间建立1个存储索引节点,使用双向链表来管理所有索引节点,索引节点在链表中的位置次序动态反映实时事件之间的先后逻辑关系;
2)使用链式池的机制来管理空闲索引节点;
具体为,在初始化事件管理器时,根据管理所需的内存大小,一次性从系统分配内存后不再释放,并建立链式内存池,根据运行需要从该链式内存池中动态地分配和回收索引节点,减少系统内存碎片的增加,提高系统的稳定性。
3)采用一个写指针和多个读指针的双向链表结构;
具体为,同时设置事件数据引用计数,每个客户端读取事件后,引用计数器即减1,当引用计数值为0时,回收该节点到空闲索引节点链池。为了掉电后能重建链表,双向链表结构需在SRAM和内存中各保留一份,根据内存中的读写指针值来判断是否有实时事件需对外传输;
4)使用事件发生时间和事件优先级两个关键字来处理实时事件之间的逻辑关系;
具体为,存储事件时,按发生时间从老到新的次序连入索引节点的双链表,并设置最近发生的低优先级的事件的最少保存数目,在SRAM空间满时,根据最少保存数目来选择被覆盖存储的事件,最少保存数目由应用程序指定;
5)根据存储在SRAM事件数据体中的产生时间关键字,在初始化时完整并正确地重建整个双链表;
具体为,在实时事件传输过程中,如果装置失电并重新上电后,根据SRAM中事件数据体的产生时间先后关系重建内存中事件索引节点的链表,并根据存储在SRAM读写指针中的数组下标值,恢复内存中索引节点的链表一尾多头的指针值;
6)建立与操作系统接口的过程列表和事件管理例程接口;
具体为,使用过程列表使用操作系统提供的服务,并根据应用需求,为外部应用程序提供初始化、存储以及读取实时事件管理例程接口,屏蔽实现细节。
2.根据权利要求1所述的一种智能电子设备的实时事件管理方法,其特征在于,所述步骤5)中的数据体的定义分为管理用数据头和数据信息实体部分,并且管理数据头在前。
CN2010102887721A 2010-09-21 2010-09-21 一种智能电子设备的实时事件管理方法 Active CN101944119B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102887721A CN101944119B (zh) 2010-09-21 2010-09-21 一种智能电子设备的实时事件管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102887721A CN101944119B (zh) 2010-09-21 2010-09-21 一种智能电子设备的实时事件管理方法

Publications (2)

Publication Number Publication Date
CN101944119A true CN101944119A (zh) 2011-01-12
CN101944119B CN101944119B (zh) 2013-04-10

Family

ID=43436110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102887721A Active CN101944119B (zh) 2010-09-21 2010-09-21 一种智能电子设备的实时事件管理方法

Country Status (1)

Country Link
CN (1) CN101944119B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104216304A (zh) * 2013-05-31 2014-12-17 青岛海尔空调电子有限公司 一种提高家电缓存数据可靠性的方法
CN108108413A (zh) * 2017-12-12 2018-06-01 宁波三星医疗电气股份有限公司 一种基于存储数据自动生成数据指针的方法及系统
CN109450680A (zh) * 2018-11-05 2019-03-08 南京国电南自维美德自动化有限公司 一种实现dcs报警信息过滤显示和历史查询的方法及系统
CN109993501A (zh) * 2019-03-20 2019-07-09 北京字节跳动网络技术有限公司 需求过程的管理方法、装置、存储介质及电子设备
CN110134323A (zh) * 2018-02-02 2019-08-16 河南许继仪表有限公司 一种flash存储器
CN110535561A (zh) * 2019-08-15 2019-12-03 北京空间飞行器总体设计部 一种基于双向链表的航天器遥测数据传输实现方法
CN110599414A (zh) * 2019-08-28 2019-12-20 武汉大学 一种面向事件相机数据处理的时空归一化方法
CN113051081A (zh) * 2021-06-01 2021-06-29 广东省新一代通信与网络创新研究院 基于内存池的事件状态管理方法、系统及存储介质
CN114756591A (zh) * 2022-04-15 2022-07-15 成都卓讯智安科技有限公司 一种基于双向链表的数据筛选方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1862502A (zh) * 2006-02-14 2006-11-15 华为技术有限公司 实现主备节点间数据备份的方法和系统
EP2035930A2 (en) * 2006-06-08 2009-03-18 Xeround Systems Ltd. Method and system for backing up data and for facilitating streaming of records in replica-based databases
CN101634968A (zh) * 2008-01-17 2010-01-27 四川大学 一种用于备份系统的海量数据高速缓存器的构造方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1862502A (zh) * 2006-02-14 2006-11-15 华为技术有限公司 实现主备节点间数据备份的方法和系统
EP2035930A2 (en) * 2006-06-08 2009-03-18 Xeround Systems Ltd. Method and system for backing up data and for facilitating streaming of records in replica-based databases
CN101634968A (zh) * 2008-01-17 2010-01-27 四川大学 一种用于备份系统的海量数据高速缓存器的构造方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104216304A (zh) * 2013-05-31 2014-12-17 青岛海尔空调电子有限公司 一种提高家电缓存数据可靠性的方法
CN108108413A (zh) * 2017-12-12 2018-06-01 宁波三星医疗电气股份有限公司 一种基于存储数据自动生成数据指针的方法及系统
CN110134323A (zh) * 2018-02-02 2019-08-16 河南许继仪表有限公司 一种flash存储器
CN109450680A (zh) * 2018-11-05 2019-03-08 南京国电南自维美德自动化有限公司 一种实现dcs报警信息过滤显示和历史查询的方法及系统
CN109450680B (zh) * 2018-11-05 2022-02-22 南京国电南自维美德自动化有限公司 一种实现dcs报警信息过滤显示和历史查询的方法及系统
CN109993501B (zh) * 2019-03-20 2021-11-02 北京字节跳动网络技术有限公司 需求过程的管理方法、装置、存储介质及电子设备
CN109993501A (zh) * 2019-03-20 2019-07-09 北京字节跳动网络技术有限公司 需求过程的管理方法、装置、存储介质及电子设备
CN110535561A (zh) * 2019-08-15 2019-12-03 北京空间飞行器总体设计部 一种基于双向链表的航天器遥测数据传输实现方法
CN110535561B (zh) * 2019-08-15 2022-04-12 北京空间飞行器总体设计部 一种基于双向链表的航天器遥测数据传输实现方法
CN110599414A (zh) * 2019-08-28 2019-12-20 武汉大学 一种面向事件相机数据处理的时空归一化方法
CN110599414B (zh) * 2019-08-28 2021-08-03 武汉大学 一种面向事件相机数据处理的时空归一化方法
CN113051081A (zh) * 2021-06-01 2021-06-29 广东省新一代通信与网络创新研究院 基于内存池的事件状态管理方法、系统及存储介质
CN114756591A (zh) * 2022-04-15 2022-07-15 成都卓讯智安科技有限公司 一种基于双向链表的数据筛选方法和系统

Also Published As

Publication number Publication date
CN101944119B (zh) 2013-04-10

Similar Documents

Publication Publication Date Title
CN101944119B (zh) 一种智能电子设备的实时事件管理方法
CN107168657B (zh) 一种基于分布式块存储的虚拟磁盘分层缓存设计方法
CN105612503B (zh) 持久性数据结构
US10296435B2 (en) Storage of mass data for monitoring
TWI397814B (zh) 用於稽核記憶體之系統與方法
CN106708653B (zh) 一种基于纠删码与多副本的混合税务大数据安全保护方法
CN110750372B (zh) 基于共享内存的日志系统及日志管理方法
CN101808012A (zh) 一种云环境下的数据备份方法
CN103218176A (zh) 数据处理方法及装置
CN101799808A (zh) 一种数据处理方法及其系统
JP2010134522A (ja) データベース管理方法、データベース管理プログラム、および、データベース管理装置
CN102411639A (zh) 元数据的多副本存储管理方法和系统
CN111522703A (zh) 监控访问请求的方法、设备和计算机程序产品
CN114706836B (zh) 一种基于机载嵌入式数据库的数据生命周期管理方法
CN102542036B (zh) 使用优化的表
CN103345486A (zh) 应用于远程浏览环境下客户端获取和展示图形文件的方法
CN107861878A (zh) Java应用程序性能问题定位的方法、装置和设备
CN114896215A (zh) 元数据的存储方法及装置
CN104516953B (zh) 一种用于电力调度自动化海量报文的黑匣子系统
CN110096339A (zh) 一种基于系统负载实现的扩缩容配置推荐系统及方法
CN111858393B (zh) 内存页面管理方法、内存页面管理装置、介质与电子设备
CN102169504B (zh) 一种用于卫星地面设备监控的数据库索引方法
CN105354757A (zh) 电力数据集成处理系统
CN111367880A (zh) 一种通用实时数据存储管理系统及其实现方法
CN109308310B (zh) 一种用于资产管理平台的子系统数据互联处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant