微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

什么是Linux本地计时器中断?

所有的在标题。 任何链接到良好的文件是受欢迎的。

中断向量中是否有系统调用服务程序?

内核模式驱动程序和用户模式应用程序之间的双向通信?

如何打断fread电话?

MSI-X在WDF中断

中断处理(Linux / General)

本地定时器中断是在APIC上实现的一个定时器,它仅中断特定的cpu,而不是产生任何cpu可以处理的中断。 在Bovet&Cesati的“了解Linux内核”中对此进行了讨论。 片段:

最近80×86微处理器中的本地APIC(参见第4章中的“中断和例外”)提供了另一种时间测量设备:cpu本地计时器。

cpu本地定时器是一个类似于刚刚描述的可编程间隔定时器的设备,可以发出单次中断或周期性中断。 但是,有一些不同之处:

APIC的定时器计数器长32位,而PIT的定时器计数器长16位; 因此,本地定时器可以被编程为以非常低的频率发出中断(计数器存储中断发出之前必须经过的时钟的数量)。

本地APIC定时器仅向其处理器发送中断,而PIT产生全局中断,可由系统中的任何cpu处理。

APIC的定时器基于总线时钟信号(或旧APM中的APIC总线信号)。 它可以通过编程来减少定时器计数器每1,2,4,8,16,32,64或128个总线时钟信号。 相反,利用其自己的时钟信号的PIT可以以更灵活的方式编程。

比迈克尔·伯尔的技术答案要少一些:

有些事情需要每一瞬间完成,无所谓在哪个cpu上。

其他的东西需要在每个cpu上每一跳都完成。 例如,检查是否需要切换到另一个进程。

本地定时器中断存在第二种类型 – 每当它被执行时,我们检查它们并做所需要的。

在SMP系统上,apic timer用于调度程序/重新调度线程。

在UP系统中,定时器用于调度程序/重调度线程。

通常SMP系统不再使用PIT。

我觉得本地计时器用于处理IPI相关的功能在这个猜测中,我可能是错的,不需要看代码的配置和处理程序的内容。 但我觉得系统定时器和jiffies链接一个GP定时器,因此在SMP ARM中,例如,来自该定时器的中断通过GIC相关性注册一个单个内核关联。 本地计时器将更多的机智。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