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

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

1、上下文切换是什么?

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

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

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

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

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

4、上下文切换分几种

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

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

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

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

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

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

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

原文地址:https://www.cnblogs.com/charon2/p/11762239.html

时间: 2024-08-06 11:26:56

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

小猪猪逆袭成博士之C++基础篇(二) 常量、处理类型、自定义头文件

小猪猪逆袭成博士之C++基础篇(二) const .auto. decltype 上一章我们介绍了一些常用的类型和常见的问题,下面再介绍一些学习的时候不是特别常用但是在实际工程中很有用的一些东西. 一.常量const 我们想要定义一种不能改变它的值的变量,我们就对这个变脸的类型加上限定符Const. Const 对象必须要初始化,并且它一旦创建了就不能改变,所以Const变量是只能出现在等号的右边的. 另外,在C11标准中会有一种Constexpr的类型来编译器验证变量的值是是否是一个常量表达式

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

1.多任务竞争CPU,cpu变换任务的时候进行CPU上下文切换(context switch).CPU执行任务有4种方式:进程.线程.或者硬件通过触发信号导致中断的调用.2.当切换任务的时候,需要记录任务当前的状态和获取下一任务的信息和地址(指针),这就是上下文的内容.因此,上下文是指某一时间点CPU寄存器(CPU register)和程序计数器(PC)的内容, 广义上还包括内存中进程的虚拟地址映射信息.3.上下文切换的过程:(1)记录当前任务的上下文(即寄存器和计算器等所有的状态):(2)找到

Linux性能优化从入门到实战:03 CPU篇:CPU上下文切换

??linux操作系统是将CPU轮流分配给任务,分时执行的.而每次执行任务时,CPU需要知道CPU寄存器(CPU内置的内存)和程序计数器PC(CPU正在执行指令和下一条指令的位置)值,这些值是CPU执行任务所依赖的环境,也就是CPU上下文. ??CPU上下文切换,就是把前一个任务的CPU上下文(CPU寄存器和程序计数器)保存起来,然后加载入新任务的上下文到CPU寄存器和程序计数器中,最后跳转到程序计数器所指的位置,运行新任务. ??保存下来的上下文会在系统内核中,并在任务重新调度执行时再次加载进

iOS系列 基础篇 03 探究应用生命周期

iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本篇主要探讨的是iOS应用中各种状态的跃迁过程,建议大家通过修改AppDelegate.swift,在每个过程中添加日志输出代码,从而观察其变化. 作为应用程序的委托对象,AppDelegate类在应用程序生命周期的不同阶段会回调不同的方法. 首先,咱们先来了解一下iOS应用的不同状态和他们之间的关系

前端开发工程师 - 03.DOM编程艺术 - 第1章.基础篇(上)

第1章.基础篇(上) DOM (Document Object Model) - 文档对象模型 以对象的方式来表示对应的html,它有一系列的规范 i.e. 在浏览器中,DOM是通过JS实现的. DOM: DOM Core:核心结构.API的定义 DOM HTML: 定义HTML如何转化成对象(HTML对应的对象)-- 操作节点 DOM Style:样式转换成对象 -- 操作样式 DOM Event:事件对象的模型 -- 响应用户的操作 文档树 HTML -> DOM树 节点遍历 node.pa

WebBug靶场基础篇 — 03

基础篇 6 - 16 关... 在记录之前,先说一件事 = =! 小学生真多 = =!好心提供一个靶场,玩玩就算了,他挂黑页 ?现在好了,以后这个靶场不对外啊!你高兴了?爽了吧? 都是新手过来的,好心搭个公网的漏洞网站,还真有挂黑页的... 第六关... 这个关卡设置的有点问题,只有一个登陆框,也没给提示账号密码,弱密码也试了好几波,都没进去 = =!然后我就去数据库里看看密码 = =! 毕竟源码设计的还是有问题,然后我就开始登陆了. 看到这里,直接抓包,毕竟不就是一个修改参数的漏洞嘛... 是

CPU 上下文切换之理论篇(上)

1.什么是上下文?答:上下文是由CPU寄存器和程序计数器组成 2.CPU为什么进行上下文切换?答:CPU上下文切换,是保证Linux系统正常工作的核心功能之一 3.什么是CPU上下文切换?答:CPU上下文切换,就是先把前一个任务的CPU上下文保存起来,然后加载新任务的上下文到这些寄存器和程序计数器中,最后跳转到程序计数器所指的新位置,运行任务 4.什么是cpu寄存器?答:cpu寄存器是cpu内置很小.但速度极快的内存 5.什么是程序计数器?答:是用来存储CPU正在执行的指令位置.或者即将执行的下

02 基础篇:到底应该怎么理解“平均负载”?

02 | 基础篇:到底应该怎么理解"平均负载"? 每次发现系统变慢时,我们通常做的第一件事,就是执行 top 或者 uptime 命令,来了解系统的负载情况.比如像下面这样,我在命令行里输入了 uptime 命令,系统也随即给出了结果. uptime 02:34:03 up 2 days, 20:14, 1 user, load average: 0.63, 0.83, 0.88 但我想问的是,你真的知道这里每列输出的含义吗?我相信你对前面的几列比较熟悉,它们分别是当前时间.系统运行时

构建企业代码管理系统之SVN服务(基础篇)

一.What's is a subversion Subversion(SVN)是一个开源的,跨平台的版本控制系统,由CollabNet公司成立于2000年:Subversion作为新一代的版本管理系统,以其目录版本化.原子提交.版本化的元数据.更加有效的分支和标签等特性,至今已被众多的互联网企业使用来管理网站.论坛的代码文件:Subversion最独特的地方,便是可以通过Apache的扩展模块与Apache的HTTP服务相结合,实现更安全的特性与管理,其次用户还可以通过HTTP协议去访问版本库