美文网首页
什么是cpu上下文?

什么是cpu上下文?

作者: 迷死她张 | 来源:发表于2019-07-28 22:20 被阅读0次

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

而在每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好 CPU 寄存器和程序计数器。

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

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

而这些保存下来的上下文,会存储在系统内核中,并在任务重新调度执行时再次加载进来。这样就能保证任务原来的状态不受影响,让任务看起来还是连续运行。但过多的上下文切换,会把 CPU 时间消耗在寄存器、内核栈以及虚拟内存等数据的保存和恢复上,从而缩短进程真正运行的时间,导致系统的整体性能大幅下降。

相关文章

  • 操作系统的理解

    什么是线程?什么是进程? 线程与进程都是CPU时间段的描述。 进程为CPU加载上下文+CPU执行上下文+CPU保存...

  • 计算机基础知识 | cpu 上下文切换

    上下文切换是什么 cpu上下文是指cpu在运行任何任务之前都要依赖的环境。cpu上下文包括两个部分,cpu寄存器和...

  • 什么是cpu上下文?

    Linux支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时...

  • TriCore处理器的上下文切换原理

    01.上下文切换介绍 我们通常说的上下文又叫CPU上下文,是CPU运行任何任务前,必须依赖的环境,包括CPU 寄存...

  • 进程vs线程

    from知乎: 进程就是包换上下文切换的程序执行时间总和 = CPU加载上下文+CPU执行+CPU保存上下文。 线...

  • 多线程上下文切换

    一、CPU时间片 CPU时间片即CPU分配给每个线程的执行时间段,称作它的时间片。 二、什么是上下文切换 CPU通...

  • CPU上下文切换

    上下文切换分类 多个进程在竞争CPU时也会导致负载升高,罪魁祸首就在于CPU的上下文切换。CPU上下文的定义:每个...

  • 监控CPU

    CPU 上下文切换 根据任务的不同,CPU 的上下文切换就可以分为几个不同的场景,也就是进程上下文切换、线程上下文...

  • CPU上下文切换

    什么是CPU上下文切换 问题:一台单核linux主机,进程竞争CPU,竞争时候并没有运行进程,为什么会导致平均负载...

  • 什么是CPU上下文切换?

    现在linux是大多基于抢占式,CPU给每个任务一定的服务时间,当时间片轮转的时候,需要把当前状态保存下来,同时加...

网友评论

      本文标题:什么是cpu上下文?

      本文链接:https://www.haomeiwen.com/subject/zzdmrctx.html