什么是CPU上下文
Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。同时运行是这些任务系统在很短的时间内,将 CPU 轮流分配给它们,造成多任务同时运行的错觉。而每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好 CPU 寄存器和程序计数器(Program Counter,PC)。
- CPU 寄存器,是 CPU 内置的容量小、但速度极快的内存。
- 程序计数器,则是用来存储 CPU 正在执行的指令位置、或者即将执行的下一条指令位置。
它们都是 CPU 在运行任何任务前,必须的依赖环境,被叫做 CPU 上下文。
CPU上下文切换
CPU 上下文切换,就是先把上一个任务的 CPU 上下文(也就是 CPU 寄存器和程序计数器)保存起来,然后加载新任务的上下文到这些寄存器和程序计数器,最后再跳转到程序计数器所指的新位置,运行新任务。
而保存下来的上下文,会存储在系统内核中,并在任务重新调度执行时再次加载进来。这样就能保证任务原来的状态不受影响,让任务看起来还是连续运行。