上下文切换
简而言之,就是将上一个任务的寄存器和程序计数器的资源保存起来,然后加载下一个任务的寄存器和程序计数器等,最后跳转到新任务的地址运行。
CPU的上下文切换情况可分为:
- 系统调用上下文切换
- 进程上下文切换
- 线程上下文切换
- 中断上下文切换
1 系统调用上下文切换
进程可通过系统调用从用户态进入到内核态,这个过程存在用户空间和内核空间之间的上下文切换。并且在系统调用结束后需要切换回用户态,因此这样就会存在两次上下文切换。这个过程并没有发生进程的切换,也被称为“特权模式切换”。
2 进程上下文切换
进程的调度由内核完成,因此进程上下文切换只存在内核空间,需要切换的资源包括虚拟内存、栈、全局变量等用户空间的资源以