《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > Linux下相對定時器池的實現及TD-LTE基站應用
Linux下相對定時器池的實現及TD-LTE基站應用
來源:微型機與應用2014年第1期
黃 騫1,胡群超2
(1.中國科學技術大學 軟件學院,安徽 合肥 230051; 2.中科院南京寬帶無線移動通信研發中心
摘要: 針對TD-LTE系統基站應用,提出一種Linux用戶空間下的相對定時器池的實現方法。結合哈希表、相對定時算法等技術,實現大數量定時器的高效管理,以Linux系統定時器單位為定時器粒度,定時器池滿足基站高層協議軟件大數量并發任務的應用需求。
Abstract:
Key words :

摘  要: 針對TD-LTE系統基站應用,提出一種Linux用戶空間下的相對定時器池的實現方法。結合哈希表、相對定時算法等技術,實現大數量定時器的高效管理,以Linux系統定時器單位為定時器粒度,定時器池滿足基站高層協議軟件大數量并發任務的應用需求。
關鍵詞: TD-LTE;協議定時器;哈希表;定時器池;相對定時器

 Linux系統提供這樣一種機制,預先設置一定時間長度并在設定的時間到期后執行預先設定的操作,這種機制即為定時器(timer)。Linux系統面向用戶提供多種用戶級的定時器接口,而基于這些用戶級定時器接口實現的應用于特定場合定時任務的定時器稱為相對定時器(relative timer)。TD-LTE(時分長期演進)系統基站控制面高層協議需要使用較大數量的百毫秒級、秒級甚至是分鐘級協議定時器,例如S1切換準備定時器的建議取值為3 000 ms,S1切換保護定時器的建議取值為5 000 ms,S1、X2再次切換間隔時間的建議取值為1 min。為滿足TD-LTE基站系統定時精度相對較低但定時器數量龐大的應用需求,本文實現了一種基于Linux系統定時器的相對定時器池,以守護進程(Daemon)的形式向基站控制面高層協議軟件內部各個任務提供定時服務并負責較大數量的定時器管理功能,定時粒度為100 ms,所實現的相對定時器池可穩定運行于TD-LTE系統基站設備。
1 工作流程及算法實現
1.1 定時器池架構

 相對定時器池模塊作為一個守護進程(Daemon)為高層協議軟件的其他任務提供服務。相對定時器池架構如圖1所示。定時器池后臺任務擁有兩個線程,主線程負責定時器池中超時定時器的檢測,另一個線程處理用戶任務對定時器池操作的請求消息。相對定時器池后臺程序每隔100 ms檢測一次定時器池鏈表,如果池內有超時定時器,將發送一個超時事件消息給注冊該定時器的擁有者,通常是高層協議軟件的一個任務(對于定時器池而言,即為用戶任務);定時器操作請求處理線程通過socket接收定時器請求消息[1],這些請求轉變為協議棧內部定義的消息,而且使用用戶任務的特定參數發送消息給定時器池。

 主要數據結構定義如下:
 structlist_head {structlist_head*next,*prev;};
    //選用linux內核list.h中的雙向鏈表結構
 typedefstructtmr_q{structlist_headtime_vect_list;
 /*鏈表元素用來組織定時器向量Hash表*/
 structlist_headevent_list;
    /*鏈表元素用來組織定時事件Hash表*/
 TMR_PARA tmr_para;    /*定時器參數*/
 }TMR_Q;    /*定時器池數據庫單元結構*/
1.2 工作流程
1.2.1 主線程處理流程

 相對定時器池的主線程每隔100 ms被Linux系統定時器喚醒。此后,主線程檢查定時器列表以便找出超時定時器。當有超時定時器被找出,線程將發送一個帶有已注冊事件eventID的超時通知消息給相應用戶任務。當用戶任務接收到這個消息,觸發相應的處理方法來處理這個超時事件。主線程處理流程示意圖如圖2(a)所示。
1.2.2 定時器操作請求消息處理流程
 操作請求消息的處理線程是一個無限循環,它一直在等待接收用戶任務通過socket發送的定時器操作請求消息,當接收到操作請求消息后進行相應的請求處理,請求消息處理流程圖如圖2(b)所示。請求處理模塊中有4個操作函數,函數定義如下:
 TMR_Q*FindTimer(TMR_PARA*target);/*查找定時器*/
 u32 AddTimer(TMR_PARA*Timer_new);/*添加定時器*/
 void ModifyTimer(TMR_Q*timer,TMR_PARA*Timer_new);
 /*修改更新定時器*/
 void DeleteTimer(TMR_PARA*timer);/*刪除定時器*/

1.2.3 用戶接口的實現
 為了用戶任務使用定時器,定時器模塊提供了兩種操作接口,在用戶任務中啟動定時器和在任務中關閉定時器。如果一個任務要啟動多個定時器,每一個定時器將使用不同的事件eventID來進行標識區分,在定時器發送超時事件消息給用戶任務收到時,用戶任務通過事件eventID分開處理這些事件。超時時間的單位為100 ms,因此如果一個任務需要在5.3 s后觸發一個定時操作,超時時間應該被設置為53。因為資源限制等問題,定時器設置操作有可能失敗,本定時器池向用戶任務提供最多1 024個定時器。為簡化消息接口處理,關閉定時器的用戶請求消息只需要攜帶定時事件eventID參數即可完成定時器的刪除。
1.3 相對定時算法實現
 本定時器池中使用Linux內核list.h對定時器鏈表進行操作,相對定時算法圍繞兩個無符號長整型全局變量current_ticks和stored_ticks,作為鏈表的哈希函數的計算以及相對定時的計算參數,定時器池守護進程開啟后初始化這兩個變量為0,單位為10 ms。定義用于存儲定時器及定時事件的哈希表靜態數組變量如式 (1),其中TIMER_VECTOR_SZ=8,TOTAL_EVENT_NUM=24。
static structlist_head    timer_vector[TIMER_VECTOR_SZ],event_vector[TOTAL_EVENT_NUM],(1)
free_timer_list;/*空閑定時器標記*/
?。?)添加定時器:整個定時器池數據庫中的定時器分為兩部分,已經被使用的定時器和空閑定時器。請求處理線程添加定時器newTimer時,首先計算相對定時時間(relativeTime=Timeout+stored_ticks),隨后計算定時器池哈希表的向量索引timerIndex=relativeTime&(TIMER_VECTOR_SZ-1),如果新添定時器的relativeTime小于stored_ticks,將relativeTime的值設置為stored_ticks,將其插入到索引位置對應的向量鏈表timer_vector[timerIndex]的頭部,保證該定時器在主線程輪詢第一輪循環中觸發;否則,從鏈表后面向前比較直到第一個relativeTime提前于新添定時器的位置,將定時器插入,同時綁定定時器到事件向量鏈表,采用除留余數法計算定時事件哈希表的向量索引eventIndex=eventID%TOTAL_EVENT_NUM。
?。?)輪詢定時器池:主線程經100 ms系統定時器喚醒后執行current_ticks加10操作,以stored_ticks++為步長,current_ticks-stored_ticks>=0為循環條件,對定時器向量哈希表進行輪詢查找超時定時器,遍歷timer_vector[TIMER_VECTOR_SZ]向量索引下的鏈表,比較定時器池中已使用的定時器的相對定時時間relativetime與current_ticks的大小,小于或等于current_ticks則已超時,立即發送超時響應消息,隨后在鏈表中刪除該定時器并在此位置重新放入空閑定時器標記。
?。?)刪除定時器:在添加定時器時返回定時器的定時事件eventID,刪除定時器時通過eventID在事件鏈表event_vector[TOTAL_EVENT_NUM]中查找。
2 性能測試及應用
 (1)測試環境:PowerPC MPC8548,1.33 GHz,Linux 2.6.35。
 (2)測試設計如下:為滿足TD-LTE系統基站設備的實際應用需求,根據基站協議棧實際運用的定時時間片長度分為三類精度級別,分別為500 ms,5 000 ms,60 s。對應每個定時時間片測試定時器池的定時器批量分別為10個、100個、1 024個定時器。測試開始前將定時器加入到定時器池中,完成初始化;然后開始工作,首先使用gettimeofday函數獲取當前時間t_Begin,主線程檢查超時定時向用戶任務發送超時通知消息前,再次獲取當前時間t_Now,記錄并保存t_Begin和t_Now兩個時間參數用于測試結果的統計,測試結果為定時器的絕對誤差比和相對誤差。定時器絕對誤差比代表定時器的定時性能,測試得到的定時絕對誤差與定時時間片的比值;相對誤差代表定時器池的穩定性[2],即相同定時時間片大小的定時器在100次測試中的相對誤差。
 表1數據顯示,定時器個數相同情況下,定時時間片越長,絕對誤差比例越小。同時,在定時器滿負荷(1 024個定時器同時使用)也能保證良好的穩定性和定時性能。測試結果中的絕對誤差比和定時誤差均處于可忽略范圍內,定時器池的定時性能穩定。表1每種情況測試100次。

 

 

 本文設計并實現了一種基于哈希表定時器池算法,統一管理大量定時器,在滿足用戶任務定時需求、不影響定時器性能的前提下,提高了定時器池的容量及穩定性。通過測試驗證,本文實現的相對定時器池的穩定性、精確性能均滿足設計目標,穩定運行于基站設備。
