图文对比


进程上下文切换

进程上下文包含了进程执行所需要的所有信息。

1.用户地址空间:包括程序代码,数据,用户堆栈等;

2.控制信息:进程描述符,内核栈等;

3.硬件上下文:进程恢复前,必须装入寄存器的数据统称为硬件上下文。

进程切换分为三步骤

1.切换页目录以使用新的地址空间
2.切换内核栈
3.切换硬件上下文
4、刷新TLB
5、系统调度器的代码执行

线程上下文切换

对于linux来说,线程和进程的最大区别就在于地址空间。

对于线程切换,第1步是不需要做的,第2和3步是进程和线程切换都要做的。所以明显是进程切换代价大

1.线程上下文切换和进程上下文切换一个最主要的区别是线程的切换虚拟内存空间依然是相同的,
但是进程切换是不同的。这两种上下文切换的处理都是通过操作系统内核来完成的。内核的这种切换过程伴随的最显著的性能损耗是将寄存器中的内容切换出。

2.另外一个隐藏的损耗是上下文的切换会扰乱处理器的缓存机制。 简单的说,一旦去切换上下文,处理器中所有已经缓存的内存地址一瞬间都作废了。还有一个显著的区别是当你改变虚拟内存空间的时候,处理的页表缓冲(processor’s Translation Lookaside Buffer (TLB))或者相当的神马东西会被全部刷新,这将导致内存的访问在一段时间内相当的低效。但是在线程的切换中,不会出现这个问题。

进程和线程上下文切换相关推荐

  1. 进程和线程上下文切换_编码人员:上下文切换对于计算机和关系而言都很难

    进程和线程上下文切换 Clive Thompson is a longtime contributing writer for the New York Times Magazine and a co ...

  2. 进程、线程和上下文切换

    进程是什么? 狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed). 广义定义:进程是一个具有一定独 ...

  3. cpu线程_进程/线程上下文切换会用掉你多少CPU?

    进程是操作系统的伟大发明之一,对应用程序屏蔽了CPU调度.内存管理等硬件细节,而抽象出一个进程的概念,让应用程序专心于实现自己的业务逻辑既可,而且在有限的CPU上可以"同时"进行许 ...

  4. JUC多线程:系统调用、进程、线程的上下文切换

    一.什么是上下文切换: 1.内核空间的用户空间: 讲上下文切换前我们先了解下什么是内核空间和用户空间,程序运行在内核空间的状态称为内核态,运行在用户空间的状态称为用户态,用户态和内核态是操作系统的两种 ...

  5. mysql 上下文切换高_进程/线程上下文切换会用掉你多少CPU?

    进程是操作系统的伟大发明之一,对应用程序屏蔽了CPU调度.内存管理等硬件细节,而抽象出一个进程的概念,让应用程序专心于实现自己的业务逻辑既可,而且在有限的CPU上可以"同时"进行许 ...

  6. 理解进程、线程以及上下文切换

    目录 1.线程和进程 2.进程间的通信方式 3.线程同步和互斥 4.上下文切换 5.什么是用户模式和内核模式? 1.线程和进程 (1)什么是进程? 程序由指令和数据组成,但这些指令要运行,数据要读写, ...

  7. Java多线程复习:1(进程和线程、并发和并行)

    进程和线程 进程 我们电脑中每一个运行着的程序都是一个进程,程序一旦运行就是进程. 进程可以视为程序的一个实例,大部分程序可以同时运行多个实例进程(如:浏览器.记事本.画图等),也有的程序只能启动一个 ...

  8. python 多线程和协程结合_一文讲透 “进程、线程、协程”

    本文从操作系统原理出发结合代码实践讲解了以下内容: 什么是进程,线程和协程? 它们之间的关系是什么? 为什么说Python中的多线程是伪多线程? 不同的应用场景该如何选择技术方案? ... 什么是进程 ...

  9. 进程、线程、协程、通信方式

    文章目录 进程 线程 协程 进程.线程.协程的区别 概念 进程.线程共同点 进程.线程不同点 线程.协程比较 通信方式之间的差异 进程通信 管道(pipe) 有名管道 (namedpipe) 信号量( ...

最新文章

  1. HDU-2102 A计划 dfs
  2. 腾讯AI Lab正式开源业内最大规模多标签图像数据集
  3. linux windows 域,linux加入windows域之完美解决方案
  4. java网络图片与二进制字符串相互转换
  5. java md5 16位解密_Java实现MD5(32/16位)大小写加密
  6. mysql with
  7. 【FFMPEG系列】之工具调试:gprof性能分析
  8. 模板题——数位DP、状态压缩、记忆化搜索
  9. ssh公钥的生成、查看以及config的配置
  10. 学习编程需不需要背代码。
  11. LQR控制算法及其仿真实现
  12. Android office教程,Excel办公软件Office教程app
  13. 免费PDF阅读器都是坑?这些开源神器我可是恨不得所有人都知道
  14. mysql 执行存储过程
  15. t检验怎么分析结果python_使用python 批量 配对t检验 医学 基础研究 数据分析
  16. php 图片 圆角,php使用gd库在图片中画圆角矩形
  17. Unity3D坦克大战(附代码和原理讲解)
  18. 互联网医院系统搭建,打造在线问诊系统新模式
  19. 推荐使用什么样的平台表单制作工具好?
  20. 树莓派科学小实验4B--07_继电器

热门文章

  1. XEN-libvirt札记
  2. EAUML日拱一卒 用例扩展关系
  3. 用新版的Yahoo宝贝鱼(Babel Fish)做自己的翻译器(防乱码)
  4. 数字冰雹警务情指一体合成作战指挥决策系统
  5. BZOJ 4180: 字符串计数 后缀自动机 + 矩阵乘法 + 二分(神题)
  6. 微信公众号开发 如何发布图文并茂的文章?
  7. 重庆python培训价格
  8. 这可能是未来第三大搜索引擎
  9. Mybatis再学习
  10. PyTorch 深度学习实践 第13讲