日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

無積累誤差和自適應定時器實現(xiàn)方法

文檔序號:6562956閱讀:380來源:國知局
專利名稱:無積累誤差和自適應定時器實現(xiàn)方法
技術領域
本發(fā)明涉及一種在計算機中和通信領域?qū)崿F(xiàn)無積累誤差和自適應定時器的實現(xiàn)方法。
背景技術
定時器是用于控制執(zhí)行實例定期執(zhí)行的,例如在TCP通信中,如果一定時間內(nèi)沒有收到 回應,會再次發(fā)起連接請求;在軟件維護的的MAC (媒質(zhì)接入層)表中,需要維護表項的老 化時間, 一般是定時執(zhí)行減1的操作,減至0時就將表項刪除。在需要長期進行定時操作的 場合,如協(xié)議編程,如果每次的定時存在一定的誤差,則經(jīng)過很多次的執(zhí)行之后,可能會積 累起很大的時間誤差,這些誤差將會影響協(xié)議正確運轉,導致協(xié)議出現(xiàn)很隱晦的問題。而在 通信領域,協(xié)議非常的多,對于無累積誤差的定時需求是很強烈的。
定時器的時鐘源來源于硬件時鐘中斷,時鐘中斷每隔一定時間產(chǎn)生,該時間間隔為最小 計時時長,也就是定時器的計時精度,每個對硬件時鐘中斷處理稱為機器的定時周期。
現(xiàn)在定時器的實現(xiàn)多采用對列的形式實現(xiàn),時鐘周期一到,就對定時對列進行減1的操 作,當結果等于0時,就認為定時時間已到,調(diào)用執(zhí)行函數(shù)執(zhí)行任務。對于對列的組織形式 有單對列和多對列之分。這種定時方式對機器要求較高,如果執(zhí)行函數(shù)的執(zhí)行時間超過定時 的周期,將可能會產(chǎn)生-一些問題;而如果因為對列龐大,單次遍歷時間已經(jīng)超過硬件時鐘中 斷周期的情況下,整個定時體制的精度都會受到影響。所以應該盡量減少時鐘中斷處理的時 間,并具有容納單次執(zhí)行時間過長的能力。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種無積累誤差和自適應定時器實現(xiàn)方法,以消除定時器中單次 任務執(zhí)行耗時過長的大擾動和積累誤差。
為達上述目的,本發(fā)明采用如下技術方案-一種無積累誤差和自適應定時器實現(xiàn)方法,包括以下歩驟
1) 開始',
2) 獲取當前的系統(tǒng)時間值TO并記錄,作為執(zhí)行實例開始的初始時間值,執(zhí)行次數(shù)m清 零;
3) 獲取當前系統(tǒng)時間Tl,將其作為本次執(zhí)行的起始時間;
4) 執(zhí)行任務,執(zhí)行次數(shù)m增加l;
5) 用執(zhí)行周期T10乘以執(zhí)行次數(shù)m,得到理論執(zhí)行總時間T4;
6) 用當前的系統(tǒng)時間值T5,減去初始時間值TO,得到實際的執(zhí)行總時間T5;
7) 用理論執(zhí)行總時間T4減去實際的執(zhí)行總時間T5,得到需要休眠的總時間T6;
8) 如果休眠總時間大fO,執(zhí)行休眠,休眠時間結束后喚醒,然后進入步驟9);否則進 入歩驟9);
9) 判斷是否需要修改執(zhí)行周期,如果是,則修改執(zhí)行周期,重啟定時器,返回步驟2);
如果否,則返回歩驟3)。
作為本發(fā)明的一種改進,在所述歩驟4)之后,歩驟5)之前還包括以下歩驟
獲取當前系統(tǒng)時間T2,減去本次執(zhí)行的起始時間Tl,得到并記錄本次任務的執(zhí)行時間 T3,以用于計算任務執(zhí)行的平均耗時值和CPU負荷率。
作為本發(fā)明的又一改進,在所述步驟7)之后,步驟8)之前還包括休眠時間補償步驟 用需要休眠的總時間T6減去估算的定時器本身計算所需的耗時量,對休眠時間進行補償。
其中,在所述方法的任一步驟中,如果收到外部中斷或指令,則結束執(zhí)行。
通過本發(fā)明方法,累積的誤差可以通過類似積分的方式進行補償,從而實現(xiàn)消除累積誤 差的目的,并消除單次的大擾動,且執(zhí)行周期可動態(tài)調(diào)節(jié)。而且只調(diào)用系統(tǒng)的休眠機制,不 往系統(tǒng)的定時器對列中加入任何節(jié)點,幾乎不增加系統(tǒng)定時器的負擔。同時任務一直由一個 進程或線程執(zhí)行,而不由定時器執(zhí)行,任務之間的交互和同歩都會更加簡單。特別適用于通 信協(xié)議開發(fā)領域中定時累積誤差和執(zhí)行時間變化大、但平均值穩(wěn)定的場合。
以下結合附圖及實施例進一歩說明本發(fā)明。


