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

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

从先前的相同点恢复。这是多任务操作系统的功能,并且允许单个CPU由多个进程共享。

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

线程切换是指在进程中从一个线程切换到另一个线程。

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

因此,在进程之间进行切换的成本比在线程之间进行切换的成本高得多。