- 論壇徽章:
- 0
|
內(nèi)核的時(shí)間系統(tǒng),還是比較有意思的.上次寫過cfs后,便看了hrtimer部分,一直沒抽出時(shí)間來整理,現(xiàn)在還有一些不太明白的地方,我準(zhǔn)備開這個(gè)帖子,和大家多聊聊,聊完了,我再做個(gè)總結(jié)...畢竟,一個(gè)人的思維局限性很大,呵呵
我的理解肯定有許多錯(cuò)誤的地方,歡迎大家指正,交流....
今晚只簡(jiǎn)單說說,我會(huì)在后面詳細(xì)總結(jié)出內(nèi)核時(shí)間系統(tǒng)的建立和運(yùn)行機(jī)制,并將學(xué)習(xí)過程中收集的資料,與大家分享.
1) 采用hrtimer resolution的kernel,在硬件支持的情況下,可以提供精度更高的定時(shí)器
2) 沒有那么高精度的硬件kernel怎么辦呢? hrtimer 系統(tǒng)會(huì)建立一個(gè)hrtimer,模擬之前的tick機(jī)制..說白了,就是往硬件的timer寄存器寫下一個(gè)tick的值,模擬出tick中斷來.
1)的精度,就是硬件的時(shí)鐘精度,,軟件支持最高是1ns,大約1Ghz就行了...如果比1g還高,我的理解是kernel目前不支持.
也就是說,如果你的hardware support 1ghz,你可以設(shè)定一個(gè)1ns的定時(shí)器....不能再低了.
2)的精度就不一樣了,它是hz.在每個(gè)hz的處理函數(shù)里,會(huì)處理那些過期的hrtimer.
1)的處理函數(shù)是hrtimer_interrupt(),
我的kernel打開了CONFIG_NOHZ,這樣2)的處理函數(shù)是tick_nohz_handler().
[ 本帖最后由 wxc200 于 2009-4-26 17:29 編輯 ] |
|