中断处理程序可以被抢占吗?

发布于 2024-11-06 13:03:30 字数 97 浏览 2 评论 0原文

我知道Linux有嵌套中断,其中一个中断可以“抢占”另一个中断,但是其他任务又如何呢?

我只是想了解linux如何处理中断。它们可以被其他用户任务/内核任务抢占吗?

I know that linux does nested interrupts where one interrupt can "preempt" another interrupt, but what about with other tasks.

I am just trying to understand how linux handles interrupts. Can they be preempted by some other user task/kernel task.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

皇甫轩 2024-11-13 13:03:30

阅读 为什么在中断上下文中执行的内核代码/线程无法休眠? 链接到 Robert Loves 文章,我读了这个:

一些中断处理程序(在
Linux 作为快速中断处理程序)运行
所有中断都在本地
处理器已禁用。这样做是为了
确保中断处理程序运行
不间断地,尽快
可能的。更何况,全部中断
处理程序以其当前运行
所有中断线均禁用
处理器。这确保了两个
相同的中断处理程序
中断线不运行
同时。它还可以防止设备
驱动程序编写者不必处理
递归中断,这使情况变得复杂
编程。

所以我知道在中断处理程序中所有 IRQ 都被禁用,因此它不能被中断!?

Reading Why kernel code/thread executing in interrupt context cannot sleep? which links to Robert Loves article, I read this :

some interrupt handlers (known in
Linux as fast interrupt handlers) run
with all interrupts on the local
processor disabled. This is done to
ensure that the interrupt handler runs
without interruption, as quickly as
possible. More so, all interrupt
handlers run with their current
interrupt line disabled on all
processors. This ensures that two
interrupt handlers for the same
interrupt line do not run
concurrently. It also prevents device
driver writers from having to handle
recursive interrupts, which complicate
programming.

So AFIK all IRQ's are disabled while within the interrupt handler, therefore it cannot be interrupted!?

盗心人 2024-11-13 13:03:30

简单回答:中断只能被更高优先级的中断打断。

因此,如果中断的优先级低于内核调度程序中断优先级或用户任务中断优先级,则中断可以被内核或用户任务中断。

请注意,“用户任务”是指用户定义的中断

Simple answer: An interrupt can only be interrupted by interrupts of higher priority.

Therefore an interrupt can be interrupted by the kernel or a user task if the interrupt's priority is lower than the kernel scheduler interrupt priority or user task interrupt priority.

Note that by "user task" I mean user-defined interrupt.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文