【发布时间】:2020-04-17 21:10:34
【问题描述】:
我对任务的 TCB 和 RTOS 中的任务堆栈之间的区别有点误解,TCB 不是已经携带了所有需要的有关上下文切换的信息,例如寄存器值等吗?
谢谢。
【问题讨论】:
-
堆栈由任务本身使用(例如调用函数时)。操作系统使用 TCB 来管理任务。
-
请参阅您的处理器用户手册以了解如何确认中断。可能是硬件在中断线程的堆栈上保存了一些上下文,例如标志,指令指针。您的操作系统手册将解释其他上下文数据,例如堆栈指针,保存在 TCB 中。
-
简而言之,TCB 保存着任务的各种属性,栈顶保存着各种寄存器。