前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CPU中的上下文(中)

CPU中的上下文(中)

原创
作者头像
陈不成i
修改2021-05-24 11:02:11
7450
修改2021-05-24 11:02:11
举报
文章被收录于专栏:ops技术分享ops技术分享

三.线程切换

进程是拥有资源的集合体,而线程是执行操作的单位。关系很像公司中部门和人员的关系。每个部分都有不同的资源,而部门中的人员则使用资源完成任务。

当只有一个线程的时候,线程等于进程 当有多个线程的时候,线程共享虚拟内存,全局变量等资源,这些资源上写文切换时不需要更改。 线程有自己的单独数据,栈和寄存器重存储的内容,切换需要保存。

切换理由: 前后2个线程属于不同进程,等同于进程的切换 前后2个线程属于同进程,切换只需要保存私有数据

相比进程的切换,将要节省更多资源

四.中断切换

当有硬件事件,例如在键盘打字,就会中断当前进程,响应硬件设备。中断切换并不涉及进程用户态,不需要保存和恢复虚拟内存,全局变量等用户态资源。只保存内核态,中断服务程序执行所必须的状态,包括cpu寄存器,内核堆栈,硬件终端参数等。

同cpu中,中断优先级最高,所以中断切换和进程之前切换并不会同时发生。

五.中断检测和查看

1.检查上下文切换情况 vmstat

cs(context switch)是每秒上下文切换的次数 in(interrupt)则是每秒中断的次数 r(Running or Runnable)是就绪队列的长度,也就是正在运行和等待 CPU 的进程数 b(Blocked)则是处于不可中断睡眠状态的进程数

2.每个进程的上下文切换情况 pidstat -w 5

cswch(voluntary context switches)每秒自愿上下文切换的次数 是指进程无法获取所需资源,导致的上下文切换,例如I/O、内存等系统资源不足时

nvcswch(non voluntary context switches)每秒非自愿上下文切换的次数 指进程由于时间片已到,有优先级更高的进程启动等原因,被系统强制调度从而切换。当大量进程抢夺cpu时,就容易发生此类切换。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 三.线程切换
  • 四.中断切换
  • 五.中断检测和查看
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档