如果我有两个任务TASK_A和TASK_B。
堆栈大小TASK_A = 300
TASK_B的堆栈大小= 600
TASK_A和TASK_B的上下文切换时间是否与其各自的堆栈大小有任何依赖关系。
答案 0 :(得分:5)
不,任务堆栈大小不会影响上下文切换时间。每个任务在不同的内存范围内都有自己的堆栈。在上下文切换期间,处理器的堆栈指针寄存器被更改为指向不同任务的堆栈。在上下文切换期间不会复制或移动堆栈,因此堆栈大小不会影响上下文切换时间。
答案 1 :(得分:1)
上下文切换是系统在多任务环境中从一个任务切换到另一个任务的过程。这是一个通用术语。可以有很多类型的开关,如注册,线程,堆栈等。如果你特别指的是堆栈框架开关,然后它涉及推送或 pop 操作和一些寄存器恢复操作,这些操作是恒定时间操作,至少在理论上是如此。它并不取决于堆栈本身的大小。