美文网首页
上下文切换

上下文切换

作者: 冰泡泡薄荷味 | 来源:发表于2017-06-22 10:43 被阅读45次

支持多任务处理是CPU设计史上最大的跨越之一。在计算机中,多任务处理是指同时运行两个或多个程序。从使用者的角度来看,这看起来并不复杂或者难以实现,但是它确实是计算机设计史上一次大的飞跃。在多任务处理系统中,CPU需要处理所有程序的操作,当用户来回切换它们时,需要记录这些程序执行到哪里。上下文切换就是这样一个过程,他允许CPU记录并恢复各种正在运行程序的状态,使它能够完成切换操作。

在上下文切换过程中,CPU会停止处理当前运行的程序,并保存当前程序运行的具体位置以便之后继续运行。从这个角度来看,上下文切换有点像我们同时阅读几本书,在来回切换书本的同时我们需要记住每本书当前读到的页码。在程序中,上下文切换过程中的“页码”信息是保存在进程控制块(PCB)中的。PCB还经常被称作“切换桢”(switchframe)。“页码”信息会一直保存到CPU的内存中,直到他们被再次使用。

在三种情况下可能会发生上下文切换:中断处理,多任务处理,用户态切换。在中断处理中,其他程序”打断”了当前正在运行的程序。当CPU接收到中断请求时,会在正在运行的程序和发起中断请求的程序之间进行一次上下文切换。在多任务处理中,CPU会在不同程序之间来回切换,每个程序都有相应的处理时间片,CPU在两个时间片的间隔中进行上下文切换。对于一些操作系统,当进行用户态切换时也会进行一次上下文切换,虽然这不是必须的。

操作系统或者计算机硬件都支持上下文切换。一些现代操作系统通过系统本身来控制上下文切换,整个切换过程中并不依赖于硬件的支持,这样做可以让操作系统保存更多的上下文切换信息。

相关文章

  • CPU 上下文切换(上)

    根据任务的不同,CPU 的上下文切换就可以分为几个不同的场景 进程上下文切换 线程上下文切换 中断上下文切换 小结...

  • 2018-06-11-vmstat

    '''用Lmbench3测量上下文切换的时长 vmstat测量上下文切换次数'''

  • CPU性能分析--上下文切换

    内容提要 CPU上下文切换都做了哪些事? CPU上下文切换都有哪些场景? 系统调用上下文切换都做了哪些事? 进程上...

  • 监控CPU

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

  • 计算机组成原理

    进程上下文切换由以下4个步骤组成: 决定是否作上下文切换以及是否允许作上下文切换。包括对进程调度原因的检查分析,以...

  • Java并发编程-并发编程带来的问题

    并发编程带来的问题 上下文切换 多线程不一定快 如何减少上下文切换 减少上下文切换的方法有无锁编程、CAS算法、使...

  • 并发编程的挑战

    上下文切换 上下文切换发生于计算机CPU从一个进程或线程切换到不同的进程或线程。 上下文切换允许一个CPU处理多个...

  • 进程切换与系统调用(中断和异常)切换哪个耗时耗资源多?

    模式切换不同于进程上下文切换,它进行的应该是模式之间的上下文切换切换模式并不会发生进程上下文切换,因为用户和内核都...

  • 并发编程挑战

    影响并发原因 Lmbench3 上下文切换时长vmstat 上下文切换次数vmstat 1cs 表示次数 1、...

  • java并发编程的艺术笔记第一章——并发编程的挑战

    1、并发编程的挑战来自哪里? 1.1、上下文切换 1.2、死锁 1.3、资源限制的挑战 1.1、上下文切换 单核处...

网友评论

      本文标题:上下文切换

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