Linux 操作系统如何使中断的进程始终在指定的CPU上运行?
我知道中断可以随时出现,并破坏当前进程上下文的执行。但我只是想知道当中断句柄完成时,操作系统(如Linux 操作系统如何使中断的进程始终在指定的CPU上运行?,linux,linux-kernel,operating-system,interrupt,interrupt-handling,Linux,Linux Kernel,Operating System,Interrupt,Interrupt Handling,我知道中断可以随时出现,并破坏当前进程上下文的执行。但我只是想知道当中断句柄完成时,操作系统(如Linux)如何保持当前中断进程仍在本地CPU上运行,而不会被调度到其他CPU?中断是由执行进程处理的。如果Fred的进程正在运行,而CPU因Bill的进程读取此磁盘而中断,Fred的进程将处理Bill的中断。中断处理程序完成后,它会执行一条中断返回指令(确切名称因系统而异),Fred的进程会在中断时选择它所在的位置 运行进程在整个中断期间保持运行。中断的是进程的指令流;并不是说这个过程被另一个过程打
Linux
)如何保持当前中断进程仍在本地CPU上运行,而不会被调度到其他CPU?中断是由执行进程处理的。如果Fred的进程正在运行,而CPU因Bill的进程读取此磁盘而中断,Fred的进程将处理Bill的中断。中断处理程序完成后,它会执行一条中断返回指令(确切名称因系统而异),Fred的进程会在中断时选择它所在的位置
运行进程在整个中断期间保持运行。中断的是进程的指令流;并不是说这个过程被另一个过程打断了
但是,中断处理程序可能会导致上下文切换到另一个进程。在打开CONFIG_PREEMPT的linux内核中,在中断处理程序完成后,有两种选择。 一个是由用户3344003编写的在中断持续运行之前运行的进程。 另一个是调度程序可以选择另一个进程而不是该进程。(\t如果需要重新调度)
如果禁用了CONFIG_PREEMPT,则在中断之前运行的进程将始终保持运行。您可能需要在后台查看启动程序。@merlin2011:谢谢您的提示!但我不认为这些答案能回答我的问题。你是绝对正确的,但是有适当的背景会帮助你理解任何有人写的解决方案。如果它回答了这个问题,我会投票将你的问题标记为重复请注意,中断不一定会导致上下文切换。中断本身并不会导致一个错误;由处理程序决定是否运行调度程序。“
运行的进程在整个中断过程中保持运行。中断的是进程的指令流,而不是进程被另一个指令流中断。
”。你能详细解释一下吗?我不能很好地理解它。谢谢!