[發(fā)明專利]一種提高計算機內(nèi)核定時器控制精度的方法無效
| 申請?zhí)枺?/td> | 200810066416.8 | 申請日: | 2008-04-07 |
| 公開(公告)號: | CN101299193A | 公開(公告)日: | 2008-11-05 |
| 發(fā)明(設計)人: | 謝維信;黃敬雄;趙汝聰;黃建軍 | 申請(專利權(quán))人: | 謝維信 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46 |
| 代理公司: | 深圳市智科友專利商標事務所 | 代理人: | 曲家彬 |
| 地址: | 518000廣東省*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 提高 計算機 內(nèi)核 定時器 控制 精度 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及一種提高計算機內(nèi)核定時器控制精度的方法,特別是一種基于原計算機系統(tǒng)對高精度定時事件進行處理的方法。
背景技術(shù)
操作系統(tǒng)是管理計算機或嵌入式平臺的硬件與軟件資源的程序,同時也是應用程序運行的基礎。操作系統(tǒng)是一個大型管理控制程序,其作用是使系統(tǒng)中所有資源按照確立好的時序最大限度的地發(fā)揮作用,為用戶提供方便有效的服務界面。其中內(nèi)核定時器是通用操作系統(tǒng)內(nèi)核管理時間的基礎,其作用是使內(nèi)核任務在指定的時間點上執(zhí)行。使用定時器需要設置定時處理函數(shù)并預先設置一個超時時間,定時器被激活后,所指定的定時處理函數(shù)將在到期時自動執(zhí)行。標準內(nèi)核定時器容易受到內(nèi)核節(jié)拍計時器、硬件中斷、其他定時器和異步任務的影響。特別是由于標準內(nèi)核定時器優(yōu)先級低于硬中斷,因此只有當所有被掛起的硬中斷服務程序執(zhí)行完畢后,內(nèi)核定時器才能得到執(zhí)行,在最壞的情況下,定時服務完全有可能會被推遲1個乃至數(shù)個系統(tǒng)節(jié)拍。鑒于以上無法克服的缺陷,目前常用的計算機通用操作系統(tǒng)中內(nèi)核不能滿足嚴格的定時應用,更不能應用于需要較高精度定時的場合。特別是具體的應用過程中,標準內(nèi)核的系統(tǒng)節(jié)拍響應工作非常繁重。這些工作通常包括:更新系統(tǒng)產(chǎn)生的節(jié)拍總數(shù)、更新系統(tǒng)運行時間與實際時間、執(zhí)行任務調(diào)度、均衡各運行隊列、更新資源消耗和處理器時間的統(tǒng)計值、執(zhí)行超時的動態(tài)定時器以及計算平均負載值等等。用簡單提高內(nèi)核的節(jié)拍率會導致系統(tǒng)頻繁執(zhí)行上述多項響應工作,從而使系統(tǒng)負載迅速增加,進而會顯著降低系統(tǒng)性能。因此目前主流操作系統(tǒng),如UNIX/Linux、WinCE,的內(nèi)核時鐘節(jié)拍率也僅僅僅設定在50Hz到1000Hz。然而局限在此范圍的節(jié)拍率并不能保證內(nèi)核定時器的精度定時任務的完成。此外,定時穩(wěn)定性受硬件IO負荷影響十分明顯。由于普通內(nèi)核定時器所使用的軟中斷在中斷體系中所處的級別較低,必須等待所有掛起的高級別硬中斷執(zhí)行完畢后才能得到執(zhí)行,而系統(tǒng)在進行硬件數(shù)據(jù)讀寫時往往會產(chǎn)生大量硬件中斷,因此在硬件IO負荷很大的系統(tǒng)中,標準內(nèi)核定時器的穩(wěn)定性難以得到保證的,對于高精度的定時任務執(zhí)行則顯然是無從說起。
對于內(nèi)核定時器目前所存在的問題的改進方案中,有些方案雖然不是專門針對定時器的改進方案,但也能夠不同程度提高定時的精度。其中包括:①附加微型內(nèi)核:為了提供硬實時的支持,附加一個實時微內(nèi)核,而將普通操作系統(tǒng)作為一個該微內(nèi)核的一個低優(yōu)先級的任務來運行。普通系統(tǒng)中的任務可以通過FIFO和實時任務進行通信。該方案的典型實例為RT-Linux。該方案的缺點在于需要增加一個微型內(nèi)核,并且需要保持微型內(nèi)核和普通內(nèi)核之間的通信,其跨平臺實施復雜度高,較難實現(xiàn)。而且該方案只是在微型內(nèi)核中實現(xiàn)了實時特性,并沒有提高普通操作系統(tǒng)的定時器性能。2.將時鐘芯片設置為單次觸發(fā)狀態(tài)(One?shot?mode)其基本思想是:將時鐘芯片設置為單次觸發(fā)狀態(tài),即每次給時鐘芯片設置一個超時時間,然后到該超時事件發(fā)生時在時鐘中斷處理程序中再次根據(jù)需要設置一個超時時間。它利用CPU的時鐘計數(shù)器來提供理論上可達CPU主頻的定時精度。該方案的典型實例有Kurt-Linux和Monta?Vista?Linux。該方案的缺點在于需要頻繁地計算并設置時鐘芯片的超時時間和修正累積誤差,并且其算法本身運行所占用的時間會對定時效果產(chǎn)生負面影響,事實上很難達到其標稱的定時精度。3.使用額外硬件定時器其:運用系統(tǒng)額外硬件定時器完成高精度定時。顯然該方案的局限性在于要求目標平臺擁有至少一個空閑的硬件定時器,且該方案實際上也屬于一種單次觸發(fā)時鐘方案,同樣有上述方案2所存在的缺點。4.采用計數(shù)器:采用系統(tǒng)節(jié)拍為計數(shù)單位,通過附加程序計數(shù)并觸發(fā)定時器。該方案主要目的是以計數(shù)代替計時來降低周期性定時的開銷,并沒有改進定時器精度。
發(fā)明內(nèi)容
本發(fā)明的目的是在不增加任何硬件設施的前提下,提供一種在計算機操作系統(tǒng)的基礎節(jié)拍基礎上下,實現(xiàn)對高精度定時任務管理的方法。
本發(fā)明的基本構(gòu)思是該方法是在預置的系統(tǒng)定時硬件時鐘和定時粒度的基礎上,在配套內(nèi)核定時器執(zhí)行程序的支持下實現(xiàn)的,包括以下步驟:
①根據(jù)具體目標平臺和應用環(huán)境決定定時粒度,
②解除系統(tǒng)定時硬件時鐘中斷與操作系統(tǒng)節(jié)拍中斷服務程序之間的綁定關(guān)系,
③根據(jù)步驟①所確定的定時精度值,在系統(tǒng)初始化時刻對定時硬件進行設置,從而提升系統(tǒng)定時硬件時鐘的節(jié)拍率,
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于謝維信,未經(jīng)謝維信許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200810066416.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





