重回大学:CPU 核数 进程 线程 串行 并发 并行 同步 异步 你分清楚了吗?

【STM32Cube HAL】输入捕获(六)——脉宽测量 1 阅读详情

前言

在学习与开发的过程中,总能听到与看到

CPU,核数, 进程, 线程, 并行度, 串行, 并发, 并行, 同步, 异步  . . . . . .

这些东西,有时候在很相近的地方的一时半会区分一个1,2,3来,真的是说不上来。所以特意总结一篇。

其实这就是在大学学习《计算机组成原理》的内容。当时学习的时候,不能理解学习完这些就是知道了有啥用,现在工作几年了,回想起来真的很有用。对于还在大学的读者,要好好学习基础知识。所以,今天此篇是来重新从老师那边拿回咱们的东西,回想你的大学,还记得这位老师吗?来评论聊聊。

 

CPU

中央处理器,其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。

运算器

(1)算术逻辑单元(ALU)。算术逻辑单元的运算主要是进行二位元算术运算,如加法、减法、乘法。在运算过程中,算术逻辑单元主要是以计算机指令集中执行算术与逻辑操作,通常来说,ALU能够发挥直接读入读出的作用,具体体现在处理器控制器、内存及输入输出设备等方面,输入输出是建立在总线的基础上实施。输入指令包含一 个指令字,其中包括操作码、格式码等。

(2)累加器(accumulator)是一种寄存器,用来储存计算产生的中间结果。如果没有像累加器这样的寄存器,那么在每次计算 (加法,乘法,移位等等) 后就必须要把结果写回到内存,也许马上就得读回来。

(3)状态寄存器用来存放两类信息:一类是体现当前指令执行结果的各种状态信息(条件码),如有无进位(CF位)、有无溢出(OV位)、结果正负(SF位)、结果是否为零(ZF位)、奇偶标志位(P位)等;另一类是存放控制信息(PSW:程序状态字寄存器),如允许中断(IF位)、跟踪标志(TF位)等

(4)通用寄存器。用于暂时存放或传送数据或指令。

控制器

控制器,是计算机的指挥中心,负责决定执行程序的顺序,给出执行指令时机器各部件所需要的操作控制命令。

(1)程序计数器(PC)。用来存储从内存提取的下一条指令的地址。当CPU执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为“取指令”。与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址,此后经过分析指令,执行指令,完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令,保证程序能够连续地执行下去。

(2)指令编译器。用于翻译指令及控制传输指令包含的数据。

(3)指令寄存器。用于缓存从内存或高速缓存里取出的指令,CPU执行指令时,就可以从指令寄存器中取出相关指令来进行执行。

(4)时序产生器。类似于“时间作息表”,给计算机各部分提供工作所需的时间标志,一般是利用定时脉冲的顺序和不同的脉冲间隔来实现。

(5)操作控制器。根据指令所需完成的操作和信号,发出各种微操作命令序列,用以控制所有被控对象,完成指令的执行。

核数

CPU核数即一个CPU由多少个核心组成,核心数越多,代表这个CPU的运转速度越快,性能越好。对于同一个数据处理,一核CPU相当于1个人处理数据,双核CPU相当于2个人处理同一个数据,4核CPU相当于4个人去处理同一个数据,因此处理核心数越多,CPU的工作效率也就越高。以windows为例:

插槽:1个CPU 内核:4核数 逻辑处理器:8线程

所以对于图片上的这台电脑看,这是一台单CPU 4核 8线程的电脑。

对于概念上来看,4核心指的的物理概念,8线程是逻辑概念。这是利用超线程技术将一个物理核心模拟为2个核心,这2个核心并不是物理上独立存在的电路,所以叫做逻辑核(逻辑处理器)。

多核与多CPU

多核,是指一个CPU有多个核心处理器,处理器之间通过CPU内部总线进行通讯。

多CPU是指简单的多个CPU工作在同一个系统上,多个CPU之间的通讯是通过主板上的总线进行的。

进程

进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

结构

(1)文本区域:存储处理器执行的代码。

(2)数据区域:存储变量和进程执行期间使用的动态分配的内存。

(3)堆栈:存储着活动过程调用的指令和本地变量。

状态(就绪、运行和阻塞)

(1)就绪

阻塞态到就绪态:阻塞的进程获得等待的资源或信号。

运行态到就绪态:时间片轮转的情况下,进程的时间片用完。

