进程上下文
进程上下文是进程执行状态的完整快照,分为三大类:用户级上下文、寄存器上下文和系统级上下文。
用户级上下文:进程作为独立程序运行所依赖的数据和代码环境。包括代码段(.text)、数据段(.data/.bss)、用户堆栈(函数调用、局部变量)、共享内存段(进程间通信)。
寄存器上下文:最核心的执行现场信息。包括程序计数器(PC,指向下一条要执行的指令)、栈指针(SP,指向栈顶)、通用寄存器(中间计算结果)、状态寄存器(条件码,决定分支结果)、浮点/SIMD寄存器(浮点运算状态)。上下文切换时,这些寄存器全部保存到内存。
系统级上下文:内核为管理该进程维护的数据结构,对用户不可见。包含:
- PCB(进程控制块):PID、进程状态、调度信息、信号屏蔽字等。
- 内存管理上下文:页表(虚拟地址到物理地址的映射)、VMA链表(内存区域描述)。
- 打开文件表:文件描述符到内核文件对象的映射。
- 内核栈:进程在内核态执行时使用的栈。
上下文切换时需要完整保存和恢复这些信息,这是系统调用和进程切换的主要开销来源。
链接到
- 上一个知识点:8.7 进程概念
- 下一个知识点:8.9 fork创建进程