4

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

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

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

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

4

2 回答 2

14

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

所以抢占只会在中断之后发生,但中断并不总是会导致抢占。

于 2012-02-28T10:08:33.890 回答
2

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

于 2012-02-27T22:35:44.987 回答