美文网首页
进程/线程切换开销分析

进程/线程切换开销分析

作者: 彳亍口巴 | 来源:发表于2022-11-12 19:12 被阅读0次

上下文切换的时候,CPU的开销都具体有哪些呢?开销分成两种,一种是直接开销、一种是间接开销。
直接开销就是在切换时,cpu必须做的事情,包括:
1、切换页表全局目录
2、切换内核态堆栈
3、切换硬件上下文(进程恢复前,必须装入寄存器的数据统称为硬件上下文)
ip(instruction pointer):指向当前执行指令的下一条指令

bp(base pointer): 用于存放执行中的函数对应的栈帧的栈底地址

sp(stack poinger): 用于存放执行中的函数对应的栈帧的栈顶地址

cr3:页目录基址寄存器,保存页目录表的物理地址

......

4、刷新TLB
5、系统调度器的代码执行

间接开销主要指的是虽然切换到一个新进程后,由于各种缓存并不热,速度运行会慢一些。如果进程始终都在一个CPU上调度还好一些,如果跨CPU的话,之前热起来的TLB、L1、L2、L3因为运行的进程已经变了,所以以局部性原理cache起来的代码、数据也都没有用了,导致新进程穿透到内存的IO会变多。

相关文章

  • 进程和线程的对比

    问题 一 进程和线程的对比 二 为什么进程切换开销大,线程切换开销低呢? .......................

  • 进程/线程切换开销分析

    上下文切换的时候,CPU的开销都具体有哪些呢?开销分成两种,一种是直接开销、一种是间接开销。直接开销就是在切换时,...

  • java基础-多线程

    进程、线程概念 进程:每个进程都有独立的代码和数据空间(进程上下文),进程切换开销比较大,进程中可以包含多个线程。...

  • 多线程

    单线程进程结构缺点: 并发程序存在问题 进程切换开销大 进程通信开销大 限制了进程并发的力度 降低了并行计算的效率...

  • Python协程(14)

    有了进程、线程,为什么还有个协程呢?因为进程或线程的切换都是由操作系统决定的,存在切换开销问题,而协程的切换是由程...

  • JAVA多线程笔记

    JAVA多线程笔记 线程的基本概念进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销...

  • java面试题之多线程(基础)

    1. 线程和进程的区别? ○ 每个进程都有独立的代码和数据空间,进程间的切换会有较大的开销; ○ 线程可以看作是轻...

  • 关于线程进程数量的问题

    进程线程的数量不是越多执行效率就越高,CPU切换线程进程的开销很大,当其数量过多时,CPU的资源大部分都浪费在切换...

  • Java多线程基础详解

    进程:每个进程都有独立的代码和数据空间,进程间切换会有较大开销 线程:同一进程中的线程共享代码和数据空间,但每个线...

  • 多线程之基础

    进程和线程:● 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1~...

网友评论

      本文标题:进程/线程切换开销分析

      本文链接:https://www.haomeiwen.com/subject/okbqxdtx.html