我对 linux 调度程序和其他一些类似的内核系统调用有一个一般性的问题。
linux调度程序是否被认为是一个“进程”,并且每次调用调度程序都需要一个上下文切换,就像它只是另一个进程一样?
假设我们有一个时钟滴答中断当前正在运行的用户模式进程,我们现在必须调用调度程序。对调度程序本身的调用是否会引发上下文切换?调度程序是否有自己的一组寄存器和 U 区域以及在每次调用时必须恢复的诸如此类的东西?
并且上述问题适用于许多其他系统调用。内核进程在上下文切换方面是否像常规进程一样,唯一的区别是它们拥有更多的权限和对 cpu 的访问权限?
我问这个是因为上下文切换开销很昂贵。调用调度程序本身会引发上下文切换以恢复调度程序状态,然后调度程序调用另一个进程来运行并再次调用另一个上下文切换,这听起来很奇怪。