-
内核级线程相较于用户级线程的区别
- 内核管理TCB,内核负责切换线程
- 一个线程不止需要一个栈,而是需要用户栈和内核栈(一套栈),TCB关联内核栈
- 当内核级线程切换时,用户栈和内核栈会同时切换
-
内核栈与用户栈
- 原先线程在用户栈运行,在发生中断(INT)后就会切换到内核栈
- 切换到内核栈时会将源SS(栈段寄存器)和源SP(栈指针寄存器)压栈,也就是指示出源用户栈的位置,以便还原;还会在内核栈将源PC(程序计数器)和源CS(代码段寄存器)压栈,指示出被中断程序的执行位置和返回地址
- 在内核栈执行完成后返回(IRET),就会回到用户栈
操作系统 - Operating System
/
Chapter II 虚拟化
/
Section 1 CPU虚拟化
/
1-EX 额外:线程