多CPU和多核CPU对应多进程和多线程调度

news/2025/1/12 1:45:23/

目录

  • cpu架构和工作原理
  • 多核cpu和多cpu
    • 架构
    • cpu的缓存
  • 进程和线程
  • 进程和线程在多核cpu,多cpu中的运行关系

cpu架构和工作原理

计算机有5大基本组成部分,运算器,控制器,存储器,输入和输出。运算器和控制器封装到一起,加上寄存器组和cpu内部总线构成中央处理器(CPU)。cpu的根本任务,就是执行指令,对计算机来说,都是0,1组成的序列,cpu从逻辑上可以划分为3个模块:控制单元、运算单元和存储单元。这三个部分由cpu总线连接起来。

CPU的运行原理就是:控制单元在时序脉冲的作用下,将指令计数器里所指向的指令地址(这个地址是在内存里的)送到地址总线上去,然后CPU将这个地址里的指令读到指令寄存器进行译码。对于执行指令过程中所需要用到的数据,会将数据地址也送到地址总线,然后CPU把数据读到CPU的内部存储单元(就是内部寄存器)暂存起来,最后命令运算单元对数据进行处理加工。周而复始,一直这样执行下去。

多核cpu和多cpu

架构

多个物理CPU,CPU通过总线进行通信,效率比较低。

多核CPU,不同的核通过L2 cache进行通信,存储和外设通过总线与CPU通信

cpu的缓存

CPU缓存是位于CPU与内存之间的临时数据交换器,它的容量比内存小的多但是交换速度却比内存要快得多。CPU缓存一般直接跟CPU芯片集成或位于主板总线互连的独立芯片上。

随着多核CPU的发展,CPU缓存通常分成了三个级别:L1L2L3。级别越小越接近CPU,所以速度也更快,同时也代表着容量越小。L1 是最接近CPU的, 它容量最小(例如:32K),速度最快,每个核上都有一个 L1 缓存,L1 缓存每个核上其实有两个 L1 缓存, 一个用于存数据的 L1d Cache(Data Cache),一个用于存指令的 L1i Cache(Instruction Cache)。L2 缓存 更大一些(例如:256K),速度要慢一些, 一般情况下每个核上都有一个独立的L2 缓存; L3 缓存是三级缓存中最大的一级(例如3MB),同时也是最慢的一级, 在同一个CPU插槽之间的核共享一个 L3 缓存。

读取数据过程。就像数据库缓存一样,首先在最快的缓存中找数据,如果缓存没有命中(Cache miss) 则往下一级找, 直到三级缓存都找不到时,向内存要数据。一次次地未命中,代表取数据消耗的时间越长。

计算过程。程序以及数据被加载到主内存;指令和数据被加载到CPU的高速缓;CPU执行指令,把结果写到高速缓存;高速缓存中的数据写回主内存

进程和线程

进程

进程是程序的一次执行过程,是一个动态概念,是程序在执行过程中分配和管理资源的基本单位,

线程

线程是CPU调度和分派的基本单位,它可与同属一个进程的其他的线程共享进程所拥有的全部资源。

  • 联系

线程是进程的一部分,一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。

  • 区别:理解它们的差别,从资源使用的角度出发。(所谓的资源就是计算机里的中央处理器,内存,文件,网络等等)

根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位

在开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。

所处环境:在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)

内存分配方面:系统在运行的时候会为每个进程分配不同的内存空间;而对线程而言,除了CPU外,系统不会为线程分配内存(线程所使用的资源来自其所属进程的资源),线程组之间只能共享资源。

包含关系:没有线程的进程可以看做是单线程的,如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻量级进程。

进程和线程在多核cpu,多cpu中的运行关系

操作系统会拆分CPU为一段段时间的运行片,轮流分配给不同的程序。对于多cpu,多个进程可以并行在多个cpu中计算,当然也会存在进程切换;对于单cpu,多个进程在这个单cpu中是并发运行,根据时间片读取上下文+执行程序+保存上下文。同一个进程同一时间段只能在一个cpu中运行,如果进程数小于cpu数,那么未使用的cpu将会空闲。

多线程的概念主要有两种:一种是用户态多线程;一种是内核态多线程,对于内核态多线程(java1.2之后用内核级线程),在操作系统内核的支持下可以在多核下并行运行;
对于多核cpu,进程中的多线程并行执行。对于单核cpu,多线程在单cpu中并发执行,根据时间片切换线程。同一个线程同一时间段只能在一个cpu内核中运行,如果线程数小于cpu内核数,那么将有多余的内核空闲。


http://www.ppmy.cn/news/254389.html

相关文章

MIPS单周期CPU

一、单周期CPU介绍 单周期CPU顾名思义就是一个指令周期内只执行一条指令的CPU。 比如下面的指令 在单周期CPU中执行的过程,体现为: 在每一个周期(时钟上升沿),就执行完一条指令。 二、CPU设计 CPU是由一个指令存储器(IM,instr…

CPU详解

一、CPU简介 现在电脑早已成为人们生活中不可或缺的一部分了,而熟悉电脑的人都知道电脑里面有个CPU,但是要问起来CPU到底是什么,恐怕很多人都是说不上来一个道道的,而今天就来给大家讲解一下CPU到底是什么和一些CPU重要的参数。 …

CPU基础知识详解

CPU基础知识详解 1.CPU的组成: 1.CPU的组成部分: cpu的三大组成部分分别是:1、运算器;2、控制器;3、寄存器 按照功能划分(主要组成):控制器、寄存器、运算器 还有说法(都是主要大概):CPU 的内部由寄存…

CPU 工作原理(附详细图解)

🌸学习目标🌸 本章我们将从软件工程师的角度去了解计算机是如何工作的,通过对计算机核心工作机制的学习,有利于理解我们平时编程时的一些行为,动作的历史渊源。 在学习 CPU(中央处理器)之前&…

2023/6/6总结

CSS 如果想要实现背景颜色渐变效果&#xff1a; left是从左边开始&#xff0c;如果想要对角线比如&#xff0c;左上角就是left top&#xff0c;渐变效果始终是沿着一条线来实现的。 下面是跟着视频教学用flex布局写的一个移动端网页&#xff1a; html代码&#xff1a; <!…

操作系统死亡启示录

操作系统死亡启示录 文 | itlaoyou-com&#xff0c;作者 | 曹亦卿 以斗争求和平&#xff0c;则和平存。以妥协求和平&#xff0c;则和平亡。 规律不因时代变迁而失效。一代伟人从战争与炮火中总结出的道理&#xff0c;在和平时期的经济与科技博弈中再一次展现智慧。 美国贸…

我们都是IT民工---------流浪人IDE开发札记

你生命中的有些东西终究会失去&#xff0c;比如我住了6年的陈寨&#xff0c;这个聚集了郑州十几万IT民工的地方&#xff0c;说拆就拆了。再比如我玩了3年的坦克英雄&#xff0c;这个带给我太多快乐的游戏&#xff0c;说停就停了。 编程对我而言是种爱好&#xff0c;我上学6年&a…

29.html5 移动端开发总结

手机与浏览器 浏览器: 移动端开发主要针对手机&#xff0c;ipad等移动设备&#xff0c;随着地铁里的低头族越来越多&#xff0c;移动端开发在前端的开发任务中站的比重也越来越大。各种品牌及尺寸的手机也不尽相同。尺寸不同就算了分辨率&#xff0c;视网膜屏 自动的各种内核的…