上下文切换有哪些开销?
先自己想一想,再看参考要点
参考要点
- 保存当前线程的寄存器、程序计数器、栈指针,恢复另一个线程的值
- 切换到另一个进程还要切换页表,TLB 和 CPU 缓存中原来的映射和数据大多用不上、要重新加载(有 PCID 时 TLB 不必全部清空),这部分间接开销通常更大,工作集很小时两者几乎没有差别
- 实测一次切换约 1.1 微秒(其中还包含一次 write 和一次 read)
参考要点
学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。