运行态到就绪态:CPU调度给优先级更高的进程。

(2)运行态

正在运行的进程

(3)阻塞态

等待资源,信息交换,进程同步(停下来等待其他进程),这些情况都会存在阻塞。

线程

一个进程中可以包含若干个线程。线程可以利用进程所拥有的资源,在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位,由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统多个程序间并发执行的程度。

状态

(1)新建状态(new):新创建了一个线程。

(2)就绪状态(Runnable):线程对象创建后,该状态的线程位于可运行线程池 中,变得可运行,等待被线程调度选中,获取cpu的使用权。在java中调用了start()方法。

(3)运行状态(Running):就绪状态的线程获取了CPU时间片,执行程序代码。

(4)阻塞状态(Blocked):阻塞状态是线程因为种种原因丢掉了CPU使用,暂时停止运行。

(5)死亡状态(Dead):线程执行完了或者遇到异常,该线程结束生命周期。

进程与线程

有个形象的比喻就是:进程好比是火车,线程好比是车厢(多线程)。

对比项进程线程
定义进程是程序运行的一个实体的运行过程,是系统进行资源分配和调配的一个独立单位线程是进程运行和执行的最小调度单位
系统性能创建撤销切换影响性能,资源要重新分配和收回仅保存少量寄存器的内容,在进程的地址空间执行代码
拥有资产资源拥有的基本单位基本上不占资源,仅有不可少的资源(程序计数器,一组寄存器和栈)
调度资源分配的基本单位独立调度分配的单位
安全性进程间相互独立,互不影响线程共享一个进程下面的资源,可以互相通信
地址空间赋予的独立的内存地址空间由相关堆栈寄存器和和线程控制表组成,寄存器可被用来存储线程内的局部变量

串行,并发与并行

串行: 多个任务,执行时一个执行完再执行另一个。

并发: 多个线程在单个核心运行,同一时间一个线程运行,系统不停切换线程,看起来像同时运行,实际上是线程不停切换。

并行: 每个线程分配给独立的核心,线程同时运行。

在单CPU系统中,系统调度在某一时刻只能让一个线程运行,虽然这种机制有多种形式,但是大多数是时间片轮询方式为主,要通过不断切换需要运行的线程让其运行的方式就叫并发(concurrent)。而在多CPU系统中,可以让两个以上的线程同时运行,这种可以同时让两个以上线程同时运行的方式叫做并行(parallel)。

所以记住:并发在微观上不是同时执行的,只是把时间分成若干段,使多个线程快速交替的执行。在软件领域,完成多个任务需要借助多线程完成。但是并不是并发操作能够完全优势于串行操作,因为线程间切换需要成本,但是有时候有些任务只能通过串行完成。

其他方式的理解

串行:打完游戏去睡觉。

并发:指两个或多个事件在同一时间间隔发生,交替做不同事情的能力。比如:上班的时候正在写代码,中间的时候领导让开了会,开完会,继续写代码。

并行:指两个或者多个事件在同一时刻发生,同时做不同事情的能力。比如:习惯性的边吃饭边看视频。

同步与异步

同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去。

异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。

当多个线程需要访问同一个资源时,它们需要以某种顺序来确保该资源在某一特定时刻只能被一个线程所访问,如果使用异步,程序的运行结果将不可预料。因此,在这种情况下,就必须对数据进行同步,即限制只能有一个进程访问资源,其他线程必须等待。

所以同步与异步的选择要看业务场景。

PostgreSQL 核心原理:大字段(大对象)是如何被压缩和存储的(TOAST存储机制) PostgreSQL通过TOAST机制高效处理大字段存储问题,解决单行超过8KB页大小限制的挑战。TOAST采用透明分片、按需加载和自动压缩策略,支持TEXT、JSONB等变长类型,无需用户干预。其核心包括四种存储策略(plain/external/main/extended),自动将大字段分片存入专用TOAST表,主表仅保留指针。读取时按需解压拼接,支持部分加载优化。TOAST表结构包含chunk_id、序列号和分片数据,配合内置PGLZ压缩算法,平衡存储效率与访问性能。该机制使PostgreSQL能稳定 阅读详情

相关推荐

Calibre提参实战:如何用hcell和xcell文件精准屏蔽模块(附避坑指南)

