上下文切換就是CPU在切換時,恢復之前的狀態。
以進程的上下文切換為例
一個進程的上下文可以分為三個部分:用戶級上下文、寄存器上下文以及系統級上下文。
- 用戶級上下文: 正文、數據、用戶堆棧以及共享存儲區;
- 寄存器上下文: 通用寄存器、程序寄存器(IP)、處理器狀態寄存器(EFLAGS)、棧指針(ESP);
- 系統級上下文: 進程控制塊task_struct、內存管理信息(mm_struct、vm_area_struct、pgd、pte)、內核棧。
上下文切換就是CPU在切換時,恢復之前的狀態。
一個進程的上下文可以分為三個部分:用戶級上下文、寄存器上下文以及系統級上下文。