Chinaunix首页 | 论坛 | 博客
  • 博客访问: 47975
  • 博文数量: 17
  • 博客积分: 425
  • 博客等级: 下士
  • 技术积分: 152
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-04 23:37
文章分类

全部博文(17)

文章存档

2011年(17)

分类: LINUX

2011-05-09 19:41:02

读《linux内核设计与实现》10.7.3实现定时器时,有一句话:“为了提高搜索效率,内核将定时器按它们的超时时间划分为五组。当定时器接近时,定时器随组一起下移。” 不理解到底怎么分组的,后来在网上查了一下:
内核注册定时器最终都会通过调用internal_add_timer来实现.具体的工作方式是这样的: 

1 如果定时器在接下来的0~255个jiffies中到期,则将定时器添加到tv1. 

2 如果定时器是在接下来的256*64个jiffies中到期,则将定时器添加到tv2. 

3 如果定时器是在接下来的256*64*64个jiffies中到期,则将定时器添加到tv3. 

4 如果定时器是在接下来的256*64*64*64个jiffies中到期,则将定时器添加到tv4. 

5 如果更大的超时,则利用0xffffffff来计算hash,然后插入到tv5(这个只会出现在64的系统).

详细内容可以参考地址:
阅读(726) | 评论(0) | 转发(0) |
0

上一篇:很难过

下一篇:怎么啦

给主人留下些什么吧!~~