悟空學Linux專欄----第22篇

  下課之後達人感到比較開心,因爲今天悟空在課堂上提了不少的問題,達人心想今晚終於可以睡一個好覺了,所以達人今晚回家之後就早早的洗澡上牀了。但是正當達人快要睡着的時候突然聽到了外面有砰砰的敲門聲,達人起來開門一看,竟然是悟空。

  達人(囧):悟空啊,這麼晚了有什麼事嗎?

  悟空:老師,我下課之後發現我還有一個問題不懂,那就是高精度定時器到期之後是如何處理的呢?

  達人:高精度定時器的到期處理函數是“__run_hrtimer”,該函數在”kernel/hrtimer.c”文件中實現,該函數主要實現了兩個功能:第一從紅黑樹中取出將執行的高精度定時器;第二執行取出的高精度定時器。

  悟空:那麼“__run_hrtimer”函數又是誰調用的呢?

  達人:主要有兩個函數調用“__run_hrtimer”函數,一個是“hrtimer_run_queues”函數,一個是“hrtimer_interrupt”函數。這兩個函數分別對應了兩種情況:當系統沒有啓動高精度定時器的功能,卻使用了高精度定時器的時候,系統會在每個tick事件中斷中執行hrtimer_run_queues函數;第二種情況,當系統啓動了高精度定時器的功能的時候,高精度定時器將接管原先給CPU提供tick事件的tick_device,他的中斷回調函數會被設置爲“hrtimer_interrupt”函數……

  悟空想問下一個問題的時候,結果發現達人已經睡着了,悟空十分佩服達人,坐着都能睡着了,所以悟空鬱悶地離開了。

  當達人聽到,悟空關門離開的聲音之後,立刻爬起來將門反鎖了。但是不知道爲什麼悟空走了之後,達人翻來覆去再也睡不着了,就這樣翻來覆去一個晚上……


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章