我正在学习嵌入式Linux。我似乎无法为下面的问题找到正确的答案。
我的理解是,当用户空间的应用程序在执行时,如果我们要进行 IO 等,会进行系统调用,这会导致 SW 中断,一般会导致 MCU 从非特权模式切换到特权模式和内核将代表应用程序执行 IO。
发生硬件中断时的相似性,我猜这将导致模式再次切换并在内核中执行中断处理程序。
我不清楚的是,这些是内核代码控制 CPU 的唯一时间吗?
例如,只有一个内核,如果用户应用程序代码正在运行,内核不应该不时控制 CPU 来检查事情,不管是否发生了中断。也许有一个周期性的定时器中断允许这样做?
此外,如果我们有多个内核,内核是否可以一直在一个内核上运行而用户应用程序在另一个内核上运行?