悟空学Linux专栏----第16篇

原创 2015年07月10日 14:55:09

  悟空觉得课堂估计是去不了,所以自己打算在家里继续自学,悟空知道达人老师接下来需要讲的是低分辨率的定时器。所谓定时器就是设定一个未来的时间,让系统在这个未来的时间触发一个特定的事件,执行一些预先设定的程序。低分辨率的定时器的计时单位是jiffies的值,也就是精度只能达到1/HZ,以HZ=1000为例,意味着系统定时器的精度就是1ms。

  低分辨率的定时器用struct time_list结构体表示:

  struct timer_list {

  struct list_head entry;

  unsigned long expires;

  struct tvec_base *base;

  void (*function)(unsigned long);

  unsigned long data;

  ….

  };

  这个结构体中有两个比较重要的成员,一个是function函数,这个是一个挂钩函数,每次悟空看到挂钩函数都有一种莫名的郁闷,这就好比破案一样,一个挂钩函数意味着一条线索断了,悟空有需要寻找新的线索才能继续研究。

  第二个是expires,这个表示定时器的到期时间。然而悟空感觉很纳闷为什么时间会用一unsigned long类型的变量来表示呢,而没有采用内核表示时间的结构体struct ktime来表示呢?这让悟空感到很困惑。但是不管悟空怎么困惑,也想不出其中原因,这就像前面的图4不是树一样让悟空无法理解。

  看到了成员struct list_head entry,悟空明白,这个定时器的数据结构的管理方法肯定是双向链表。但是接着新的问题又来了,记得老师说过双向链表不适合管理数据很多的情况。如果系统的定时器很少,这个管理比较好,可是如果系统的定时器很多呢?双向链表就不合适了,Linux内核又是怎么管理这个链表的呢?

  面对这一个个问题,悟空感觉头大,悟空感到很纳闷了,为什么上课那么容易理解,而自学却这么难呢?


版权声明:本文为博主原创文章,未经博主允许不得转载。

悟空学Linux专栏----第31篇

自从悟空答应了“2号童鞋”下节课讲解Linux系统为什么不使用C++,而使用C作为主要语言之后。悟空就头大,查阅了很多资料,最后都没有得出一个比较有说服力的结论。这让悟空很是郁闷,心想自己要食言了,最...
  • wukonglinux
  • wukonglinux
  • 2015年07月14日 10:07
  • 174

悟空学Linux专栏----第4篇

“好的学习方法等于成功了一半。”悟空觉得他无法理解这些代码,应该是学习方法出了问题,他想找到一个好的学习方法。这让他想起了八戒新拜的师傅,人们都称他为Linux达人,悟空想或许他有比较好的学习方法,于...
  • wukonglinux
  • wukonglinux
  • 2015年07月08日 10:42
  • 133

悟空学Linux专栏----第23篇

沙僧最近比较郁闷,他的老板知道他最近学了高精度定时器,就要他实现一个精度误差小于100us的高精度定时器。可是沙僧上课都在睡觉,那里会高精度定时器,所以他跑去找悟空帮忙。   悟空听沙僧说完之后,想...
  • wukonglinux
  • wukonglinux
  • 2015年07月13日 10:18
  • 168

悟空学Linux专栏----第1篇

孙悟空完成了护送唐僧到西天取得真经的任务之后,被如来封为“斗战胜佛”。可这“斗战胜佛”是个闲差,整天无所事事,这一晃1400多年就这么过去,最近孙悟空感觉自己都跟不上这个时代了,想学点新的本领。于是跑...
  • wukonglinux
  • wukonglinux
  • 2015年07月07日 14:54
  • 216

悟空学Linux专栏----第20篇

自从悟空发现高精度定时器的精度很高之后,悟空就决定开始研究高分辨率的定时器。有了低分辨率定时器的基础之后,悟空想内核表示高分辨率定时器的结构中应该至少包括三个成员。   一个表示到期时间的成员,而且...
  • wukonglinux
  • wukonglinux
  • 2015年07月13日 10:08
  • 163

悟空学Linux专栏----第44篇

悟空讨厌关中断,关中断很暴力,但是再暴力也比导致系统异常好,所以悟空决定将所有的发送队列的自旋锁都使用关中断的自旋锁。修改完代码之后,悟空很开心,因为这是悟空第一次改正大牛错误的代码,能够找到别人的错...
  • wukonglinux
  • wukonglinux
  • 2015年07月14日 10:31
  • 151

悟空学Linux专栏----第24篇

今天八戒比较开心,原因是最近考试考了满分。这让大家对八戒刮目相看,大家没想到八戒每天在课堂睡觉,竟然最后还能考满分。所以悟空和沙僧来向八戒道贺。   悟空:看不出来啊,你这猪脑袋竟然能记住这么多东西...
  • wukonglinux
  • wukonglinux
  • 2015年07月13日 10:19
  • 139

悟空学Linux专栏----第17篇

悟空正在低分辨率的定时器的问题而烦恼,这时沙师弟跑来找悟空诉苦,沙师弟说就因为他上课睡觉了,八戒就将他狠狠的揍了一顿,他要悟空给他主持公道。悟空没心思理他。   悟空自言自语:为什么struct t...
  • wukonglinux
  • wukonglinux
  • 2015年07月10日 15:04
  • 164

悟空学Linux专栏----第32篇

悟空最近比较郁闷,因为2号童鞋最近老是问悟空一些奇怪的问题。虽然大家都说2号童鞋很傻,但是悟空却觉得2号童鞋很聪明,因为如果悟空无法回答一个很傻的问题,那不是说明悟空更傻。悟空坚信自己不傻,所以悟空觉...
  • wukonglinux
  • wukonglinux
  • 2015年07月14日 10:08
  • 192

悟空学Linux专栏----第36篇

一直以来“2号童鞋”都感觉自己比较笨,之所以感觉自己比较笨是因为这个世界有很多问题无法想明白,比如上节课老师为什么没有讲软中断的注销函数。为了想明白这个问题,“2号童鞋”失眠了好几晚,可是失眠了好几晚...
  • wukonglinux
  • wukonglinux
  • 2015年07月14日 10:13
  • 243
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:悟空学Linux专栏----第16篇
举报原因:
原因补充:

(最多只允许输入30个字)