1. 进程上下文:
用户进行陷入内核运行时,需要
传递的参数
和需要
保存的当前环境
(
变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等
)
;
2. 中断上下文:触发硬件中断时,内核调用中断处理程序,进入内核空间时需要传递的参数和需要保存的当前环境(主要是当前被打断的进程的环境);
3. 进程上下文分为3个部分:
1) 用户级上下文: 正文、数据、用户堆栈以及共享存储区;
2) 寄存器上下文: 通用寄存器、程序寄存器(IP)、处理器状态寄存器(EFLAGS)、栈指针(ESP);3) 系统级上下文: 进程控制块task_struct、内存管理信息(mm_struct, vm_area_struct, pgd, pte)、内核栈。
当发生进程调度时,进行进程切换就是上下文切换(context switch).操作系统必须对上面提到的全部信息进行切换,新调度的进程才能运行。