2016 - 2024

感恩一路有你

linux进程切换 不同进程间线程的切换与进程间的直接切换有什么区别?

浏览量:2441 时间:2021-03-15 21:34:27 作者:admin

不同进程间线程的切换与进程间的直接切换有什么区别?

在进程之间切换的步骤:

1、保存程序、计数它和其他寄存器。

2. 更新处于“运行”状态的流程的流程控制块,将流程状态更改为相应的状态,更新其他相关字段3,将切换流程的流程控制块移动到处于相关状态的队列4,选择另一个流程开始执行,将进程的进程控制块状态改为“running”状态5,并在最后一次操作中还原所选进程的处理器切换出运行状态的上下文,如loader counter和其他处理器的值,并伴有两个模式开关(user kernel、kernel user)。线程之间切换的步骤(在同一进程内):有两种线程:用户级线程和内核级线程。在用户级线程中,所有与线程管理相关的工作都是由应用程序完成的,内核并不知道线程的存在。在用户级线程之间切换时(在同一进程中),只需要保存用户寄存器、程序计数器和堆栈指针的内容,不需要进行模式切换。缺点:1。当进程的某个线程执行系统调用时,不仅该线程被阻塞,而且该线程所在进程的所有线程都被阻塞。2不能使用多处理器。在内核级线程中,线程的管理是由内核来完成的,应用程序部分没有线程管理权限,内核级线程之间只使用一个接口(API)(在同一进程中)进行切换,也就是说,除了保存上下文外,还需要进行模式切换。优点:1。可以使用多处理器。2线程阻塞不会导致进程阻塞

进程切换比线程切换成本更高,因为在进程切换过程中需要切页表,而且常常伴随着页调度,因为进程的数据段和代码段需要调出,以便可以交换要执行的进程的内容。进程的内容是线程的超集。而线程只需要保存线程的上下文(相关寄存器状态和堆栈信息),动作非常小

linux进程切换 线程切换需要哪些流程 线程切换和进程切换的区别

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。