專(zhuān)利名稱(chēng):定時(shí)器管理系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及定時(shí)器,更具體地說(shuō),涉及一種基于操作系統(tǒng)的定時(shí)器管理系統(tǒng)。
背景技術(shù):
定時(shí)器目前已經(jīng)廣泛應(yīng)用于各個(gè)領(lǐng)域。例如,定時(shí)器是通信協(xié)議正常運(yùn)行的基本要素之一,用于各種定時(shí)和幀重傳的任務(wù)。現(xiàn)有的定時(shí)器幾乎無(wú)一例外地使用了“相對(duì)時(shí)間”的概念,即相對(duì)于當(dāng)前時(shí)間,定時(shí)器的“剩余時(shí)間”還有多少,如果為0則表明定時(shí)器已經(jīng)超時(shí),并發(fā)出超時(shí)通知?,F(xiàn)有較常用的定時(shí)器大多采用時(shí)間輪算法、定時(shí)器隊(duì)列算法等。例如某一時(shí)刻存在四個(gè)已注冊(cè)的定時(shí)器,它們的剩余時(shí)間分別為8、10、15、18,則使用時(shí)間輪(假設(shè)采用8 格一輪)算法的定時(shí)器結(jié)構(gòu)如圖I所示,使用定時(shí)器隊(duì)列算法的定時(shí)器結(jié)構(gòu)如圖2所示。時(shí)間輪算法采用的數(shù)據(jù)結(jié)構(gòu)是哈希表,輪的格數(shù)即為哈希桶的個(gè)數(shù),哈希函數(shù)即使用剩余時(shí)間對(duì)哈希桶的個(gè)數(shù)求模,相應(yīng)的商即表示定時(shí)器要在輪轉(zhuǎn)過(guò)這么多圈之后才超時(shí)。定時(shí)器隊(duì)列算法采用的數(shù)據(jù)結(jié)構(gòu)是雙向鏈表,以方便在任何節(jié)點(diǎn)之前進(jìn)行插入操作。每次注冊(cè)定時(shí)器需要從隊(duì)頭開(kāi)始進(jìn)行剩余時(shí)間的累加,直到累加時(shí)間超出本定時(shí)器的定時(shí)時(shí)長(zhǎng),這時(shí)可計(jì)算出本定時(shí)器的相對(duì)剩余時(shí)間,并插入到當(dāng)前節(jié)點(diǎn)之前。當(dāng)出現(xiàn)大規(guī)模問(wèn)題時(shí),時(shí)間輪算法和定時(shí)器隊(duì)列算法很難在定時(shí)器注冊(cè)、注銷(xiāo)和掃描這三個(gè)重要的操作之間取得令人滿(mǎn)意的效率。下面是它們的算法時(shí)間復(fù)雜度分析(n表示問(wèn)題規(guī)模,m表示時(shí)間輪算法的哈希桶個(gè)數(shù))
權(quán)利要求
1.一種定時(shí)器管理系統(tǒng),其特征在于包括定時(shí)器注冊(cè)表、定時(shí)器注銷(xiāo)表、注冊(cè)集合、以及定時(shí)器掃描単元;所述定時(shí)器注冊(cè)表的每ー表項(xiàng)包括絕對(duì)掃描頻率記數(shù)和注冊(cè)集合地址,所述絕對(duì)掃描頻率記數(shù)為當(dāng)前掃描計(jì)數(shù)與定時(shí)時(shí)長(zhǎng)之和;每一所述注冊(cè)集合包括定時(shí)器ID ;所述定時(shí)器注銷(xiāo)表的每ー表項(xiàng)包括定時(shí)器ID以及注冊(cè)集合地址;所述定時(shí)器掃描單元,用于在所述定時(shí)器注冊(cè)表中絕對(duì)掃描頻率記數(shù)最小的表項(xiàng)中的絕對(duì)掃描頻率記數(shù)與當(dāng)前掃描計(jì)數(shù)相等時(shí),根據(jù)所述表項(xiàng)的注冊(cè)集合地址獲取對(duì)應(yīng)的注冊(cè)集合井向該注冊(cè)集合中每個(gè)定時(shí)器ID相關(guān)聯(lián)的定時(shí)器發(fā)出超時(shí)通知。
2.根據(jù)權(quán)利要求I所述的定時(shí)器管理系統(tǒng),其特征在于所述定時(shí)器掃描單元在發(fā)出超時(shí)通知后從所述定時(shí)器注銷(xiāo)表中刪除所有包含所述定時(shí)器ID的表項(xiàng),銷(xiāo)毀包含上述注冊(cè)集合,并從所述定時(shí)器注冊(cè)表中刪除所述絕對(duì)掃描頻率記數(shù)最小的表項(xiàng)。
3.根據(jù)權(quán)利要求I所述的定時(shí)器管理系統(tǒng),其特征在于所述定時(shí)器還包括定時(shí)器注冊(cè)單元,用于在接收到包含定時(shí)器ID的定時(shí)器注冊(cè)請(qǐng)求時(shí),計(jì)算絕對(duì)掃描頻率記數(shù)并查找所述定時(shí)器注冊(cè)表,并在所述定時(shí)器注冊(cè)表中存在與所述絕對(duì)掃描頻率記數(shù)對(duì)應(yīng)的表項(xiàng)吋,則將所述定時(shí)器ID插入所述與絕對(duì)掃描頻率記數(shù)對(duì)應(yīng)的表項(xiàng)指向的注冊(cè)集合,同時(shí)在所述定時(shí)器注銷(xiāo)表中插入包括所述定時(shí)器ID及注冊(cè)集合地址的表項(xiàng);在所述定時(shí)器注冊(cè)表中不存在與所述絕對(duì)掃描頻率記數(shù)對(duì)應(yīng)的表項(xiàng),則創(chuàng)建注冊(cè)集合并將所述定時(shí)器ID插入該注冊(cè)集合,同時(shí)在所述定時(shí)器注冊(cè)表中插入包含所述絕對(duì)掃描頻率記數(shù)及注冊(cè)集合地址的表項(xiàng),并在所述定時(shí)器注銷(xiāo)表中插入包括所述定時(shí)器ID及注冊(cè)集合地址的表項(xiàng)。
4.根據(jù)權(quán)利要求I所述的定時(shí)器管理系統(tǒng),其特征在于所述定時(shí)器還包括定時(shí)器注銷(xiāo)單元,用于在接收到包含定時(shí)器ID的定時(shí)器注銷(xiāo)請(qǐng)求時(shí),從所述定時(shí)器注銷(xiāo)表中獲取包含所述定時(shí)器ID的表項(xiàng)并從與該表項(xiàng)對(duì)應(yīng)的注冊(cè)集合中刪除所述定時(shí)器ID,然后將所述表項(xiàng)從定時(shí)器注銷(xiāo)表中刪除。
5.根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的定時(shí)器管理系統(tǒng),其特征在于所述定時(shí)器注冊(cè)表以絕對(duì)掃描頻率記數(shù)為鍵,所述定時(shí)器注銷(xiāo)表以定時(shí)器ID為鍵,所述定時(shí)器注冊(cè)表、定時(shí)器注銷(xiāo)表中的表項(xiàng)按鍵有序并采用紅黑樹(shù)實(shí)現(xiàn),所述定時(shí)器掃描單元對(duì)所有注冊(cè)的定時(shí)器按超時(shí)通知時(shí)間進(jìn)行有序插入。
6.一種定時(shí)器管理方法,其特征在干包括以下步驟 (a)從定時(shí)器注冊(cè)■表獲取絕對(duì)掃描頻率記數(shù)最小的表項(xiàng),所述定時(shí)器注冊(cè)■表的姆ー表項(xiàng)包括絕對(duì)掃描頻率記數(shù)和注冊(cè)集合地址,所述絕對(duì)掃描頻率記數(shù)為當(dāng)前掃描計(jì)數(shù)與定時(shí)時(shí)長(zhǎng)之和; (b)判斷所述表項(xiàng)中的絕對(duì)掃描頻率記數(shù)與當(dāng)前掃描計(jì)數(shù)是否相等,若相等則執(zhí)行步驟(C); (C)根據(jù)所述表項(xiàng)的注冊(cè)集合地址獲取對(duì)應(yīng)的注冊(cè)集合,所述注冊(cè)集合包括定時(shí)器ID,井向該注冊(cè)集合中每個(gè)定時(shí)器ID相關(guān)聯(lián)的定時(shí)器發(fā)出超時(shí)通知。
7.根據(jù)權(quán)利要求6所述的定時(shí)器管理方法,其特征在干所述步驟(c)之后還包括從所述定時(shí)器注銷(xiāo)表中刪除所有包含所述定時(shí)器ID的表項(xiàng),銷(xiāo)毀包含上述注冊(cè)集合,并從所述定時(shí)器注冊(cè)表中刪除所述絕對(duì)掃描頻率記數(shù)最小的表項(xiàng),所述定時(shí)器注銷(xiāo)表的每ー表項(xiàng)包括定時(shí)器ID以及注冊(cè)集合地址。
8.根據(jù)權(quán)利要求7所述的定時(shí)器管理方法,其特征在于所述方法還包括在接收到包含定時(shí)器ID的定時(shí)器注冊(cè)請(qǐng)求時(shí),計(jì)算絕對(duì)掃描頻率記數(shù)并查找所述定時(shí)器注冊(cè)■表; 若所述定時(shí)器注冊(cè)表中存在與所述絕對(duì)掃描頻率記數(shù)對(duì)應(yīng)的表項(xiàng),則將所述定時(shí)器ID插入所述與絕對(duì)掃描頻率記數(shù)對(duì)應(yīng)的表項(xiàng)指向的注冊(cè)集合,并在所述定時(shí)器注銷(xiāo)表中插入包括所述定時(shí)器ID及注冊(cè)集合地址的表項(xiàng); 若所述定時(shí)器注冊(cè)表中不存在與所述絕對(duì)掃描頻率記數(shù)對(duì)應(yīng)的表項(xiàng),則創(chuàng)建注冊(cè)集合并將所述定時(shí)器ID插入該注冊(cè)集合,同時(shí)在所述定時(shí)器注冊(cè)表中插入包含所述絕對(duì)掃描頻率記數(shù)及注冊(cè)集合地址的表項(xiàng),并在所述定時(shí)器注銷(xiāo)表中插入包括所述定時(shí)器ID及注冊(cè)■集合地址的表項(xiàng)。
9.根據(jù)權(quán)利要求6所述的定時(shí)器管理方法,其特征在于所述方法還包括 在接收到包含定時(shí)器ID的定時(shí)器注銷(xiāo)請(qǐng)求時(shí),從所述定時(shí)器注銷(xiāo)表中獲取包含所述定時(shí)器ID的表項(xiàng)并從與該表項(xiàng)對(duì)應(yīng)的注冊(cè)集合中刪除所述定時(shí)器ID,然后將所述表項(xiàng)從定時(shí)器注銷(xiāo)表中刪除。
10.根據(jù)權(quán)利要求6-9中任一項(xiàng)所述的定時(shí)器管理方法,其特征在于所述定時(shí)器注冊(cè)表以絕對(duì)掃描頻率記數(shù)為鍵,所述定時(shí)器注銷(xiāo)表以定時(shí)器ID為鍵,所述定時(shí)器注冊(cè)表、定時(shí)器注銷(xiāo)表中的表項(xiàng)按鍵有序并采用紅黑樹(shù)實(shí)現(xiàn),所述定時(shí)器掃描單元對(duì)所有注冊(cè)的定時(shí)器按超時(shí)通知時(shí)間進(jìn)行有序插入。
全文摘要
本發(fā)明提供了一種定時(shí)器管理系統(tǒng),包括定時(shí)器注冊(cè)表、定時(shí)器注銷(xiāo)表、注冊(cè)集合、以及定時(shí)器掃描單元;所述定時(shí)器注冊(cè)表的每一表項(xiàng)包括絕對(duì)掃描頻率記數(shù)和注冊(cè)集合地址;每一所述注冊(cè)集合包括定時(shí)器ID;所述定時(shí)器注銷(xiāo)表的每一表項(xiàng)包括定時(shí)器ID以及注冊(cè)集合地址;所述定時(shí)器掃描單元,用于在所述定時(shí)器注冊(cè)表中絕對(duì)掃描頻率記數(shù)最小的表項(xiàng)中的絕對(duì)掃描頻率記數(shù)與當(dāng)前掃描計(jì)數(shù)相等時(shí),根據(jù)所述表項(xiàng)的注冊(cè)集合地址獲取對(duì)應(yīng)的注冊(cè)集合并向該注冊(cè)集合中每個(gè)定時(shí)器ID相關(guān)聯(lián)的定時(shí)器發(fā)出超時(shí)通知。本發(fā)明還提供一種對(duì)應(yīng)的定時(shí)器管理方法。本發(fā)明通過(guò)絕對(duì)掃描頻率記數(shù)對(duì)定時(shí)器進(jìn)行掃描匹配,在大規(guī)模定時(shí)器注冊(cè)、注銷(xiāo)及掃描都具有極高的效率。
文檔編號(hào)G06Q10/06GK102799961SQ20121020839
公開(kāi)日2012年11月28日 申請(qǐng)日期2012年6月21日 優(yōu)先權(quán)日2012年6月21日
發(fā)明者丘鋒偉 申請(qǐng)人:深圳市匯川控制技術(shù)有限公司, 深圳市匯川技術(shù)股份有限公司, 蘇州匯川技術(shù)有限公司