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

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

进程

进程是操作系统的问题大发明之一,对应用程序屏蔽了CPU调度、内存管理等硬件细节,而抽象出一个进程的概念,让应用程序专心于实现自己的业务逻辑即可,而且在有限的CPU上可以并发执行许多个任务。但是它为用户带来方便的同事,也引入了一些额外的开销-进程上下文切换的开销。

上下文切换

在两个进程切换的过程中,先保存A进程的上下文,以便于等A恢复运行的时候,能够直到A进程的下一条指令是啥。然后将要运行的B进程的上下文恢复到寄存器中。这个过程叫做上下文切换。上下文切换开销在进程不多、切换不频繁的应用场景下问题不大。但是现在Linux操作系统被用到了高并发的网络程序后端服务器。在单机支持成千上万个用户请求的时候,这个开销就得拿出来说道说道了。因为用户进程在请求Redis、Mysql数据等网络IO阻塞掉的时候,或者在进程时间片到了,都会引发上下文切换。

就绪态-运行态-阻塞态

一个简单的进程上下文切换开销测试实验

大佬做了个实验测试到底一次上下文切换需要多长的CPU时间!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值