0
点赞
收藏
分享

微信扫一扫

基础篇03:CPU上下文切换时什么意思--总结

      多个进程竞争CPU的时候,并没有真正运行,为什么会导致负载升高呢?CPU上下文切换就是罪魁祸首。

      Linux是一个多任务操作系统,支持远大于CPU数量的任务同时运行。当然,这些任务实际上并不真的在同时运行,而是在很短的时间内,将CPU轮流分配给他们,造成多任务同时运行的错觉。

      CPU寄存器和程序计数器,就是用来处理这些事情的。CPU寄存器,是CPU内置的容量小、但速度极快的内存。程序计数器,则是用来存储CPU正在执行的指令位置、或者即将执行的下一条指令位置。它们都是运行任何任务前,必须依赖的环境,因此也被叫做CPU上下文。

     CPU上下文切换就是先把一个任务的CPU上下文(也就是CPU寄存器和程序计数器)保存起来,然后加载新任务的上下文到这些寄存器和程序计数器,最后再跳转到程序计数器所指的新位置,运行新任务。

    根据任务不同,CPU的上下文切换可以分为进程上下文切换、线程上下文切换和中断上下文切换。

小结

    不管哪种场景导致的上下文切换,你都应该知道:

     1.CPU上下文切换,是保证Linux系统正常工作的核心功能之一,一般情况下不需要我们特别关注。

     2.过多的上下文切换,会把CPU时间消耗在寄存器、程序计数器以及虚拟内存等数据的保存和恢复上,从而缩短真正运行的时间,导致系统的整体性能大幅下降。






    

举报

相关推荐

0 条评论