CN111611193A - 事件处理方法、装置和设备 - Google Patents
事件处理方法、装置和设备 Download PDFInfo
- Publication number
- CN111611193A CN111611193A CN201910139280.7A CN201910139280A CN111611193A CN 111611193 A CN111611193 A CN 111611193A CN 201910139280 A CN201910139280 A CN 201910139280A CN 111611193 A CN111611193 A CN 111611193A
- Authority
- CN
- China
- Prior art keywords
- registration information
- event
- storage space
- event registration
- behavior
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 29
- 230000006399 behavior Effects 0.000 claims description 70
- 230000006870 function Effects 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 14
- 239000002699 waste material Substances 0.000 abstract description 6
- 238000004891 communication Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 14
- 230000001960 triggered effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 238000012913 prioritisation Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供一种事件处理方法、装置和设备,该方法可以应用于嵌入式设备中,该方法包括:操作系统接收对应于第一对象的第一事件注册信息;若已分配的第一存储空间不足以容纳第一事件注册信息,则分配第二存储空间,其中,第一存储空间和第二存储空间均可容纳第一数量的事件注册信息,第一数量小于一个对象可允许注册的最大事件数量;将第一事件注册信息存储到第二存储空间中。每当需要分配一次存储空间时,均分配可容纳第一数量的事件注册信息的存储空间,如此,实现了存储空间的按需批量分配,可以降低存储空间的浪费以及频繁分配存储空间导致的计算资源浪费。
Description
技术领域
本发明涉及物联网技术领域,尤其涉及一种事件处理方法、装置和设备。
背景技术
随着物联网的发展,越来越多的设备(可以称为物联网设备)开始接入到互联网,而这些设备大部分都是存储和计算资源非常受限的设备。
对于这些资源非常受限的设备,不同的设备中所采用的操作系统并不统一。虽然这些操作系统提供了基本的内核功能,比如存储管理、线程调度等基本功能,但是这些操作系统缺乏一种通用的事件处理机制。而物联网的应用程序大部分又是基于事件驱动的,这些应用程序需要一种通用的事件处理机制,同时对资源(比如存储资源、计算资源)的开销又要满足资源受限设备的要求。
发明内容
本发明实施例提供一种事件处理方法、装置和设备,提供了一种通用的事件处理机制,以降低对设备中资源的消耗。
第一方面,本发明实施例提供一种事件处理方法,应用于嵌入式设备,该方法包括:
接收对应于第一对象的第一事件注册信息;
若已分配的第一存储空间不足以容纳所述第一事件注册信息,则分配第二存储空间,其中,所述第一存储空间和所述第二存储空间均可容纳第一数量的事件注册信息,所述第一数量小于一个对象可允许注册的最大事件数量;
将所述第一事件注册信息存储到所述第二存储空间中。
第二方面,本发明实施例提供一种事件处理装置,应用于嵌入式设备,包括:
接收模块,用于接收对应于第一对象的第一事件注册信息;
分配模块,用于若已分配的第一存储空间不足以容纳所述第一事件注册信息,则分配第二存储空间,其中,所述第一存储空间和所述第二存储空间均可容纳第一数量的事件注册信息,所述第一数量小于一个对象可允许注册的最大事件数量;
存储模块,用于将所述第一事件注册信息存储到所述第二存储空间中。
第三方面,本发明实施例提供一种嵌入式设备,该嵌入式设备包括处理器和存储器,其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行第一方面中的事件处理方法。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被嵌入式设备的处理器执行时,使所述处理器执行第一方面中的事件处理方法。
第五方面,本发明实施例提供一种事件处理方法,该方法包括:
接收对应于第一对象的第一事件注册信息;
若已分配的第一存储空间不足以容纳所述第一事件注册信息,则分配第二存储空间,其中,所述第一存储空间和所述第二存储空间均可容纳第一数量的事件注册信息,所述第一数量小于一个对象可允许注册的最大事件数量;
将所述第一事件注册信息存储到所述第二存储空间中。
实际应用中,第五方面提供的事件处理方法可以适用于任何电子设备,比如各种物联网设备。
在本发明实施例中,当某应用程序针对其中的某个对象(称为第一对象,比如为某个功能模块)向操作系统进行事件注册时,将该第一对象对应的事件注册信息(称为第一事件注册信息)发送至操作系统。其中,第一事件注册信息中至少会包含有事件行为、回调函数等信息。操作系统接收到第一事件注册信息后,查询目前已经为存储事件注册信息而分配的第一存储空间是否足以容纳第一事件注册信息。如果第一存储空间不足以容纳第一事件注册信息,则进行新的存储空间的分配,将新分配的存储空间称为第二存储空间,从而将第一事件注册信息存储到第二存储空间中。其中,每当需要分配一次存储空间时,均分配可容纳第一数量的事件注册信息的存储空间,第一数量大于1而小于一个对象可允许注册的最大事件数量。亦可以理解为,每次分配存储空间时,假设后续可能会有第一数量(比如为8个)的对象也需要注册当前第一事件注册信息中的事件行为,从而按照第一数量个事件注册信息所需要的容量分配存储空间,如此,实现了存储空间的按需批量分配,可以降低存储空间的浪费以及频繁分配存储空间导致的计算资源浪费。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种事件处理方法的流程图;
图2为本发明实施例提供的另一种事件处理方法的流程图;
图3为本发明实施例提供的又一种事件处理方法的流程图;
图4为本发明实施例提供的一种事件处理装置的结构示意图;
图5为与图4所示实施例提供的事件处理装置对应的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
图1为本发明实施例提供的一种事件处理方法的流程图,如图1所示,该方法包括如下步骤:
101、接收对应于第一对象的第一事件注册信息。
可选地,该事件处理方法可以应用于嵌入式设备中,该嵌入式设备例如可以是传感器、智能家居设备等物联网设备,具体地,该事件处理方法可以由该嵌入式设备中的操作系统来执行。
可选地,该事件处理方法也可以应用于其他电子设备中,比如笔记本电脑、手机等。
其中,第一对象可以是某应用程序中的某个功能模块。
比如,该应用程序是一种提供对设备进行联网处理的应用程序,在该应用程序下提供了两个功能模块:本地局域网通信模块和云端通信模块。其中,本地局域网通信模块提供了通过将设备接入本地局域网而使设备联网的功能;云端通信模块提供了将设备接入远端互联外或者说公网而使识别联网的功能。
而不管是本地局域网通信模块还是云端通信模块,为实现将设备连接入网的目的,比如均需要注册“获取设备的IP地址”这个事件行为。
因此,应用程序可以针对本地局域网通信模块进行一次事件注册,针对云端通信模块也进行一次事件注册。
针对本地局域网通信模块进行事件注册时,应用程序生成事件注册信息,并将事件注册信息发送至设备的操作系统。其中,与本地局域网通信模块对应的事件注册信息中可以包括:“获取设备的IP地址”这个事件行为、本地局域网通信模块响应这个事件行为的回调函数。可选地,该事件注册信息中还可以包括本地局域网通信模块对应的优先级,即相对于注册“获取设备的IP地址”这个事件行为的其他功能模块的优先级。
同样地,针对云端通信模块进行事件注册时,应用程序生成与之对应的事件注册信息,并将事件注册信息发送至设备的操作系统。此时,与云端通信模块对应的事件注册信息中可以包括:“获取设备的IP地址”这个事件行为、云端通信模块响应这个事件行为的回调函数。可选地,该事件注册信息中还可以包括云端通信模块对应的优先级。
基于上述举例,第一对象可以是本地局域网通信模块或云端通信模块。当第一对象为本地局域网通信模块时,与本地局域网通信模块对应的事件注册信息称为第一事件注册信息;当第一对象为云端通信模块时,与云端通信模块对应的事件注册信息称为第一事件注册信息。
102、若已分配的第一存储空间不足以容纳第一事件注册信息,则分配第二存储空间,其中,第一存储空间和第二存储空间均可容纳第一数量的事件注册信息,第一数量小于一个对象可允许注册的最大事件数量。
103、将第一事件注册信息存储到第二存储空间中。
操作系统在接收到第一事件注册信息后,需要存储该第一事件注册信息。由于诸如传感器、智能家居设备等嵌入式设备的资源受限,为了兼顾资源消耗情况,本发明实施例中采用了按需批量分配存储空间的策略。其中,存储空间用于存储事件注册信息。
具体来说,在需要进行存储空间分配时,操作系统可以一次分配足以容纳多个事件注册信息的存储空间,也就是说,操作系统以可以容纳多个事件注册信息的存储空间作为一个分配单位,进行存储空间的分配。
其中,多个事件注册信息中的多个,以第一数量来表示,实际上,会设置该第一数量大于1而小于一个对象可允许注册的最大事件数量。其中,应用程序中的一个对象可以注册的事件数量即可以具有的事件注册信息数量可能是有限定的,将该数量限定称为最大事件数量。
操作系统一次分配可以容纳第一数量的事件注册信息的存储空间,那么这个存储空间的容量是多少呢,可以根据统计每个事件注册信息所需的容量来估计。
之所以第一数量取自1和最大事件数量之间,而不取1和最大事件数量,是因为如果第一数量取为1,那么意味着每当有一个事件注册信息生成时,操作系统就需要执行一次存储空间分配动作,且此次分配的存储空间仅用于存储当前生成的一个事件注册信息。如此,当应用程序存在较多的事件注册信息时,操作系统将需要执行多次存储空间分配动作,对计算资源消耗过大。而如果第一数量取为最大事件数量(假设最大事件数量为30),那么意味着操作系统一次需要分配能够存储30个事件注册信息的存储空间,这样虽然从整体来看,操作系统执行的存储空间分配动作数量较少,但是却存在着存储空间浪费的问题。因为如果实际上并没有那么多的事件注册信息产生,那么已经分配的存储空间将存在严重空闲的现象。
基于上述原因,第一数量取自1和最大事件数量之间。可选地,第一数量可以是经验设定的某个数值,比如为8。可选地,还可以根据剩余存储空间的大小,和/或,根据多个对象分别对应的事件注册信息数量确定第一数量。
其中,根据剩余存储空间大小确定第一数量,是指:如果全部存储空间中未存储事件注册信息的剩余存储空间较大,则说明此时设备的存储资源不紧张,此时可以适当将第一数量设置为较大数值,比如为8;相对地,如果剩余存储空间较小,则说明此时设备的存储资源紧张,此时可以适当将第一数量设置为较小数值,比如为4。其中,上述全部存储空间是指设备中用于存储全部事件注册信息的存储空间。
其中,根据多个对象分别对应的事件注册信息数量确定第一数量,是指:可以统计应用程序中多个对象各自对应的事件注册信息数量,进而比如可以取平均值作为第一数量。
另外,操作系统一次分配足以容纳第一数量的事件注册信息的存储空间,亦可以理解为,每次分配存储空间时,假设后续可能会有第一数量个对象也需要注册当前产生的事件注册信息中的事件行为,从而按照第一数量个事件注册信息所需要的容量分配存储空间。正如前文举例的本地局域网通信模块和云端通信模块这两个对象均注册有对应于“获取设备的IP地址”这个事件行为。基于此,第一数量也可以是根据应用程序中最多会有多少个对象会注册同一事件行为而确定。而针对任一事件行为,应用程序中有多少对象需要注册这个事件行为,应用程序的设计者是可以计算出的。比如,针对事件行为A,会有3个对象需要注册,针对事件行为B,会有8个对象需要注册,则第一数量可以设置为8。
以上对操作系统的按需批量分配存储空间的策略进行了介绍。在实际应用中,何时触发操作系统进行一次存储空间的分配,是根据如下方式确定的:当操作系统接收到某个事件注册信息时,如果该事件注册信息是应用程序发送的第一个事件注册信息,那么触发操作系统进行一次存储空间的分配,即分配足以容纳第一数量的事件注册信息的存储空间。而如果该事件注册信息不是应用程序发送的第一个事件注册信息,那么可以根据之前已经分配的那个存储空间中是否已经存储了第一数量的事件注册信息来确定是否需要触发一次新的存储空间分配过程。具体地,如果之前已经分配的那个存储空间中已经存储了第一数量的事件注册信息,则触发一次新的存储空间分配过程,反正,不会触发一次新的存储空间分配过程。
综上,以操作系统接收到上述第一事件注册信息来说,若已分配的第一存储空间不足以容纳第一事件注册信息,则分配第二存储空间。由前文所述可知,第一存储空间和第二存储空间均可容纳第一数量的事件注册信息。
其中,如果第一事件注册信息是应用程序发送的第一个事件注册信息,那么第一存储空间还不存在,则不足以容纳第一事件注册信息。而如果第一事件注册信息并非第一个事件注册信息,那么若之前分配的第一存储空间内已经存储有第一数量的事件注册信息,那么第一存储空间将不足以容纳第一事件注册信息,进行第二存储空间的分配。相反地,若第一存储空间中存储的事件注册信息的数量小于第一数量,则可以将第一事件注册信息存入到第一存储空间内即可,无需进行第二存储空间的分配。
综上,操作系统通过按需批量分配用于存储事件注册信息的存储空间,可以降低存储空间的浪费以及频繁分配存储空间导致的计算资源浪费。
图2为本发明实施例提供的另一种事件处理方法的流程图,如图2所示,可以包括如下步骤:
201、接收对应于第一对象的第一事件注册信息,第一事件注册信息中包括事件行为和第一对象的优先级。
202、若已分配的第一存储空间不足以容纳第一事件注册信息,且第一存储空间中存储有包含所述事件行为的第二事件注册信息,则分配整数倍于第一数量的第二存储空间,第二事件注册信息对应于第二对象。
203、将第一存储空间中存储的各事件注册信息复制到第二存储空间中,并释放第一存储空间。
204、根据所述事件行为以及第一对象和第二对象的优先级,按照设定的优先级排序策略,将第一事件注册信息插入到第二事件注册信息的相邻位置。
由前文所述可知,应用程序中可能会有不同的对象注册有相同的事件行为,而如果对应于同一事件行为的多个对象所各自对应的事件注册信息被较为分散地存储,那么在该事件行为被用户触发时,操作系统可能需要遍历所有的存储空间以便找到注册有该事件行为的对象。
为了降低操作系统的计算量,本实施例中,在对事件注册信息进行存储时,采用了集中存储的策略,所谓集中存储是指将注册有同一事件行为的多个事件注册信息集中存储。
具体来说,当如前述其他实施例中的说明,确定第一存储空间不足以容纳第一事件注册信息时,进一步确定第一存储空间中存储的各事件注册信息中是否包含有该第一事件注册信息中的事件行为。如果包含有该事件行为,则以第一数量为基础,分配可容纳整数倍于第一数量的事件注册信息的第二存储空间,可以理解的是,该整数倍于第一数量,是指大于1倍,比如2倍于第一数量。假设第一数量为8,那么此时需要分配可以容纳16个事件注册信息的存储空间作为第二存储空间。
在分配好第二存储空间后,可以将第一存储空间中存储的各事件注册信息(其中包括第二事件注册信息)复制到第二存储空间中,并释放第一存储空间。其中,释放第一存储空间是指将第一存储空间中存储的各事件注册信息删除。进而,可以基于上述事件行为,将与第二事件注册信息具有相同事件行为的第一事件注册信息插入到第二事件注册信息的相邻位置。
另外,在一可选实施例中,第一事件注册信息中可以包括其对应的第一对象的优先级,第二事件注册信息中也可以包括其对应的第二对象的优先级。该优先级的作用体现为:当上述事件行为被用户触发时,操作系统可以根据该优先级确定需要进行响应的对象,即确定具有高优先级的对象来响应该事件行为的发生。
基于此,操作系统在将第一事件注册信息插入到第二事件注册信息的相邻位置的过程中,可以按照设定的优先级排序策略,将第一事件注册信息插入到第二事件注册信息的相邻位置。比如,假设第一对象的优先级高于第二对象,优先级排序策略是由高到低排列,则可以将第一事件注册信息插入到第二事件注册信息的左侧相邻位置。
图3为本发明实施例提供的又一种事件处理方法的流程图,如图3所示,可以包括如下步骤:
301、接收对应于第一对象的第一事件注册信息,第一事件注册信息中包括事件行为和第一对象的优先级。
302、若第一存储空间足以容纳第一事件注册信息,且第一存储空间中存储有包含所述事件行为的第三事件注册信息,第三事件注册信息对应于第三对象,则根据所述事件行为以及第一对象和第三对象的优先级,按照设定的优先级排序策略,将第一事件注册信息插入到第三事件存储信息的相邻位置。
当然,可以理解的是,第一事件注册信息中也可以不包括第一对象的优先级,此时,操作系统仅需要将对应于同一事件行为的第一事件注册信息和第三事件注册信息相邻存储即可。
通过以上各实施例对事件注册信息的存储过程进行了说明,但是,在实际应用中,事件除了涉及注册过程外,还会涉及到事件触发过程以及事件注销过程。下面对这两种过程分别进行说明。
在一可选实施例中,事件触发过程可以实现为如下步骤:
响应于事件行为的触发,查询包含有该事件行为的各事件注册信息;
根据各事件注册信息分别对应的对象的优先级,确定响应该事件行为的目标对象;
通知目标对象对该事件行为进行响应处理。
如前述图2或图3所示实施例中的介绍,当注册了同一事件行为的各事件注册信息被集中存储时,操作系统感应到该事件行为被触发时,可以在各存储空间中查找注册了该事件行为的各事件注册信息。如果在某存储空间中找到了一个注册了该事件行为的事件注册信息,那么其他的注册了该事件行为的事件注册信息也便找到了。此时,操作系统可以根据各事件注册信息分别对应的对象的优先级,确定响应该事件行为的目标对象。可以理解的是,当上述各事件注册信息是按照各自对应的对象的优先级进行集中存储的时,操作系统可以基于优先级排序策略方便地定位到目标对象。
操作系统通知目标对象对该事件行为进行响应处理,可以是操作系统直接将该目标对象对应的事件注册信息中的回调函数提供给目标对象,目标对象执行该回调函数以对该事件行为进行响应。
另外,可选地,操作系统通知目标对象对上述事件行为进行响应处理,还可以实现为:操作系统将目标对象对应的回调函数发送至某队列中,以使该队列通知目标对象从队列中读取该回调函数以对上述事件行为进行响应处理。通过这种方式,其实是实现了操作系统与上层的应用程序之间的隔离,即使应用程序层面的目标对象的响应过程出现异常,也不至于影响操作系统的正常运行。
在一可选实施例中,以前述第一事件注册信息为例,事件注销过程可以实现为如下步骤:
响应于第一事件注册信息的注销,从第二存储空间中删除第一事件注册信息;
若第一存储空间和第二存储空间中的空闲存储空间达到能够容纳第二数量的事件注册信息,则回收空闲存储空间,其中,第二数量多于第一数量。
由此可知,在事件注销的过程中,可能会涉及到存储空间的回收处理。
假设基于前文的存储过程的描述,第一事件注册信息被存入到第二存储空间中,并且假设目前总共已经分配的存储空间由第一存储空间和第二存储空间构成,那么在第一事件注册信息被注销时,操作系统需要删除存储在第二存储空间中的该第一事件注册信息。
在删除了第一事件注册信息后,操作系统还可以进一步确定当前已分配的存储空间即第一存储空间和第二存储空间中的空闲情况,如果空闲情况符合设定的阈值条件,则可以对其中的空闲存储空间进行回收。
具体地,若第一存储空间和第二存储空间中的空闲存储空间达到能够容纳第二数量的事件注册信息,则回收空闲存储空间,其中,第二数量多于第一数量。举例来说,假设第一数量为8,第二数量为12,这就意味着理论上第一存储空间和第二存储空间一共可以容纳16个事件注册信息。如果发现第一存储空间和第二存储空间中一共存储的事件注册信息的数量已经由较多数量下降到4,说明第一存储空间和第二存储空间中已经出现了12个事件注册信息的空闲存储空间,此时需要回收这些空闲存储空间。
可选地,操作系统可以全部回收这些空闲存储空间。
但是,为了避免在某事件注册信息刚被注销后随后又被重新注册的情况下,需要重新分配一次存储空间而导致的计算量开销,操作系统也可以仅回收这些空闲存储空间中的部分空闲存储空间。
具体地,操作系统可以从这些空闲存储空间中回收整数倍于第一数量的部分,其中,第二数量大于第一数量的该整数倍。由于存储空间的分配是以第一数量为单位的,因此,回收空闲存储空间时也可以以第一数量的整数倍为基准来回收,该整数倍可以是1倍或多倍。
当然,可选地,操作系统也可以根据按照一定的比例对这些空闲存储空间进行部分回收,比如设定的比例为70%,那么结合前述的举例,如果空闲存储空间已经达到可以容纳12个事件注册信息的容量,那么操作系统可以回收其中向下取整12*70%的结果所对应的存储空间,向下取整12*70%的结果为8,即回收可以容纳8个事件注册信息的存储空间。
以下将详细描述本发明的一个或多个实施例的事件处理装置。本领域技术人员可以理解,这些事件处理装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图4为本发明实施例提供的一种事件处理装置的结构示意图,该事件处理装置位于某设备中,具体可以位于该设备中的操作系统中。另外,该设备可以是嵌入式设备。如图4所示,该装置包括:接收模块11、分配模块12、存储模块13。
接收模块11,用于接收对应于第一对象的第一事件注册信息。
分配模块12,用于若已分配的第一存储空间不足以容纳所述第一事件注册信息,则分配第二存储空间,其中,所述第一存储空间和所述第二存储空间均可容纳第一数量的事件注册信息,所述第一数量大于1而小于一个对象可允许注册的最大事件数量。
存储模块13,用于将所述第一事件注册信息存储到所述第二存储空间中。
可选地,所述装置还包括:确定模块,用于根据剩余存储空间的大小,和/或,根据多个对象分别对应的事件注册信息数量,确定所述第一数量。
可选地,所述第一事件注册信息中包括事件行为,所述分配模块12具体可以用于:若所述第一存储空间中存储有包含所述事件行为的第二事件注册信息,则分配可容纳整数倍于所述第一数量的事件注册信息的第二存储空间,所述第二事件注册信息对应于第二对象。相应地,所述存储模块13具体可以用于:将所述第一存储空间中存储的各事件注册信息复制到所述第二存储空间中,并释放所述第一存储空间;根据所述事件行为,将所述第一事件注册信息插入到所述第二事件注册信息的相邻位置。
其中,可选地,在将所述第一事件注册信息插入到所述第二事件注册信息的相邻位置的过程中,所述存储模块13具体可以用于:根据所述第一对象和所述第二对象的优先级,按照设定的优先级排序策略,将所述第一事件注册信息插入到所述第二事件注册信息的相邻位置。
可选地,所述第一事件注册信息中包括事件行为,所述存储模块13还可以用于:若所述第一存储空间足以容纳所述第一事件注册信息,且所述第一存储空间中存储有包含所述事件行为的第三事件注册信息,则根据所述事件行为,将所述第一事件注册信息插入到所述第三事件注册信息的相邻位置,所述第三事件注册信息对应于第三对象。
其中,可选地,在将所述第一事件注册信息插入到所述第三事件注册信息的相邻位置的过程中,所述存储模块13具体可以用于:根据所述第一对象和所述第三对象的优先级,按照设定的优先级排序策略,将所述第一事件注册信息插入到所述第三事件注册信息的相邻位置。
可选地,所述装置还可以包括:事件触发处理模块,用于响应于所述事件行为的触发,查询包含有所述事件行为的各事件注册信息;根据所述各事件注册信息分别对应的对象的优先级,确定响应所述事件行为的目标对象;通知所述目标对象对所述事件行为进行响应处理。
其中,可选地,在通知所述目标对象对所述事件行为进行响应处理的过程中,所述事件触发处理模块具体可以用于:将所述目标对象对应的回调函数发送至队列中,以使所述队列通知所述目标对象从所述队列中读取所述回调函数以对所述事件行为进行响应处理。
可选地,所述装置还可以包括:事件注销处理模块,用于响应于所述第一事件注册信息的注销,从所述第二存储空间中删除所述第一事件注册信息;若所述第一存储空间和所述第二存储空间中的空闲存储空间达到能够容纳第二数量的事件注册信息,则回收所述空闲存储空间,其中,第二数量多于所述第一数量。
其中,可选地,在回收所述空闲存储空间的过程中,所述事件注销处理模块具体可以用于:从所述空闲存储空间中回收整数倍于所述第一数量的部分,所述第二数量大于所述第一数量的所述整数倍。
图4所示装置可以执行前述各实施例中的方法,本实施例未详细描述的部分,可参考前述实施例的相关说明,在此不再赘述。
在一个可能的设计中,上述图4所示的事件处理装置的结构可实现为诸如传感器、智能家居设备等嵌入式设备。如图5所示,该嵌入式设备可以包括:处理器21、存储器22。其中,所述存储器22上存储有可执行代码,当所述可执行代码被所述处理器21执行时,至少使所述处理器21完成如下步骤:
接收对应于第一对象的第一事件注册信息;
若已分配的第一存储空间不足以容纳所述第一事件注册信息,则分配第二存储空间,其中,所述第一存储空间和所述第二存储空间均可容纳第一数量的事件注册信息,所述第一数量小于一个对象可允许注册的最大事件数量;
将所述第一事件注册信息存储到所述第二存储空间中。
其中,该嵌入式设备的结构中还可以包括通信接口23,用于与其他设备或通信网络通信。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被嵌入式设备的处理器执行时,使所述处理器执行前述各实施例中的各步骤。
可选地,上述事件处理装置的结构还可实现为诸如笔记本电脑、手机等等非嵌入式设备。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (13)
1.一种事件处理方法,其特征在于,应用于嵌入式设备,所述方法包括:
接收对应于第一对象的第一事件注册信息;
若已分配的第一存储空间不足以容纳所述第一事件注册信息,则分配第二存储空间,其中,所述第一存储空间和所述第二存储空间均可容纳第一数量的事件注册信息,所述第一数量小于一个对象可允许注册的最大事件数量;
将所述第一事件注册信息存储到所述第二存储空间中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据剩余存储空间的大小,和/或,根据多个对象分别对应的事件注册信息数量,确定所述第一数量。
3.根据权利要求1所述的方法,其特征在于,所述第一事件注册信息中包括事件行为;
所述分配第二存储空间,包括:
若所述第一存储空间中存储有包含所述事件行为的第二事件注册信息,则分配可容纳整数倍于所述第一数量的事件注册信息的第二存储空间,所述第二事件注册信息对应于第二对象;
所述将所述第一事件注册信息存储到所述第二存储空间中,包括:
将所述第一存储空间中存储的各事件注册信息复制到所述第二存储空间中,并释放所述第一存储空间;
根据所述事件行为,将所述第一事件注册信息插入到所述第二事件注册信息的相邻位置。
4.根据权利要求3所述的方法,其特征在于,所述将所述第一事件注册信息插入到所述第二事件注册信息的相邻位置,包括:
根据所述第一对象和所述第二对象的优先级,按照设定的优先级排序策略,将所述第一事件注册信息插入到所述第二事件注册信息的相邻位置。
5.根据权利要求1所述的方法,其特征在于,所述第一事件注册信息中包括事件行为;
所述方法还包括:
若所述第一存储空间足以容纳所述第一事件注册信息,且所述第一存储空间中存储有包含所述事件行为的第三事件注册信息,则根据所述事件行为,将所述第一事件注册信息插入到所述第三事件注册信息的相邻位置,所述第三事件注册信息对应于第三对象。
6.根据权利要求5所述的方法,其特征在于,所述将所述第一事件注册信息插入到所述第三事件注册信息的相邻位置,包括:
根据所述第一对象和所述第三对象的优先级,按照设定的优先级排序策略,将所述第一事件注册信息插入到所述第三事件注册信息的相邻位置。
7.根据权利要求4或6所述的方法,其特征在于,所述方法还包括:
响应于所述事件行为的触发,查询包含有所述事件行为的各事件注册信息;
根据所述各事件注册信息分别对应的对象的优先级,确定响应所述事件行为的目标对象;
通知所述目标对象对所述事件行为进行响应处理。
8.根据权利要求7所述的方法,其特征在于,所述通知所述目标对象对所述事件行为进行响应处理,包括:
将所述目标对象对应的回调函数发送至队列中,以使所述队列通知所述目标对象从所述队列中读取所述回调函数以对所述事件行为进行响应处理。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述第一事件注册信息的注销,从所述第二存储空间中删除所述第一事件注册信息;
若所述第一存储空间和所述第二存储空间中的空闲存储空间达到能够容纳第二数量的事件注册信息,则回收所述空闲存储空间,其中,第二数量多于所述第一数量。
10.根据权利要求9所述的方法,其特征在于,所述回收所述空闲存储空间,包括:
从所述空闲存储空间中回收整数倍于所述第一数量的部分,所述第二数量大于所述第一数量的所述整数倍。
11.一种事件处理装置,其特征在于,应用于嵌入式设备,包括:
接收模块,用于接收对应于第一对象的第一事件注册信息;
分配模块,用于若已分配的第一存储空间不足以容纳所述第一事件注册信息,则分配第二存储空间,其中,所述第一存储空间和所述第二存储空间均可容纳第一数量的事件注册信息,所述第一数量小于一个对象可允许注册的最大事件数量;
存储模块,用于将所述第一事件注册信息存储到所述第二存储空间中。
12.一种嵌入式设备,其特征在于,包括:存储器、处理器;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至10中任一项所述的事件处理方法。
13.一种事件处理方法,其特征在于,包括:
接收对应于第一对象的第一事件注册信息;
若已分配的第一存储空间不足以容纳所述第一事件注册信息,则分配第二存储空间,其中,所述第一存储空间和所述第二存储空间均可容纳第一数量的事件注册信息,所述第一数量小于一个对象可允许注册的最大事件数量;
将所述第一事件注册信息存储到所述第二存储空间中。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910139280.7A CN111611193B (zh) | 2019-02-22 | 2019-02-22 | 事件处理方法、装置和设备 |
TW108142730A TW202044071A (zh) | 2019-02-22 | 2019-11-25 | 事件處理方法、裝置和設備 |
PCT/CN2020/074583 WO2020168928A1 (zh) | 2019-02-22 | 2020-02-10 | 事件处理方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910139280.7A CN111611193B (zh) | 2019-02-22 | 2019-02-22 | 事件处理方法、装置和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111611193A true CN111611193A (zh) | 2020-09-01 |
CN111611193B CN111611193B (zh) | 2023-06-20 |
Family
ID=72144754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910139280.7A Active CN111611193B (zh) | 2019-02-22 | 2019-02-22 | 事件处理方法、装置和设备 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN111611193B (zh) |
TW (1) | TW202044071A (zh) |
WO (1) | WO2020168928A1 (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5594889A (en) * | 1992-01-03 | 1997-01-14 | Digital Equipment Corporation | Memory resource allocation look ahead system and method |
US8271996B1 (en) * | 2008-09-29 | 2012-09-18 | Emc Corporation | Event queues |
JP2012212227A (ja) * | 2011-03-30 | 2012-11-01 | Nec Corp | イベント処理システム、該システムに用いられるイベント処理方法及びイベント処理プログラム |
CN104346264A (zh) * | 2013-07-26 | 2015-02-11 | 鸿富锦精密工业(深圳)有限公司 | 系统事件日志处理系统及方法 |
CN104468689A (zh) * | 2013-09-16 | 2015-03-25 | 安讯士有限公司 | 进入控制系统中的分布式事件 |
CN104598158A (zh) * | 2013-10-31 | 2015-05-06 | 鸿富锦精密工业(深圳)有限公司 | 系统事件处理系统及方法 |
CN105426236A (zh) * | 2015-11-11 | 2016-03-23 | 上海斐讯数据通信技术有限公司 | 高并发状态机的实现方法、实现装置及系统 |
CN107092562A (zh) * | 2017-04-10 | 2017-08-25 | 中云信安(深圳)科技有限公司 | 一种嵌入式设备安全存储管理系统及方法 |
CN109117090A (zh) * | 2018-07-27 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种存储池的存储空间配额方法、装置、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064639B (zh) * | 2012-12-28 | 2016-08-03 | 华为技术有限公司 | 数据存储方法及装置 |
WO2015053766A1 (en) * | 2013-10-09 | 2015-04-16 | Intel Corporation | Technology for managing cloud storage |
CN107426321A (zh) * | 2017-07-31 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种分布式存储系统配额分配方法及装置 |
-
2019
- 2019-02-22 CN CN201910139280.7A patent/CN111611193B/zh active Active
- 2019-11-25 TW TW108142730A patent/TW202044071A/zh unknown
-
2020
- 2020-02-10 WO PCT/CN2020/074583 patent/WO2020168928A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5594889A (en) * | 1992-01-03 | 1997-01-14 | Digital Equipment Corporation | Memory resource allocation look ahead system and method |
US8271996B1 (en) * | 2008-09-29 | 2012-09-18 | Emc Corporation | Event queues |
JP2012212227A (ja) * | 2011-03-30 | 2012-11-01 | Nec Corp | イベント処理システム、該システムに用いられるイベント処理方法及びイベント処理プログラム |
CN104346264A (zh) * | 2013-07-26 | 2015-02-11 | 鸿富锦精密工业(深圳)有限公司 | 系统事件日志处理系统及方法 |
CN104468689A (zh) * | 2013-09-16 | 2015-03-25 | 安讯士有限公司 | 进入控制系统中的分布式事件 |
CN104598158A (zh) * | 2013-10-31 | 2015-05-06 | 鸿富锦精密工业(深圳)有限公司 | 系统事件处理系统及方法 |
CN105426236A (zh) * | 2015-11-11 | 2016-03-23 | 上海斐讯数据通信技术有限公司 | 高并发状态机的实现方法、实现装置及系统 |
CN107092562A (zh) * | 2017-04-10 | 2017-08-25 | 中云信安(深圳)科技有限公司 | 一种嵌入式设备安全存储管理系统及方法 |
CN109117090A (zh) * | 2018-07-27 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种存储池的存储空间配额方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
曹计昌;周宇杰;: "基于高地址约束和按需存储分配的UCard底层调度模块研究" * |
Also Published As
Publication number | Publication date |
---|---|
TW202044071A (zh) | 2020-12-01 |
CN111611193B (zh) | 2023-06-20 |
WO2020168928A1 (zh) | 2020-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11586673B2 (en) | Data writing and reading method and apparatus, and cloud storage system | |
CN110018899B (zh) | 回收内存的方法及装置 | |
CN109710414B (zh) | 一种作业调度方法、装置、设备及存储介质 | |
CN109213493B (zh) | 容器部署方法、特殊资源管理终端及可读存储介质 | |
CN104539708A (zh) | 一种云平台资源的缩容方法、装置与系统 | |
EP3208709B1 (en) | Batch processing method and device for system invocation commands | |
US11675622B2 (en) | Leader election with lifetime term | |
CN113886069A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN106020984B (zh) | 电子设备中进程的创建方法及装置 | |
CN114625533A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
CN110795234A (zh) | 一种资源调度方法及装置 | |
CN113254223B (zh) | 一种系统重启后的资源分配方法、系统及相关组件 | |
EP2776941B1 (en) | Managing capacity in a data center by suspending tenants | |
CN113032119A (zh) | 一种任务调度方法、装置、存储介质及电子设备 | |
CN114461353A (zh) | 调整线程优先级的方法、终端及计算机可读存储介质 | |
CN111611193A (zh) | 事件处理方法、装置和设备 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN112346848A (zh) | 一种管理内存池的方法、装置及终端 | |
CN111078405B (zh) | 内存分配方法、装置、存储介质及电子设备 | |
CN113886082A (zh) | 请求处理方法、装置、计算设备及介质 | |
CN113806050A (zh) | 一种计算资源的处理方法、装置、电子设备及存储介质 | |
CN110187957B (zh) | 一种下载任务的排队方法、装置及电子设备 | |
CN110968409A (zh) | 一种数据处理方法及装置 | |
CN111352710A (zh) | 进程管理方法及装置、计算设备、存储介质 | |
CN118245185A (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 |