今天悟空终于发现,原来八戒为了不让他扰乱达人上课,竟然偷偷的给达人换了课室。悟空心想算了,我还是换个身份去听课吧。悟空想扮八戒,但是又一想,八戒就在课堂上,扮八戒肯定穿帮,所以悟空想想还是扮三师弟沙僧算了。
达人:上次我们将时间的维护者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函数用于设置下一次触发的时间。
“沙僧”:老师……
八戒终于忍无可忍大吼:老沙!!!
角落里睡觉的沙僧弹起:二师兄,我再也不敢在课堂上睡觉了,你就饶了我这次吧。
悟空看到沙僧,立刻变成苍蝇飞出课室,飞出去之后心里还纳闷呢,怎么三师弟也来学习这个啊?