内核不同的子系统如何共享CPU时间



用户空间中的进程由内核调度器调度以获得处理器时间,但不同的内核任务如何获得CPU时间?我的意思是,当用户空间中没有进程要求CPU时间(所以CPU是通过执行NOP指令来请求的),但一些内核子系统需要定期执行一些任务时,定时器和其他硬件和软件中断是在内核空间中获得CPU时间的常见方法吗?。

它几乎是同一个调度器。我能想到的唯一区别是内核代码对执行流有更多的控制。例如,存在对调度器schedule()的直接调用。

在内核中还有3个执行上下文——硬件中断、softirq/bh和进程。在硬(可能还有软)中断上下文中,您无法睡眠,因此在执行该上下文中的代码时不会进行调度。

最新更新