中断向量中是否有系统调用服务程序?
如何打断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] 举报,一经查实,本站将立刻删除。