线程上下文切换和进程上下文切换的区别

程序是一组旨在执行特定任务的指令。因此,程序是一个被动实体。

正在执行(正在执行)的程序称为进程。
因此,进程是一个活动实体。当一个程序运行时,它可能包含相应运行的各种线程。在单线程进程中,线程本身就是进程。在多线程进程中,我们需要在不同线程之间切换以执行我们的程序。

1. 线程切换:
线程切换是一种在同一进程中从一个线程到另一个线程的上下文切换。线程切换非常有效且便宜得多,因为它只涉及切换身份和资源,例如程序计数器、寄存器和堆栈指针。线程到线程切换的成本和进出内核的成本差不多。

2. 进程切换:
进程切换是一种上下文切换,我们将一个进程与另一个进程切换。它涉及将所有进程资源与新进程所需的资源进行切换。这意味着切换内存地址空间。这包括内存地址、页表和内核资源、处理器中的缓存。

线程上下文切换和进程上下文切换的区别:

编号 线程上下文切换 进程上下文切换
1 TCS发生在CPU保存线程当前状态并切换到同一进程的另一个线程时。 PCS 发生在操作系统的调度程序保存正在运行的 Program 的当前状态(包括 PCB 的状态)并切换到另一个程序时。
2 TCS帮助CPU同时处理多个线程。 PCS 涉及加载新程序的执行状态。
3 TCS 不涉及内存地址空间的切换,所有处理器帐户保持保存的内存地址。 PCS 涉及内存地址空间的切换。处理器帐户的所有内存地址都会被刷新。
4 处理器的缓存和平移后备缓冲区保留它们的状态。 处理器的缓存和 TLB 被刷新。
5 TCS虽然涉及寄存器和堆栈指针的切换,但它不承担改变地址空间的成本,因此效率更高。 PCS涉及更改地址空间的沉重成本。因此效率较低。
6 TCS 更快更便宜。 PCS 相对较慢且成本较高。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/276111.html

(0)
上一篇 2023年2月28日
下一篇 2023年2月28日

相关推荐

发表回复

登录后才能评论