本文详细解析了Calibre提参过程中hcell和xcell文件的应用技巧,帮助工程师精准屏蔽模块以优化寄生参数提取。通过对比hcell与xcell的核心差异、图形界面与命令行操作指南,以及常见问题排查方法,提升芯片后端设计效率。附避坑指南,解决EETOP论坛热议的模块丢失问题。

weixin_26795617的博客 440

线程知识点

线程知识点 进程:运行中的程序,有自己的地址和空间,基于进程的计算机能运行多个程序,即多进程 线程:进程中的一个执行流程,一个进程可以运行多个线程,即多线程 主线程:JAVA本身就是基于线程的,一个JAVA程序至少包含一个主线程,启动JAVA程序,主线程立即运行。(main方法所在线程即为主线程,主线程是产生其他线程的线程) 线程创建一(继承thread类,重写run方法,创建对象,调用s...

冥主博客 2131

使用RustDesk或者AnyDesk的TCP隧道实现Codesys系列PLC的远程调试和下载

Codesys远程调试

exat500g的博客 7279

Java 线程中的几种状态

Java 线程的状态决定了它在运行时能够执行的操作以及行为。在本文中,我们介绍了 Java 线程的 6 种状态,并分别给出了每种状态下的示例代码。熟练地掌握 Java 线程的状态对于编写高效、可靠的多线程应用程序非常重要。

it_xushixiong的博客 2013

避开SM30维护视图的坑:自动更新字段+日志记录的5个关键配置步骤

本文深入解析了SAP ABAP开发中SM30维护视图的深度定制,聚焦于实现自动更新字段与日志记录功能。文章详细阐述了从SE54配置起点到核心编码的5个关键步骤,重点讲解了如何利用事件驱动模型(如05创建事件和01保存前事件)安全操作动态数据结构,并提供了避免常见陷阱的实用技巧,帮助开发者构建稳定可靠的自动化维护机制。

plant的博客 624

手把手教你绕过Incapsula reese84防护:从JS反混淆到动态Token生成全流程

本文深入解析了以Incapsula reese84为代表的现代Web客户端挑战防护机制,详细介绍了从JS反混淆、算法逆向到动态Token生成的全流程实战方法。文章系统阐述了如何通过模拟浏览器指纹、移植关键算法或嵌入JS引擎来构建自动化应对策略,并提供了稳健的令牌管理与系统架构设计思路,帮助开发者在合规前提下提升自动化工具的适应性。

jenkins8butler的博客 518

线程、进程、并发、cpu、gpu的联系

线程、进程、并发、cpu、gpu的联系

jjjqqq123321的博客 2592

从YOLOv8到RTDETR:如何将训练后的YOLO指标无缝转换为COCO格式

本文详细介绍了如何将训练后的YOLOv8指标无缝转换为COCO格式,特别适用于RTDETR模型的评估。通过数据准备、指标转换流程和实际项目经验,帮助开发者解决YOLO与COCO指标差异问题,提升模型评估的准确性和权威性。

weixin_29085151的博客 378

进程、线程、协程、并发、并行、IO多路复用

目录 一、什么是IO操作 二、进程、线程、协程 1、进程是资源分配的基本单位 2、线程是任务调度的基本单位 3、协程—由线程创建并全权负责的小弟 三、并行、并发及其与CPU内核数的关系 1、理解并行与并发的区别 2、进程、线程与CPU核数之间的关系 3、同一个进程里的线程可以并行执行吗(满足条件时可以) 四、IO多路复用 五、参考文(zi)献(liao) 我竟然妄想在小小的篇幅下把这四件事讲明白,离谱,但又不太离谱~ 在多线程、多进程、并行、并发这几个概念中,有很多知识点容易让..

Flag_ing的博客 2011

轴承寿命预测实战:手把手教你用IEEE PHM2012数据集训练模型(附Python代码)

本文详细介绍了如何利用IEEE PHM2012数据集构建轴承剩余寿命预测模型,从数据预处理、特征工程到LSTM模型训练与部署,提供了完整的Python代码实现。通过实战案例,帮助读者掌握预测性维护中的关键技术,提升工业设备的运行安全与效率。

weixin_29186249的博客 312

概念解析 | 事件相机的原理 (含仿真代码)

在我们熟悉的世界里,传统相机就像一个勤勉的绘画师,每隔固定的时间就为我们勾勒出一幅完整的画面。但是,大自然中有太多瞬息万变的精彩场景,这种"定时绘画"的方式往往难以捕捉。于是,一种全新的"观察者"应运而生 -事件相机(Event Camera)。事件相机,就像是一群极其敏感的"像素哨兵",它们不再按部就班地等待指令,而是主动感知周围的变化,只有在光线强度发生显著变化时才会发出信号。这种革命性的设计,让事件相机拥有了传统相机难以企及的优势:超高的时间分辨率、极低的延迟、宽广的动态范围,以及出色的能效比。

NLOS的博客 1423

并发与并行的区别

学习多线程的时候会遇到一个名词:并发。这是属于操作系统中的词汇,需要了解并发和并行的区别,从网上搜集了几种说法帮助理解。 一: 并发是指一个处理器同时处理多个任务。 并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。 并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。 来个比喻:并发是一个人同时吃三个馒头,而并行是三个人同时吃三个馒头。 二: 并行

Crazy Snail 8万+

手把手教你完成YOLOv9 PyQt5目标检测界面搭建,实现图片检测、视频检测、摄像头检测,可用于大论文凑工作量或毕设必备,全网最详细教程

目标检测是计算机视觉中的重要任务,广泛应用于安防监控、自动驾驶、智能家居等领域。YOLO系列模型由于其高效的检测速度和较高的准确率,成为目标检测任务的首选算法之一。本项目结合 YOLOv9与 PyQt5,构建了一个图形化界面,便于用户进行目标检测的操作和展示,实现对图片、视频和摄像头的实时目标检测,不仅可以用于大论文的工作量展示,还可以作为毕业设计。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2657

CPU、核心,进程、线程,串行、并发、并行之间的关系

1、计算机硬件基本组成 一个计算机(冯·诺依曼结构)【主要】硬件组成: 主板:是“交通枢纽”,各个部件工作的所在平台,它负责将各个部件紧密连接在一起,各部件通过主板进行数据传输 CPU:中央处理器(Central Processing Unit),决定电脑的性能等级。主要有3大组成部分 运算器:算术逻辑运算单元(ALU,Arithmetic Logic Unit),负责执行所有的数学和逻辑工作 控制器:控制单元(CU,Control Unit),控制计算机的所有其他部件,如输入输出设备以及存储器 寄存器

menglei的博客 3604

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

cpu线程和Java线程关系_关于CPU核心,线程,进程,并发,并行,及java线程之间的关系...

前言:作为一个转行java的小白,一直搞不清楚java中的多线程.于是来梳理一下关于CPU核心,线程,进程,并发,并行,及java线程之间的关系,1.CPU角度来看:我们以Intel的Core i5-8250U为例来举例,它是四核八线程的CPU ,我认为是一个CPU集成了4个核心,一般来说一个核心对应一个线程,Intel通过超线程技术来实现一个核心对应2个线程,所以它是四核8线程.线程数:是同一时...

weixin_39859819的博客 1497

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

CPU、核心、进程、线程、协程、串行、并发、并行

** CPU 中央处理器(英文CentralProcessingUnit,CPU)是一台计算机的运算核心和控制核心。CPU、内部存储器和输入/输出设备是电子计算机三大核心部件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。 CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指

一枚很low得程序猿 2890

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

CPU玩的是效率!超线程双核PK物理三核

比比多线程效率!物理三核PK逻辑四核     泡泡网CPU频道3月26日 2010年初始,Intel发布了全新的32nm双核i5/i3处理器,工艺的提升令双核带来了更强的性能,但双核毕竟只是双核,即便是拥有再强的单核执行效率,在多线程应用下也完全不是最廉价多核的对手,Intel似乎也发现了这个现象,同时祭出了封存已久的超线程技术,让双核产品面对多线程应用时同样可以得心应手

痞子龙3D编程 3670

并发与并行有啥区别咧?CPU内核数量与线程有啥联系咧?

并发与并行的区别是啥?线程与CPU内核数量有什么区别

我要出家当道士 1335

多CPU/多核/多进程/多线程/并发/并行之间的关系

多CPU,多核,多进程,多线程 当面临这些问题的时候,有两个关键词无法绕开,那就是并行和并发。 首先,要先了解几个概念: 1、进程是程序的一次执行。 2、进程是资源分配的基本单位(调度单位)。 3、一个进程可以包括多个线程。 4、在单CPU计算机中,有一个资源是无法被多个程序并行使用的:CPU。 5、操作系统调度器:拆分CPU为一段段时间的运行片,轮流分配给不同的程序。 6、操作系统内存管理模块:管理物理内存、虚拟内存相关的事务。    由于CPU同时刻只能执行一个进程,如果我们不加以控制的话,一个进程可能

hb1993的博客 6398

服务器并发数取决于的因素!

一:服务器并发数取决于那些? 1.CPU 处理性能 CPU 核数,假如 CPU有4个核,处理每个访问请求用线程去处理,那么4核每次最大能处理不超过8个线程,处理时间看单个线程处理完数据的时间,假如一个线程处理时间是40ms(毫秒),那么最高秒级并发计算那就是 1000/40*8=200 那么每秒最高处理并发是200个,如果服务器只收不处理数据的话处理时间还能大幅度下降, 并发数还鞥你大幅度提升。 2.内存容量 假设目前服务器有4G空闲内存,每次处理一个请求占用1MB内存,那么一秒就是200MB,..

dj1540225203的博客 3385

Java多线程学习笔记

Owner线程发现条件不满足,调用wait方法,即可进入WaitSet变为WAITING状态 BLOCKED和WAITING的线程都处于阻塞状态,不占用CPU时间 BLOCKED线程会在Owner线程释放锁时唤醒 WAITING线程会在Owner线程调用notify或notifyAll时唤醒,但唤醒后并不意味着重新获得锁,仍须进入EntryList重新竞争 Sleep和Wait的区别 1、sleep是Thread方法,而wait是Object方法 2、sleep不需要强制和synchronized方法使用.

qq_34382627的博客 197

捋一捋进程、线程、线程池的概念

一次面试中,面试官问:进程、线程和线程池了解过么? 我:进程和线程了解过,线程池不太了解。 然后就没有然后了。。。 还是得把基本概念了然于胸才行,下次才能给面试官扯清楚了! 一、进程 进程的概念 进程(process),是指计算机中已运行的程序,是操作系统中分配资源的最小单位。但是进程不是基本的运行单位(线程才是),而是线程的容器。 当我们用 C 语言写一个 hello 程序,编译后得到可执行文件...

Lizune 509

笔记: 理解CPU的并行性

理解CPU的并行性 影响性能的主要因素: CPU : 核心数量、线程数据量,(C/T), 越多越强大, 每个核心拥有自己的L1和L2和L2和L2, L3为共享高速缓存,L3为共享高速缓存,L3为共享高速缓存,L3目前能搞32M以上。 SRAM: 静态随机存取存储器,CPU和芯片组的基材,高速缓存,以速度为目标。 DRAM:动态随机存取存储器,主存基材,以更高带宽和存储为目标,读取耗时。 内存带宽: 以千兆字节每秒为单位,越高意味着I/O速度越高。 核心: 按序核心即指令按照顺序串行执行, 低功耗,省钱;乱

lyang0303的专栏 1188

【JUC】线程状态及各状态下与锁和CPU的关系

线程的状态 Thread.State枚举类型中定义了线程的6种状态:NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING和TERMINATED。 线程在某一时刻只能拥有一种状态,但是在线程的整个生命周期,线程的状态会发生变化。 各状态的说明 NEW:线程已经被创建,但还没调用start()。此时的线程是不可运行的,CPU将不会为其分配时间; RUNNABLE:当新创建的线程调用了start(),线程便进入了RUNNABLE状态。RUNNABLE状态是指可以获得CPU运行时间的

fearless的博客 698

记一次解决线程blocked导致的CPU飙升

CPU飙升,线程BLOCKED解决

qq_27398723的博客 824

串行、并发与并行

**并发** 单核cpu下,线程实际还是串行执行的。操作系统中有一个组件叫做任务调度器,将cpu的时间片(Windows下时间片最小约为15毫秒)分给不同的线程使用,只是由于cpu在线程间的切换非常快,人类感觉是同事运行的。 一般会将这种线程轮流使用cpu的做法称为并发。 **并行** 多核cpu下,每个核(core)都可以调度运行线程,这时候线程可以是并行的。 引用Rob Pike的一段描述: 并发(concurrent)是同一时间应对(dealing with)多件事情的能力 并行(parallel

weixin_43526092的博客 1030
上一篇: 数仓:事实表设计方法,原则和三种类型选择
下一篇: Apache Doris 为分析而生:Doris 架构
大数据左右手
博客等级 码龄9年 475粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值