我读过linux内核是多线程的,每个内核中可以有多个线程同时运行。在单个操作系统管理所有处理器/内核的 SMP(对称多处理)环境中,多线程是如何实现的?
是产生了内核线程,并且每个线程都专用于管理一个内核。如果是这样,这些内核线程是什么时候创建的?是在引导完成之后以及在引导处理器启用应用程序处理器之后立即在 kern_init() 引导期间。
那么每个内核是否都有自己的调度程序(由内核的内核线程实现)来管理所有内核线程共享的公共池中的任务?
当驻留在不同内核上的内核线程需要提示另一个内核线程可能感兴趣的某些事件时,它们之间的(直接)消息传递是如何发生的?
我还认为,如果一个特定的内核调度程序具有一个内核调度程序,在每个系统定时器中断上获取一个大内核锁并决定/调度在每个内核上运行什么?
因此,我将不胜感激实现细节的任何清晰度。在此先感谢您的帮助。