进程切换开销大的原因

1.进程的保护现场:系统要保留有关被切换进程的足够信息,以便以后切换回该进程时,顺利恢复该进程的执行。在系统保留了CPU现场之后,调度程序选择一个新的处于就绪状态的进程、并装配该进程的上下文,使CPU的控制权掌握在被选中进程手中。
(1)具体操作:
n保存处理器的上下文,包括程序计数器和其它寄存器
n用新状态和其它相关信息更新正在运行进程的PCB
n把原来的进程移至合适的队列-就绪、阻塞
n选择另一个要执行的进程
n更新被选中进程的PCB
n从被选中进程中重装入CPU 上下文

2.线程的切换:一个处理器都只会执行一条线程中的指令,为了让线程切换后能恢复到正确的执行位置,每条线程都有一个独立的程序计数器,进行线程上下文切换时记录程序计数器、CPU寄存器状态(记录有挂起变量的值)等数据即可。

3.进程和线程的切换比较:
(1)进程切换方式:切换虚拟地址空间,切换内核栈和硬件上下文
(2)线程切换方式:切换内核栈和硬件上下文
(3)虚拟地址空间的切换:切换页表,以使用新的地址空间,虚拟内存和物理内存会进行一一对应数据存放,页表(虚拟内存)可以将虚拟地址转换为物理内存地址,从而能够通过页表查找到虚拟地址空间的中的某一数据在物理内存的具体位置。
(4)页表切换的开销:通常使用TLB Cache来进行缓存常用的地址映射,用来加速页表查找,当进程切换后,页表页要进行切换,页表切换后TLB就会失效,Cache失效导致查找命中率降低,也就是虚拟地址转换为物理地址就会变慢,程序中其他进程的执行就变慢,表现出来程序运行会慢

进程开销比线程大的原因

进程切换的方式

进程的切换方式

线程切换与进程切换以及开销

线程的上下文切换
进程的调度机制

猜你喜欢

转载自blog.csdn.net/m0_49036370/article/details/114240253