zoukankan      html  css  js  c++  java
  • 03 | 基础篇:经常说的 CPU 上下文切换是什么意思?(上)

    一、关于上下文切换的几个为什么

    1、上下文切换是什么?

    上下文切换是对任务当前运行状态的暂存和恢复

    2、为什么CPU要进行上下文切换

    当多个进程竞争CPU的时候,为了保证每个进程可以公平被CPU调用,采用处理任务按时间分片的机制,当某个时间片上的任务达到最后的时间点,那么这个任务就好被挂起,处理下一个任务,由于CPU处理的速度非常快,在人类感知上认为是并行处理的,实际是伪并行,同一时间只有一个任务在运行处理。

    3、上下文切换主要消耗什么资源,为什么说上下文切换次数过多不可取?

    浪费太多时间在切换上,会增大处理任务的时间,导致延迟,卡顿现象

    4、上下文切换分几种

    进程上下文切换、线程上下文切换、中断上下文切换

    5、什么情况下会触发上下文切换?

    CPU梳理任务的时间片耗尽,进程状态转换(像运行,阻塞)等

    6、线程上下文切换和进程上下文切换的最大区别是什么?

    线程是调度的基本单位,进程是资源拥有的基本单位。
    进程的切换属于资源的切换。
    同属一个进程的线程,发生上下文切换,只切换线程的私有数据,但是共享的内存池数据没有变,所以速度很快。

    7、线程上下文切换的过程

    1.不同进程之间的线程上下文切换,其过程和进程上下文切换大致相同
    2.线程内部的线程进行上下文切换,不需要切换进程的用户资源,只切换线程的私有数据就行,所以比进程上下文切换消耗的资源少,所以多线程相比多进程快。私有数据是什么数据,不需要知道。

  • 相关阅读:
    徐丽君 20191017-1 每周例行报告
    徐丽君 20191010-2 每周例行报告
    徐丽君 20190919-1 每周例行报告
    徐丽君 20190919-4 单元测试结对
    20191128-1 总结
    20191121-1 每周例行报告
    20191114-1 每周例行报告
    20191107-1 每周例行报告
    20191031-1 每周例行报告
    20191024-1 每周例行报告
  • 原文地址:https://www.cnblogs.com/charon2/p/11762239.html
Copyright © 2011-2022 走看看