深入解析系统中的定时测量与相关系统调用
1. 动态定时器算法与性能
动态定时器在系统中有着重要的作用。在每次调用动态定时器函数之前会释放相关资源,直至其终止,这样能确保动态定时器的数据结构不会被交错的内核控制路径破坏。
这个较为复杂的算法能保证出色的性能。假设 TIMER_SOFTIRQ 软中断在对应的定时器中断发生后立即执行,在 256 次定时器中断中,有 255 次(即 99.6%的情况), run_timer_softirq() 函数只是运行已过期定时器的函数(如果有的话)。为了定期补充 base->tv1.vec ,每 64 次中只需 63 次将 base->tv2 的一个列表划分为 base->tv1 的 256 个列表。 base->tv2.vec 数组在 0.006%的情况下需要补充(即每 16.4 秒一次), base->tv3.vec 每 17 分钟 28 秒补充一次, base->tv4.vec 每 18 小时 38 分钟补充一次,而 base->tv5.vec 则不需要补充。
2. 动态定时器的应用: nanosleep() 系统调用
nanosleep() 系统调用的服务例程 sys_nanosleep() 接收一个指向 timespec
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