參考文獻
[1] STEVENS W R.UNIX網路編程(第2卷)[M].北京:人民郵電出版社,2010.
[2] 許健,于鴻洋.Linux下一種高性能定時器池的實現[J].電子技術應用,2012,38(12):114-119.
[3] 趙紅武,之金瑜,劉云生.一種改進的定時器實現算法及其性能分析[J].微計算機應用,2006,27(3):343-345.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久久久久久久蜜桃| 欧美人牲a欧美精品| 国产精品无人区| 国产亚洲精品久久飘花| 欧美国产欧美亚州国产日韩mv天天看完整| 久久综合九色九九| 欧美黄网免费在线观看| 欧美大学生性色视频| 亚洲美女在线国产| 亚洲国产精品激情在线观看| 尤物在线观看一区| 欧美高清视频在线| 国产亚洲人成a一在线v站| 国产欧美一区二区精品仙草咪| 亚久久调教视频| 亚洲天堂av在线免费| 亚洲第一在线视频| 亚洲在线日韩| 国产精品视频免费观看www| 亚洲电影专区| 美女视频黄 久久| 国产日韩欧美不卡| 黄色精品免费| 日韩午夜精品视频| 免费视频最近日韩| 免费在线播放第一区高清av| 亚洲午夜精品国产| 亚洲电影欧美电影有声小说| 欧美精品一区二区三区四区| 日韩视频在线永久播放| 欧美黄色免费网站| 国产精品白丝黑袜喷水久久久| 亚洲国产99精品国自产| 欧美一区二区三区免费视| 亚洲电影在线观看| 亚洲午夜久久久久久久久电影院| 亚洲调教视频在线观看| 牛人盗摄一区二区三区视频| 亚洲福利精品| 亚洲欧美中文另类| 在线成人性视频| 欧美激情久久久久| 久久国产夜色精品鲁鲁99| 欧美日韩一区精品| 国语自产精品视频在线看| 日韩亚洲不卡在线| 久久久久一区二区| 亚洲激情电影中文字幕| 欧美激情二区三区| 亚洲美女中文字幕| 一区二区三区.www| 久久露脸国产精品| 国产精品日日摸夜夜摸av| 一区二区三区高清在线| 国产精品日韩在线一区| 欧美一区深夜视频| 亚洲欧洲精品一区二区三区波多野1战4| 久久人人97超碰精品888| 亚洲人屁股眼子交8| 亚洲精品欧洲精品| 欧美不卡视频一区| 国产精品一国产精品k频道56| 亚洲色无码播放| 一二美女精品欧洲| 欧美大片专区| 卡一卡二国产精品| 国产免费观看久久黄| 欧美日精品一区视频| 久久婷婷一区| 国产嫩草影院久久久久| 国产欧美一区二区精品婷婷| 亚洲电影免费在线| 亚洲国产高潮在线观看| 美日韩丰满少妇在线观看| 欧美三级欧美一级| 久久久久一区二区三区四区| 久久午夜电影网| 亚洲欧美日韩另类精品一区二区三区| 蜜臀av在线播放一区二区三区| 亚洲一区bb| 欧美在线三区| 国产精品v欧美精品v日韩精品| 午夜精品成人在线视频| 久久尤物视频| 国产亚洲精品久久久久久| 亚洲精品一区二区三区福利| 欧美精品 日韩| 亚洲欧美在线免费| 欧美激情视频一区二区三区不卡| 一区二区三区免费观看| 免费观看30秒视频久久| 欧美专区亚洲专区| 久久免费的精品国产v∧| 欧美一区=区| 欧美影视一区| 亚洲人成网在线播放| 亚洲一级免费视频| 欧美综合激情网| 欧美日韩18| 99国产精品私拍| 亚洲国产精品一区二区第四页av| 欧美精品久久久久久| 妖精视频成人观看www| 日韩视频在线一区二区| 欧美精品一区二区三区四区| av成人黄色| 亚洲精选国产| 久久午夜精品| 亚洲影视中文字幕| 亚洲激情第一页| aⅴ色国产欧美| 国产偷国产偷亚洲高清97cao| 国产精品国产三级国产aⅴ无密码| 国产美女高潮久久白浆| 国产欧美一区二区精品仙草咪| 欧美成人综合一区| 黄色成人精品网站| 国产精品视频yy9099| 亚洲精品国产品国语在线app| 亚洲无吗在线| 136国产福利精品导航网址| 国产女人水真多18毛片18精品视频| 一本色道**综合亚洲精品蜜桃冫| 欧美资源在线观看| 亚洲国产成人不卡| 麻豆亚洲精品| 亚洲欧美中文字幕| 欧美日韩国产高清视频| 欧美激情第一页xxx| 在线综合亚洲欧美在线视频| 国产日韩精品一区| 欧美一区二区三区四区视频| 免费观看成人鲁鲁鲁鲁鲁视频| 久久久精品国产99久久精品芒果| 国产亚洲欧美日韩在线一区| 99综合电影在线视频| 欧美成人午夜剧场免费观看| 激情懂色av一区av二区av| 一区二区91| 免费在线观看日韩欧美| 亚洲成人中文| 欧美影院午夜播放| 亚洲精选国产| 好看的日韩视频| 先锋影院在线亚洲| av成人福利| 欧美日韩一区二区在线观看视频| 99国产精品久久久久久久成人热| 亚洲综合色丁香婷婷六月图片| 国产精品午夜电影| 99国产精品久久久久老师| 美女亚洲精品| 极品少妇一区二区三区精品视频| 亚洲激情电影在线| 国语自产偷拍精品视频偷| 黑人巨大精品欧美黑白配亚洲| 欧美一区二区在线免费播放| 欧美午夜不卡影院在线观看完整版免费| 在线亚洲免费| 欧美一区二区视频网站| 久久综合成人精品亚洲另类欧美| 亚洲图片在区色| 久久久久女教师免费一区| 亚洲伦理一区| 亚洲国产精品久久久久久女王| 午夜激情一区| 国产精品白丝黑袜喷水久久久| 国产精品国产a级| 中日韩在线视频| 欧美日韩免费观看一区二区三区| 噜噜噜噜噜久久久久久91| 亚洲精品日韩一| 国产亚洲一区二区三区| 亚洲一区欧美| 午夜亚洲一区| 欧美精品免费看| 亚洲午夜伦理| 亚洲免费不卡| 亚洲影院色无极综合| 亚洲欧美高清| 欧美日韩国产专区| 一区二区三区蜜桃网| 久久国产精品亚洲77777| 亚洲高清免费视频| 亚洲综合三区| 亚洲在线观看免费| 性色av香蕉一区二区| 国产亚洲成av人在线观看导航| 国产在线精品一区二区夜色| 欧美日韩美女| 欧美jizzhd精品欧美巨大免费| 亚洲第一区在线观看| 国产偷国产偷亚洲高清97cao| 99精品欧美一区二区三区综合在线| 精品1区2区| 欧美国产91| 最新中文字幕一区二区三区| 欧美精品久久久久久久久老牛影院| 性欧美激情精品| 国产精品久久久久久久第一福利| 久久在线免费视频| 狠狠88综合久久久久综合网| 国产精品久久久久久久久借妻| 久久久精品2019中文字幕神马| 久久免费午夜影院| 国产深夜精品| 国产综合精品| 美女福利精品视频| 国产亚洲激情| 国产伦精品一区二区三区视频黑人| 欧美日本二区| 国产欧美成人| 国产精品影院在线观看| 亚洲欧美资源在线| 欧美电影免费观看高清| 一本一本久久a久久精品综合妖精| 精品成人国产| 亚洲日本电影| 久久国产精品久久久| 国产欧美短视频| 亚洲电影av在线| 欧美一级成年大片在线观看| 国产精品亚洲网站| 亚洲精品乱码久久久久久| 午夜久久tv| 亚洲国产欧美精品| 亚洲激情在线观看视频免费| 国产伦精品一区二区三区免费迷| 女女同性精品视频| 午夜精品一区二区三区在线| 99精品视频免费在线观看| 久久久久看片| 欧美大片一区二区| 一区二区日韩免费看| 亚洲欧美国产77777| 麻豆九一精品爱看视频在线观看免费| 欧美ab在线视频| 国产精品久久久久aaaa九色| 亚洲性图久久| 国产精品一区免费在线观看| 午夜久久久久久久久久一区二区| 国内精品亚洲| 午夜欧美精品久久久久久久| 亚洲精品乱码久久久久久蜜桃91| 欧美精品乱人伦久久久久久| 精品成人在线视频| 欧美另类综合| 亚洲成在人线av| 国产片一区二区| 免费一区二区三区| 免费不卡视频| 国产亚洲欧美一区二区三区| 欧美三级免费| 午夜电影亚洲| 国内成人自拍视频| 国内精品久久久久久久影视蜜臀| 亚洲精品一区二区三区av| 亚洲高清视频在线| 亚洲欧美日韩电影| 亚洲午夜精品17c| 国产拍揄自揄精品视频麻豆| 国产精品自拍小视频| 国产日韩精品一区二区| 亚洲一区二区三区欧美| 亚洲精品视频在线| 欧美日韩情趣电影| 国产麻豆精品视频| 国产精品一区在线观看| 国产精品综合av一区二区国产馆| 久久精品盗摄| 欧美日韩成人综合| 国产一区二区三区av电影| 一区二区三区.www| 蜜臀av国产精品久久久久| 欧美顶级少妇做爰| 欧美另类久久久品| 欧美亚洲自偷自偷| 欧美精品免费观看二区| 亚洲久久一区二区| 麻豆精品在线观看| 最新国产の精品合集bt伙计| 亚洲欧美视频一区二区三区| 欧美亚洲三级| 亚洲欧美日韩综合一区| 欧美福利电影在线观看| 欧美三区在线视频| 一本色道久久综合精品竹菊| 蜜月aⅴ免费一区二区三区| 伊人久久综合97精品| 欧美精品在线一区| 性欧美办公室18xxxxhd| 国产精品一卡二| 香蕉久久国产| 午夜精品一区二区三区四区| 欧美另类极品videosbest最新版本| 亚洲激情视频在线| 亚洲一区二区三区成人在线视频精品| 欧美日韩 国产精品| 一区二区三区日韩欧美精品| 国产欧美综合一区二区三区| 亚洲视频免费看| 久久人人97超碰人人澡爱香蕉| 久久天堂av综合合色| 一区二区三区日韩精品| 麻豆精品在线播放| 激情成人av在线| 国产曰批免费观看久久久| 国产日韩欧美三级| 亚洲国产精品久久久久秋霞影院| 国产精品夜夜夜一区二区三区尤| 国产欧美午夜| 久久久久久9| 国产精品久久综合| 国产欧美1区2区3区| 蜜桃久久av一区| 欧美私人啪啪vps| 欧美色中文字幕| 亚洲一区二区三区精品在线观看| 欧美一区二区三区四区在线| 黄色成人片子| 国产精品xxxav免费视频| 销魂美女一区二区三区视频在线| 国语自产偷拍精品视频偷| 亚洲一区制服诱惑| 欧美日韩99| 欧美日本韩国一区二区三区| 欧美午夜影院| 久久av在线看|