CPU上下文:
把前一个任务的CPU上下文(CPU寄存器和程序计数器)保存起来,加载新任务的CPU上下文,执行新任务。
任务:
1)进程;
2)线程;
3)硬件中断,中断处理程序的调用;
CPU特权模式
1)Ring0–内核空间;
2)Ring3–用户空间;
进程可以运行在用户空间和内核空间。通过系统调用实现进程用户态到内核态的切换。系统调用会发生CPU上下文切换,但是不涉及虚拟内存等进程用户态的资源,不会切换进程,也叫做特权模式切换。
进程上下文:
1)虚拟内存;
2)栈;
3)全局变量;
4)内核堆栈;
5)寄存器;
进程上下文切换:
1)时间片用完;
2)系统资源不足被挂起;
3)sleep主动挂起;
4)优先级进程抢占,当前进程被挂起;
5)硬件中断,当前进程被挂起;
线程上下文:
1)线程私有数据;
2)寄存器;
线程上下文切换:
1)同一进程的线程;
2)不同进程的线程;
中断上下文:
1)寄存器;
2)内核堆栈;
3)硬件中断参数;
中断上下文切换:
响应硬件中断,执行中断处理程序,和进程上下文切换不同,不需要保存和恢复原来进程的虚拟内存、全局变量等资源。