线程上下文切换和进程上下文切换的区别
2016-07-23 12:17
204 查看
线程上下文切换和进程上下问切换一个最主要的区别是线程的切换虚拟内存空间依然是相同的,但是进程切换是不同的。这两种上下文切换的处理都是通过操作系统内核来完成的。内核的这种切换过程伴随的最显著的性能损耗是将寄存器中的内容切换出。
另外一个隐藏的损耗是上下文的切换会扰乱处理器的缓存机制。简单的说,一旦去切换上下文,处理器中所有已经缓存的内存地址一瞬间都作废了。还有一个显著的区别是当你改变虚拟内存空间的时候,处理的页表缓冲(processor’s Translation Lookaside Buffer (TLB))或者相当的神马东西会被全部刷新,这将导致内存的访问在一段时间内相当的低效。但是在线程的切换中,不会出现这个问题。
另外一个隐藏的损耗是上下文的切换会扰乱处理器的缓存机制。简单的说,一旦去切换上下文,处理器中所有已经缓存的内存地址一瞬间都作废了。还有一个显著的区别是当你改变虚拟内存空间的时候,处理的页表缓冲(processor’s Translation Lookaside Buffer (TLB))或者相当的神马东西会被全部刷新,这将导致内存的访问在一段时间内相当的低效。但是在线程的切换中,不会出现这个问题。
相关文章推荐
- 使用PUTTY连接虚拟机Ubuntu16.04
- POJ:3641 Pseudoprime numbers(快速幂)
- python数据持久存储:pickle模块的基本使用
- J2EE基础之Web服务简介
- Linux关机命令
- CSS样式设置小技巧
- codeforces 701A A. Cards(水题)
- CodeForces 699B——One Bomb(预处理,暴力枚举)
- opencv提取直线、轮廓及ROI的描述方法
- 开机导入Sim卡联系人流程分析
- 人见人爱A^B<>hdoj2035
- 违反完整约束条件 (XXX) - 未找到父项关键字
- [opencv] 图像几何变换:旋转,缩放,斜切
- Linux的watch命令 — 实时监测命令的运行结果
- HDU_多重背包系列
- python opencv(7)图像平铺
- 通知中心 NSNotificationCenter
- 在Windows上安装Django框架
- java reflect:反射机制
- 构造函数与析构函数