悟空学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函数用于设置下一次触发的时间。

  “沙僧”:老师……

  八戒终于忍无可忍大吼:老沙!!!

  角落里睡觉的沙僧弹起:二师兄,我再也不敢在课堂上睡觉了,你就饶了我这次吧。

  悟空看到沙僧,立刻变成苍蝇飞出课室,飞出去之后心里还纳闷呢,怎么三师弟也来学习这个啊?

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