线程上下文切换详情

线程上下文切换详情

线程上下文切换与进程上下文切换类似,但由于线程是轻量级的进程,线程上下文切换主要涉及保存和恢复线程的执行状态,而无需切换进程的虚拟内存空间和其他与进程相关的资源。以下是线程上下文切换时需要保存和恢复的主要内容:

1 CPU 寄存器状态

与进程上下文切换一样,线程上下文切换中,最重要的是保存和恢复 CPU 的寄存器状态,具体包括:

这些寄存器状态会保存在 线程控制块(Thread Control Block,TCB) 中。

2 线程栈

每个线程都有独立的栈,用于存储函数调用的局部变量、返回地址等。在上下文切换时,操作系统会切换到新线程的栈指针,指向该线程的栈顶。

3 程序状态字(Program Status Word,PSW)

和进程一样,线程上下文切换时也需要保存程序状态字,记录线程的运行状态(如用户态或内核态)、中断状态等信息。

4 线程本地存储(Thread-Local Storage,TLS)

线程可能会使用线程本地存储来保存


本文总阅读量