免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 788 | 回复: 0
打印 上一主题 下一主题

[内核模块] 关于上下文切换 cs [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-04-20 09:58 |只看该作者 |倒序浏览
本帖最后由 javett 于 2016-04-20 14:02 编辑

   vmstat 的结果中有 cs这一项,这里面的上下文切换 是指的进程切换 还是 只有进程的上下文切换, 进程的上下文切换,不一定会有进程的切换,如,进程通过系统调用进入内核态,当前进程进入了内核态,会使用内核态栈,内核态栈会保持当前cpu的大多数寄存器的内容,,cpu会从用户态切换到内核态,,这些上下文其实已经发生了变化,但是进程还是当前这个进程,系统调用后,立马回到用户态,用保存在内核栈的值加载到寄存器,cpu有恢复到了用户态,进程重新使用用户态栈,但是如果系统没有进程schedule(),进程没有切换。这到底算不算上下文切换,会不会被纳入到 vmstat的cs的统计中去?
   看了很久的相关的文章, 答案 算,只要当前程序的运行环境发生了变化,都算上下文切换。例如进程进入内核态时栈发生了变化,而栈又是进程运行的环境。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP