Linux “与”之间有什么区别吗;“内核抢占”;及;中断;?

Linux “与”之间有什么区别吗;“内核抢占”;及;中断;?,linux,linux-kernel,interrupt,preemption,Linux,Linux Kernel,Interrupt,Preemption,我刚刚读了一篇文章,上面说: 控制中断系统的原因通常归结为需要提供同步。通过禁用中断,可以保证中断处理程序不会抢占当前代码。此外,禁用中断也会禁用内核抢占。但是,无论是禁用中断传递还是禁用内核抢占都不能提供任何保护,防止来自另一个处理器的并发访问 所以我想知道中断和内核抢占之间的区别 或者我们可以说禁用内核抢占也会禁用中断吗?它们是不同的。中断甚至可能发生在内核的上下文之外,因此更改内核处理抢占的方式不会影响中断。在本文的上下文中,内核抢占似乎取决于中断的工作(可能是因为它是使用某种计时器实现的

我刚刚读了一篇文章,上面说:

控制中断系统的原因通常归结为需要提供同步。通过禁用中断,可以保证中断处理程序不会抢占当前代码。此外,禁用中断也会禁用内核抢占。但是,无论是禁用中断传递还是禁用内核抢占都不能提供任何保护,防止来自另一个处理器的并发访问

所以我想知道中断和内核抢占之间的区别


或者我们可以说禁用内核抢占也会禁用中断吗?

它们是不同的。中断甚至可能发生在内核的上下文之外,因此更改内核处理抢占的方式不会影响中断。在本文的上下文中,内核抢占似乎取决于中断的工作(可能是因为它是使用某种计时器实现的)。

当进程被中断时,内核运行一些代码,这些代码可能与进程的工作无关。
完成此操作后,可能会发生两件事:
1.相同的进程将再次获得CPU。
2.另一个进程将获得CPU。当前进程被抢占。


因此,抢占只能在中断后发生,但中断并不总是导致抢占。

嗨,卡尔,谢谢你的回答。你能给我举一个在Linux中中断发生在内核上下文之外的例子吗?这相当依赖于系统。我认为@ugoren的回答很好地解释了这个概念。