圖1為本發(fā)明實施例處理流程圖。
具體實施例方式
--種無積累誤差和自適應定時器實現(xiàn)方法,如圖2所示,具體包括以下步驟-
1) 開始;
2) 獲取當前的系統(tǒng)時間值TO并記錄,作為執(zhí)行實例開始的初始時間值,執(zhí)行次數(shù)m清零;
3) 獲取當前系統(tǒng)時間T1,將其作為本次執(zhí)行的起始時間;
4) 執(zhí)行任務,執(zhí)行次數(shù)m增加l;
5) 用執(zhí)行周期T10乘以執(zhí)行次數(shù)m,得到理論執(zhí)行總時間T4;
6) 用當前的系統(tǒng)時間值T5,減去初始時間值TO,得到實際的執(zhí)行總時間T5;
7) 用理論執(zhí)行總時間T4減去實際的執(zhí)行總時間T5,得到需要休眠的總時間T6; 用需要休眠的總時間T6減去估算的定時器本身計算所需的耗時量,對休眠時間進行補償。 該耗時量與機器及運行的環(huán)境有關,通過對需要休眠的總時間T6進行補償可以獲得更好的精度;
8) 如果休眠總時間大于0,則執(zhí)行休眠,休眠時間結束后喚醒,然后進入步驟9);否則直接進入步驟10);
9) 判斷是否需要修改執(zhí)行周期,如果是,則修改執(zhí)行周期,重啟定時器,返回步驟2);如果否,則直接返回歩驟3)。
其中,在上述步驟中,如果收到外部中斷或指令,則結束執(zhí)行過程。
其中,在所述步驟4)之后,步驟5)之前還包括以下步驟
獲取當前系統(tǒng)時間T2,減去本次執(zhí)行的起始時間Tl,得到并記錄本次任務的執(zhí)行時間T3,以用于計算任務執(zhí)行的平均耗時值和CPU負荷率;艮P,將每個執(zhí)行周期的執(zhí)行時間T3 相加再除以總的執(zhí)行次數(shù)就得到了任務執(zhí)行的平均耗時值,平均耗時值與執(zhí)行周期的比值就是定時器的CPU負荷率。
上述實施例的實現(xiàn)需具備以下兩個條件1、具備讀取系統(tǒng)時鐘的能力,而且讀取的精度 應該盡可能的高,因為這將決定最終的定時精度;2、操作系統(tǒng)具備對進程或線程的休眠和喚醒能力,而且控制的精度越高越好,因為其精度也會影響最終的定時精度。以上兩個條件在一般的操作系統(tǒng)和硬件平臺上都能夠提供。
權利要求
1. 一種無積累誤差和自適應定時器實現(xiàn)方法,其特征在于包括以下步驟1)開始;2)獲取當前的系統(tǒng)時間值T0并記錄,作為執(zhí)行實例開始的初始時間值,執(zhí)行次數(shù)m清零;3)獲取當前系統(tǒng)時間T1,將其作為本次執(zhí)行的起始時間;4)執(zhí)行任務,執(zhí)行次數(shù)m增加1;5)用執(zhí)行周期T10乘以執(zhí)行次數(shù)m,得到理論執(zhí)行總時間T4;6)用當前的系統(tǒng)時間值T5,減去初始時間值T0,得到實際的執(zhí)行總時間T5;7)用理論執(zhí)行總時間T4減去實際的執(zhí)行總時間T5,得到需要休眠的總時間T6;8)如果休眠總時間大于0,執(zhí)行休眠,休眠時間結束后喚醒,然后進入步驟9);否則進入步驟9);9)判斷是否需要修改執(zhí)行周期,如果是,則修改執(zhí)行周期,重啟定時器,返回步驟2);如果否,則返回步驟3)。
2、 根據(jù)權利要求l所述的無積累誤差和自適應定時器實現(xiàn)方法,其特征在于在所述步驟4) 之后,歩驟5)之前還包括以下歩驟獲取當前系統(tǒng)時間T2,減去本次執(zhí)行的起始時間Tl,得到并記錄本次任務的執(zhí)行時間T3, 以用于計算任務執(zhí)行的平均耗時值和CPU負荷率。
3、 根據(jù)權利要求1或2所述的無積累誤差和自適應定時器實現(xiàn)方法,其特征在于在所述步驟7)之后,歩驟8)之前還包括以下一休眠時間補償步驟用需要休眠的總時間T6減去估算的定時器本身計算所需的耗時量,對休眠時間進行補償。
4、 根據(jù)權利要求1或2所述的無積累誤差和自適應定時器實現(xiàn)方法,其特征在于在所述方 法的任一歩驟中,如果收到外部中斷或指令,則結束執(zhí)行。
全文摘要
一種無積累誤差和自適應定時器實現(xiàn)方法,包括獲取當前的系統(tǒng)時間值T0并記錄,作為執(zhí)行實例開始的初始時間值,執(zhí)行次數(shù)m清零;獲取當前系統(tǒng)時間T1,將其作為本次執(zhí)行的起始時間;執(zhí)行任務,執(zhí)行次數(shù)m增加1;用執(zhí)行周期T10乘以執(zhí)行次數(shù)m,得到理論執(zhí)行總時間T4;用當前的系統(tǒng)時間值T5,減去初始時間值T0,得到實際的執(zhí)行總時間T5;用理論執(zhí)行總時間T4減去實際的執(zhí)行總時間T5,得到需要休眠的總時間T6;如果休眠總時間大于0,執(zhí)行休眠,休眠時間結束后喚醒,然后判斷是否需要修改執(zhí)行周期,如果是,則修改執(zhí)行周期,重啟定時器。本發(fā)明可以通過類似積分的方式進行補償,從而實現(xiàn)消除累積誤差的目的,并消除單次的大擾動,且執(zhí)行周期可動態(tài)調(diào)節(jié)。
文檔編號G06F9/46GK101206584SQ200610147438
公開日2008年6月25日 申請日期2006年12月18日 優(yōu)先權日2006年12月18日
發(fā)明者剛 孫, 晏春平 申請人:上海未來寬帶技術及應用工程研究中心有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1