在我的教科书中,context-switch并不仅仅意味着模式切换,因为有些线程只能在内核模式下运行。
只有当cpu在内核模式下运行时才会发生上下文切换吗?
如果没有,为什么?对于类Unix操作系统是否属实?
最后,所有中断只能由始终在内核模式下执行的中断处理程序处理吗?
答案 0 :(得分:1)
CPU在用户模式下执行时,可能会发生中断,陷阱和异常。它们通常会导致CPU切换到内核模式。这可能会部分或完全切换上下文。例如,x86 CPU可能具有专用于处理中断和异常的任务(是的,CPU内部的任务),因此如果正在使用这些任务,则可以在这些任务之间进行上下文切换。
通常,中断处理程序在内核模式下运行。然而,CPU和/或OS可以部分地或完全地以用户模式处理它们。这取决于CPU和操作系统。