TW202044071A - 事件處理方法、裝置和設備 - Google Patents
事件處理方法、裝置和設備 Download PDFInfo
- Publication number
- TW202044071A TW202044071A TW108142730A TW108142730A TW202044071A TW 202044071 A TW202044071 A TW 202044071A TW 108142730 A TW108142730 A TW 108142730A TW 108142730 A TW108142730 A TW 108142730A TW 202044071 A TW202044071 A TW 202044071A
- Authority
- TW
- Taiwan
- Prior art keywords
- registration information
- event
- storage space
- event registration
- behavior
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 claims abstract description 39
- 230000006399 behavior Effects 0.000 claims description 70
- 238000012545 processing Methods 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 13
- 239000002699 waste material Substances 0.000 abstract description 7
- 238000004891 communication Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 18
- 230000001960 triggered effect Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000004064 recycling Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004364 calculation method Methods 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
- 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
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為本發明實施例提供的一種事件處理方法的流程圖,如圖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、光學記憶體等)上實施的電腦程式產品的形式。
最後應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的精神和範圍。
11:接收模組
12:分配模組
13:儲存模組
21:處理器
22:記憶體
23:通訊介面
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的圖式作一簡單地介紹,顯而易見地,下面描述中的圖式是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些圖式獲得其他的圖式。
[圖1]為本發明實施例提供的一種事件處理方法的流程圖;
[圖2]為本發明實施例提供的另一種事件處理方法的流程圖;
[圖3]為本發明實施例提供的又一種事件處理方法的流程圖;
[圖4]為本發明實施例提供的一種事件處理裝置的結構示意圖;
[圖5]為與圖4所示實施例提供的事件處理裝置對應的電子設備的結構示意圖。
Claims (13)
- 一種事件處理方法,其應用於嵌入式設備,所述方法包括: 接收對應於第一物件的第一事件註冊資訊; 若已分配的第一儲存空間不足以容納所述第一事件註冊資訊,則分配第二儲存空間,其中,所述第一儲存空間和所述第二儲存空間均可容納第一數量的事件註冊資訊,所述第一數量小於一個物件可允許註冊的最大事件數量; 將所述第一事件註冊資訊儲存到所述第二儲存空間中。
- 如申請專利範圍第1項所述的方法,其中,所述方法還包括: 根據剩餘儲存空間的大小,和/或,根據多個物件分別對應的事件註冊資訊數量,確定所述第一數量。
- 如申請專利範圍第1項所述的方法,其中,所述第一事件註冊資訊中包括事件行為; 所述分配第二儲存空間,包括: 若所述第一儲存空間中儲存有包含所述事件行為的第二事件註冊資訊,則分配可容納整數倍於所述第一數量的事件註冊資訊的第二儲存空間,所述第二事件註冊資訊對應於第二物件; 所述將所述第一事件註冊資訊儲存到所述第二儲存空間中,包括: 將所述第一儲存空間中儲存的各事件註冊資訊複製到所述第二儲存空間中,並釋放所述第一儲存空間; 根據所述事件行為,將所述第一事件註冊資訊插入到所述第二事件註冊資訊的相鄰位置。
- 如申請專利範圍第3項所述的方法,其中,所述將所述第一事件註冊資訊插入到所述第二事件註冊資訊的相鄰位置,包括: 根據所述第一物件和所述第二物件的優先順序,按照設定的優先順序排序策略,將所述第一事件註冊資訊插入到所述第二事件註冊資訊的相鄰位置。
- 如申請專利範圍第1項所述的方法,其中,所述第一事件註冊資訊中包括事件行為; 所述方法還包括: 若所述第一儲存空間足以容納所述第一事件註冊資訊,且所述第一儲存空間中儲存有包含所述事件行為的第三事件註冊資訊,則根據所述事件行為,將所述第一事件註冊資訊插入到所述第三事件註冊資訊的相鄰位置,所述第三事件註冊資訊對應於第三物件。
- 如申請專利範圍第5項所述的方法,其中,所述將所述第一事件註冊資訊插入到所述第三事件註冊資訊的相鄰位置,包括: 根據所述第一物件和所述第三物件的優先順序,按照設定的優先順序排序策略,將所述第一事件註冊資訊插入到所述第三事件註冊資訊的相鄰位置。
- 如申請專利範圍第4或6項所述的方法,其中,所述方法還包括: 回應於所述事件行為的觸發,查詢包含有所述事件行為的各事件註冊資訊; 根據所述各事件註冊資訊分別對應的物件的優先順序,確定響應所述事件行為的目標物件; 通知所述目標物件對所述事件行為進行回應處理。
- 如申請專利範圍第7項所述的方法,其中,所述通知所述目標物件對所述事件行為進行回應處理,包括: 將所述目標物件對應的回呼函數發送至佇列中,以使所述佇列通知所述目標物件從所述佇列中讀取所述回呼函數以對所述事件行為進行回應處理。
- 如申請專利範圍第1項所述的方法,其中,所述方法還包括: 回應於所述第一事件註冊資訊的註銷,從所述第二儲存空間中刪除所述第一事件註冊資訊; 若所述第一儲存空間和所述第二儲存空間中的空閒儲存空間達到能夠容納第二數量的事件註冊資訊,則回收所述空閒儲存空間,其中,第二數量多於所述第一數量。
- 如申請專利範圍第9項所述的方法,其中,所述回收所述空閒儲存空間,包括: 從所述空閒儲存空間中回收整數倍於所述第一數量的部分,所述第二數量大於所述第一數量的所述整數倍。
- 一種事件處理裝置,其應用於嵌入式設備,包括: 接收模組,用於接收對應於第一物件的第一事件註冊資訊; 分配模組,用於若已分配的第一儲存空間不足以容納所述第一事件註冊資訊,則分配第二儲存空間,其中,所述第一儲存空間和所述第二儲存空間均可容納第一數量的事件註冊資訊,所述第一數量小於一個物件可允許註冊的最大事件數量; 儲存模組,用於將所述第一事件註冊資訊儲存到所述第二儲存空間中。
- 一種嵌入式設備,其包括:記憶體、處理器;其中,所述記憶體上儲存有可執行代碼,當所述可執行代碼被所述處理器執行時,使所述處理器執行如申請專利範圍第1至10項中任一項所述的事件處理方法。
- 一種事件處理方法,其包括: 接收對應於第一物件的第一事件註冊資訊; 若已分配的第一儲存空間不足以容納所述第一事件註冊資訊,則分配第二儲存空間,其中,所述第一儲存空間和所述第二儲存空間均可容納第一數量的事件註冊資訊,所述第一數量小於一個物件可允許註冊的最大事件數量; 將所述第一事件註冊資訊儲存到所述第二儲存空間中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910139280.7 | 2019-02-22 | ||
CN201910139280.7A CN111611193B (zh) | 2019-02-22 | 2019-02-22 | 事件处理方法、装置和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202044071A true TW202044071A (zh) | 2020-12-01 |
Family
ID=72144754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108142730A TW202044071A (zh) | 2019-02-22 | 2019-11-25 | 事件處理方法、裝置和設備 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN111611193B (zh) |
TW (1) | TW202044071A (zh) |
WO (1) | WO2020168928A1 (zh) |
Family Cites Families (12)
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 | イベント処理システム、該システムに用いられるイベント処理方法及びイベント処理プログラム |
CN103064639B (zh) * | 2012-12-28 | 2016-08-03 | 华为技术有限公司 | 数据存储方法及装置 |
CN104346264A (zh) * | 2013-07-26 | 2015-02-11 | 鸿富锦精密工业(深圳)有限公司 | 系统事件日志处理系统及方法 |
US9807161B2 (en) * | 2013-09-16 | 2017-10-31 | Axis Ab | Distributed events in an access control system |
WO2015053766A1 (en) * | 2013-10-09 | 2015-04-16 | Intel Corporation | Technology for managing cloud storage |
CN104598158B (zh) * | 2013-10-31 | 2018-03-02 | 秦皇岛市林鹰科技有限公司 | 系统事件处理系统及方法 |
CN105426236A (zh) * | 2015-11-11 | 2016-03-23 | 上海斐讯数据通信技术有限公司 | 高并发状态机的实现方法、实现装置及系统 |
CN107092562A (zh) * | 2017-04-10 | 2017-08-25 | 中云信安(深圳)科技有限公司 | 一种嵌入式设备安全存储管理系统及方法 |
CN107426321A (zh) * | 2017-07-31 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种分布式存储系统配额分配方法及装置 |
CN109117090A (zh) * | 2018-07-27 | 2019-01-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
Also Published As
Publication number | Publication date |
---|---|
CN111611193B (zh) | 2023-06-20 |
CN111611193A (zh) | 2020-09-01 |
WO2020168928A1 (zh) | 2020-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8250164B2 (en) | Query performance data on parallel computer system having compute nodes | |
JP6336988B2 (ja) | 使用要求の小バッチ処理のためのシステムおよび方法 | |
JP2014529142A (ja) | 循環グラフにおけるオブジェクト寿命の管理 | |
US20120203947A1 (en) | On-demand interrupt vector allocation based on activity detection | |
EP3208709B1 (en) | Batch processing method and device for system invocation commands | |
US11675622B2 (en) | Leader election with lifetime term | |
US10409498B2 (en) | Method and apparatus for managing memory | |
US11470155B2 (en) | Subscription server, subscription terminal, information subscription method and system | |
CN115113997A (zh) | 一种任务调度方法、装置、电子设备及存储介质 | |
JP2008152618A (ja) | ジョブ割当プログラム、方法及び装置 | |
CN105683905A (zh) | 在多核心处理器中并行功能的高效率硬件分派及相关的处理器系统、方法及计算机可读媒体 | |
CN114625533A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
US20140007131A1 (en) | Scheduling method and scheduling system | |
CN108733536B (zh) | 监控管理系统及方法 | |
WO2020168928A1 (zh) | 事件处理方法、装置和设备 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN113806050A (zh) | 一种计算资源的处理方法、装置、电子设备及存储介质 | |
JP5557612B2 (ja) | 計算機及び転送プログラム | |
US20140351362A1 (en) | Computer system, data transfer method, and data transfer program | |
CN110187957A (zh) | 一种下载任务的排队方法、装置及电子设备 | |
CN111352710A (zh) | 进程管理方法及装置、计算设备、存储介质 | |
CN116361037B (zh) | 一种分布式通信系统及方法 | |
CN110895464B (zh) | 应用部署方法、设备和系统 | |
CN113900743A (zh) | 一种Java对象访问的方法和装置 | |
CN117827874A (zh) | 数据查询方法及电子设备 |