- 论坛徽章:
- 0
|
pdf文件下载地址:
http://linux.chinaunix.net/bbs/attachment.php?aid=230790
内核的时间系统,还是比较有意思的.上次写过cfs后,便看了hrtimer部分,一直没抽出时间来整理,现在还有一些不太明白的地方,我准备开这个帖子,和大家多聊聊,聊完了,我再做个总结...毕竟,一个人的思维局限性很大,呵呵
我的理解肯定有许多错误的地方,欢迎大家指正,交流....
今晚只简单说说,我会在后面详细总结出内核时间系统的建立和运行机制,并将学习过程中收集的资料,与大家分享.
1) 采用hrtimer resolution的kernel,在硬件支持的情况下,可以提供精度更高的定时器
2) 没有那么高精度的硬件kernel怎么办呢? hrtimer 系统会建立一个hrtimer,模拟之前的tick机制..说白了,就是往硬件的timer寄存器写下一个tick的值,模拟出tick中断来.
1)的精度,就是硬件的时钟精度,,软件支持最高是1ns,大约1Ghz就行了...如果比1g还高,我的理解是kernel目前不支持.
也就是说,如果你的hardware support 1ghz,你可以设定一个1ns的定时器....不能再低了.
2)的精度就不一样了,它是hz.在每个hz的处理函数里,会处理那些过期的hrtimer.
1)的处理函数是hrtimer_interrupt(),
我的kernel打开了CONFIG_NOHZ,这样2)的处理函数是tick_nohz_handler().
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/110888/showart_2159412.html |
|