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

  今天悟空終於發現,原來八戒爲了不讓他擾亂達人上課,竟然偷偷的給達人換了課室。悟空心想算了,我還是換個身份去聽課吧。悟空想扮八戒,但是又一想,八戒就在課堂上,扮八戒肯定穿幫,所以悟空想想還是扮三師弟沙僧算了。

  達人:上次我們將時間的維護者timekeeper,而且系統會定時觸發中斷去執行do_timer函數,那麼這個定時中斷又是誰產生的呢?答案是時鐘事件設備。

  “沙僧”:時鐘事件有什麼特點呢?

  達人:時鐘事件設備一個最大的特點就是,可以編程,而且可以產生中斷,而時鐘源卻不能編程,而且不能產生中斷。其實時鐘事件是硬件定時器的一個抽象定義,與時鐘源一樣,系統中可以有很多時鐘事件。

  “沙僧”:老師,那麼時鐘事件在內核中用什麼表示呢?

  達人:時鐘事件在內核中結構體struct clock_event_device表示。

  “沙僧”:老師,struct clock_event_device和struct clocksource有什麼相同和區別呢?

  達人:這兩個結構體的確有幾個成員是相同的,其中都包含了rating、mult、shift這三個成員,而且含義一樣。但是struct clock_event_device結構體沒有read函數,因爲時鐘事件不需要讀取定時器的值。不過這個函數包含另外兩個重要的回調函數event_handler、set_next_event。

  “沙僧”:老師,那麼這兩個函數有什麼用處呢?

  達人:event_handler函數是當中斷產生的時候觸發的中斷回調函數,通過這個函數完成時鐘事件的處理。set_next_event函數用於設置下一次觸發的時間。

  “沙僧”:老師……

  八戒終於忍無可忍大吼:老沙!!!

  角落裏睡覺的沙僧彈起:二師兄,我再也不敢在課堂上睡覺了,你就饒了我這次吧。

  悟空看到沙僧,立刻變成蒼蠅飛出課室,飛出去之後心裏還納悶呢,怎麼三師弟也來學習這個啊?

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