Linux的时钟处理机制
3.3 时钟的软中断处理 软件时钟的处理是在时钟的软中断中进行的。 3.3.1 软中断初始化 软中断的一个重要的处理时机是在每个硬件中断处理完成后(参见 irq_exit 函数),且由2.4节的内容可知:在硬件时钟中断处理中,会唤醒时钟的软中断 ,所以每次硬件时钟中断处理函数执行完成后都要进行时钟的软中断处理。和时 钟相关的软中断是 TIMER_SOFTIRQ ,其处理函数为 run_timer_softirq ,该函 数用来处理所有的软件时钟。这部分初始化代码在函数 init_timers 中进行, 如清单3-7 清单3-7 init_timers 函数
3.3.2 处理过程 函数 run_timer_softirq 所作的工作就是找出所有到期的软件时钟,然后依 次执行其处理函数。其代码如清单3-8 清单3-8 run_timer_softirq函数
函数首先获得到本地 CPU 的 base 。然后检测如果 jiffies 大于等于 timer_jiffies ,说明可能已经有软件时钟到期了,此 时就要进行软件时钟的处理,调用函数 __run_timers 进行处 理。如果 jiffies 小于 timer_jiffies ,表明没有软件时钟到期, 则不用对软件时钟进行处理。函数返回。 (编辑:应用网_阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |