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

原创 2015年07月10日 15:10:07

  今天悟空早早地就下载了达人先生的课件,悟空打算接着昨天的问题继续研究。悟空先研究tv1、tv2、tv3、tv4、tv5中存放的数据的条件。按照达人老师的课件。tv1中存放的是定时器的到期时间减去tvec_base中的timer_jiffies(和jiffies相等)的值小于2^8的值的定时器,tv2是存放着这个值在2^8 ~2^14之间的定时器,tv3是存放着这个值在2^14 ~2^20之间的定时器,tv4是存放着这个值在2^20 ~2^26之间的定时器,tv5是存放着这个值在2^26 ~2^32之间的定时器。然而令悟空感到困惑的是timer_jiffies会随着时间jiffies的变化,如果每次jiffies变化系统按照上面的规则调整一次五个数组,那么当系统的定时器足够多的时候,系统就需要花费很多时间来维护这些链表。这点让悟空很不明白,悟空觉得红黑树处理的效果可能会更好。

  但是Linux内核为什么不用红黑树来管理定时器呢?悟空最后还是决定夜访达人去请教。

  悟空:老师,如果每经过一个jiffies的时间,系统就要调整一次管理定时器的五个数组,那么系统不是要花费很多时间来处理定时器。

  达人:其实Linux内核之所以要将定时器分为五个数组管理是由原因的,这五个数组就像五个轮子,前面的轮子转一圈,后面的轮子只需要转一个齿轮。

  悟空听了之后感觉更加困惑了,怎么这个还和轮子有关了。

  悟空:老师,你能不能具体一点?

  达人:哦,其实很简单,定时器并不是每增加一个jiffies系统就调整一次struct tvec_base中5个链表,而是当struct tvec_base中的timer_jiffies的低八位全为零时,调整一次tv2中的链表,将tv2中的满足条件的迁移到tv1中。而当timer_jiffies的8-13位为0时,调整一次tv3的链表,将符合条件的tv3的链表中的数据迁移到tv2中。

  悟空:哦,原来是这样啊,那么这个表示不是很复杂吗,为什么不用红黑树呢?

  达人:其实这样设计用到了一个很重要的思想,就是用空间换取时间的思想。对Linux系统来说时间是一种很宝贵的资源,通过这种设计,虽然占用了更多的内存,但是却很好的将算法复杂度降低了。而采用红黑树却会加大调整时间,导致系统要花费很多时间在红黑树的调整上。其实低分辨率的定时器的时间精度比较低,一般只有毫秒级别的,而且有些时候即使低分辨率的定时器到期了,系统也不一定会执行,系统只能保证延时不小于定时器设定的时间。而Linux系统中还有一种定时器叫高精度定时器,这种定时器可以达到ns级别。

  悟空:唉,学了半天原来白学了。

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

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

一直以来“2号童鞋”都感觉自己比较笨,之所以感觉自己比较笨是因为这个世界有很多问题无法想明白,比如上节课老师为什么没有讲软中断的注销函数。为了想明白这个问题,“2号童鞋”失眠了好几晚,可是失眠了好几晚...

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

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

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

今天悟空要讲的是中断的约束,这让悟空想起了师傅的紧箍咒,所以悟空一看到约束两字就有点不爽,总觉得这两个字扎眼。   悟空:中断是内核中执行最敏感的任务,因此需要满足一些约束。   A童鞋:那么需要...

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

由于唐僧请来了这么多木人上课,一下子增加了不少的人气,所以最近唐僧的这里迎来了很多学生报名试听,这着实让唐僧高兴了好一阵,唐僧心想终于不用对着木人上课了。所以唐僧打算好好上一下课,争取留住这些学生。为...

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

悟空觉得课堂估计是去不了,所以自己打算在家里继续自学,悟空知道达人老师接下来需要讲的是低分辨率的定时器。所谓定时器就是设定一个未来的时间,让系统在这个未来的时间触发一个特定的事件,执行一些预先设定的程...

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

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

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

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

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

最近八戒比较开心,自从上次他的18层梦的事情被媒体大肆报道之后,八戒就一下子成了网络红人。也正因为八戒的网上人气的不断攀升,所以越来越多的学生喜欢八戒的课了。这着实让八戒有点受宠若惊,所以八戒决定邀请...

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

由于唐僧上的课很多笑声,加上唐僧比较帅,所以“西游嵌入式培训班”一下子火了,很多人纷纷跑来报名,其中美女最多。这着实让唐僧高兴了很久,但是高兴之后唐僧也纠结,这么多的学生,需要多少老师啊?唐僧要求他的...

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

下课之后达人感到比较开心,因为今天悟空在课堂上提了不少的问题,达人心想今晚终于可以睡一个好觉了,所以达人今晚回家之后就早早的洗澡上床了。但是正当达人快要睡着的时候突然听到了外面有砰砰的敲门声,达人起来...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:悟空学Linux专栏----第19篇
举报原因:
原因补充:

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