进程上下文实际上是进程执行活动全过程的静态描述。我们把已执行过的进程指令和数据在相关寄存器与堆栈中的内容称为上文,把正在执行的指令和数据在寄存器和堆栈中的内容称为正文,把待执行的指令和数据在寄存器与堆栈中的内容称为下文。具体的说,进程上下文包括计算机系统中与执行该进程有关的各种寄存器(例如通用寄存器,程序计数器PC,程序状态字寄存器PS等)的值,程序段在经过编译过后形成的机器指令代码集,数据集及各种堆栈值PCB结构。这里,有关寄存器和栈区的内容是重要的,例如没有程序计数器PC和程序 状态寄存器PS,CPU将无法知道下一条待执行指令的地址和控制有关操作。
进程上下文保存的是进程的状态,也就是进程用到的寄存器、内存中的数据,包括通用目的寄存器、浮点寄存器、程序计数器、用户栈、状态寄存器、内核栈和各种内核数据结构,比如页表、进程表、文件表。上下文切换时候需要保存进程上下文,继续执行被抢占的进程时,恢复的内容就是上下文。---- Computer System A Program Perspective.
参考:
https://www.nowcoder.com/questionTerminal/ed92ea7557a14bf3a0d12a5db048d979
https://www.nowcoder.com/questionTerminal/c93314d11c2a4a7388e008c44279f7de