在 Linux 中,上下文切换、进程切换和线程切换之间有什么区别?


上下文切换涉及存储进程或线程的上下文或状态,以便在需要时可以重新加载它,并且可以

从与之前相同的点恢复执行。这是多任务操作系统的一个特性,它允许单个 CPU 被多个进程共享。

进程切换或进程调度是指通过保存当前正在执行的进程的所有状态(包括其寄存器状态、关联的内核状态和所有虚拟内存配置)来更改一个进程到另一个进程。

线程切换意味着在进程内从一个线程切换到另一个线程。

进程切换和线程切换之间的主要区别在于,在线程切换的情况下,虚拟地址空间保持不变,因此缓存中的内容相同。因此,无需使 TLB 无效。但在进程切换的情况下,情况并非如此,因为虚拟地址空间不会保持不变。因此,我们必须使 TLB 缓存无效。

因此,在进程之间切换的成本远高于在线程之间切换的成本。

更新于: 2019年10月11日

856 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.