CPU的介绍:参考博客:https://blog.csdn.net/stpeace/article/details/80101441
官名叫做微处理器,微处理器由一片或少数几片大规模集成电路组成的中央处理器,这些电路执行控制部件和算数逻辑部件的功能。
CPU从逻辑上可以划分成3个模块,分别是
1控制单元:
控制单元是整个CPU的指挥控制中心,由 程序计数器PC(Program Counter), 指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等,对协调整个电脑有序工作极为重要。它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。
2.运算单元:是运算器的核心。可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)
3.存储单元:包括CPU片内缓存和寄存器组,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度
细化后:
2.CPU执行程序,是一个指令一个指令执行的,同一时刻一个cpu只能执行一条指令
的原理简单版本 ,参考博客:https://blog.csdn.net/dong_daxia/article/details/80289951
Instruction:指令,是CPU进行操作的基本单元,大致包含操作对象、操作对象的地址、对操作对象进行何种操作。
介绍单核CPU和多核CPU的工作原理
单核CPU:
单核CPU较为死脑,在通电时该CPU就会执行存储块中的指定地址的指令,如果你想要执行内存块其他地方的代码必须调整总线位置才可以让其执行!
.多核CPU多核CPU即多个CPU组成,
这些CPU集成在一个芯片里,可以通过内部总线来交互数据,共享数据,这些CPU中分配出一个独立的核执行操作系统,每个核都有自己的寄存器,alu运算单元等(这些都是封装在cpu内部的),但是一级二级缓存是共享的,这些CPU通过总线来交互数据,并且工作是并行的,资源分配是由操作系统来完成的,操作系统来决定程序cpu的控制权分配,所以一个多核cpu的工作效率大多体现在操作系统的分配上,因为一个CPU基本上可以执行很多个程序,通过PCB进程控制块的方式存储当前代码段,然后来回跳转,所以当你的CPU核过多时,操作系统在分配时可能会导致部分CPU闲置!
多个CPU即拥有多个CPU的主机,每个cpu只能用来独立执行不同的程序,这些cpu都是单核的,不用在家用电脑上,只用在特定的机器上,因为单核cpu执行一个程序比来回跳转执行的速度要快很多,但是难以管理,因为每个CPU有自己的总线,一级二级缓存,那么这样需要更大的占用面积,更多的总线,因为这些CPU不是封装在一个芯片里的!
并发和并行
并发: CPU时分复用
并行:在同一时刻,处理器多核同时工作
CPU和线程进程的关系
首先要明确一个处理器只能在一个时刻运行一个进程,一个进程拥有一块内存地址,不同进程之间的变量在不同内存中,线程是在进程中的,一个进程中的所有线程共享这块内存
1.单核处理器和进程:(只能并发处理进程和线程)
操作系统调度器:调度进程
由于CPU同时刻只能执行一个进程,如果我们不加以控制的话,一个进程可能使用CPU直到运行结束,于是出现了操作系统调度器,而进程也成为了调度单位
在这里就出现了并发的概念,调度器切换CPU给不同进程使用的速度非常快,于是在使用者看来程序是在同时运行,这就是并发,而实际上CPU在同一时刻只在运行一个进程。
一个进程拥有一个自己的内存地址,当处理器进行不同进程切换时候,每一次切换时候都要保存上下文。CPU看来所有的任务都是一个一个的轮流执行的,具体的轮流方法就是:先加载程序A的上下文,然后开始执行A,保存程序A的上下文,调入下一个要执行的程序B的程序上下文,然后开始执行B,保存程序B的上下文。。。。
单CPU进行进程调度的时候,需要读取上下文+执行程序+保存上下文,即进程切换。如果这个CPU是单核的话,那么在进程中的不同线程为了使用CPU核心,则会进行线程切换,但是由于共享了程序执行环境,这个线程切换比进程切换开销少了很多。在这里依然是并发,唯一核心同时刻只能执行一个线程。
多核处理器和进程
多核处理器:
是指在一枚处理器中集成两个或多个完整的计算引擎(内核),此时处理器能支持系统总线上的多个处理器
进程:
进程就是包换上下文切换的程序执行时间总和 = CPU加载上下文+CPU执行+CPU保存上下文
进程是操作系统进行资源分配(包括cpu、内存、磁盘IO等)的最小单位
线程:
一个进程中可以有多个线程
线程是CPU调度和分配的基本单位
原文地址:https://www.cnblogs.com/guojiayi/p/10934026.html