• 03 | 基础篇:经常说的 CPU 上下文切换是什么意思?(上)


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

    1、上下文切换是什么?

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

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

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

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

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

    4、上下文切换分几种

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

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

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

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

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

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

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

  • 相关阅读:
    mysql配置utf8_mb4
    Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by serv
    MongoDB自动删除过期数据--TTL索引
    正则小公举
    苹果手机弹起输入框将页面上的元素上移
    location的部分属性
    在ajax请求下的缓存机制
    苹果机的时间格式转换为时间搓
    $.extendGit 丢弃所有本地修改的方法
    调起微信扫一扫
  • 原文地址:https://www.cnblogs.com/charon2/p/11762239.html
Copyright © 2020-2023  润新知