在课堂上,我们学习了调度中使用的不同算法,例如抢占。有人问切换上下文的开销是否是一个问题,教授说它总是可以忽略不计。这是真的?根据维基百科,当上下文切换发生时,“进程的状态包括进程可能正在使用的所有寄存器,......加上可能需要的任何其他操作系统特定数据”所以基本上所有内容都需要保存到内存中我不会认为是微不足道的吧?
是否有任何算法/实现会考虑上下文切换所需的时间?例如,一个 10 毫秒的任务正在运行,但一个需要 8 毫秒的新任务进入队列,调度程序会说“忘记它”,因为额外的上下文切换回 10 毫秒不值得吗?