【操作系统】计算机大脑CPU

news2024/12/23 19:22:55

1.CPU组成机构和存储器层级

(1)CPU是计算机硬件系统的核心部件-大脑

  • 结构:运算器+控制器(两个部件里面有寄存器组)
  • 通过CPU内部的总线进行通信

(2)单核CPU架构

  • 控制器Control Unit简称【CU】
    • 计算机的指挥系统,用来控制计算机其他组件的运行。
  • 运算器 Arithmetic/Logic Unit 简称【ALU】
    • 运算功能,用来完成各种二进制编码做算数运算和逻辑运算,包括加减乘、与或非运算,控制器+运算器=CPU
    • 运算器和控制器两大部件大多数集成在同一芯片,统称为中央处理器(Central Processing Unit ,CPU)
  • 寄存器组 Register
    • 用暂存指令或数据、存储即将执行的指令等多个不同类型的寄存器

在这里插入图片描述

(3)多核CPU架构

  • 每个核心是可以运行指令的独立单元,包含了ALU/CU和寄存器
  • 每个核心配备L1 Cache和L2 Cache,多个核心共享L3 Cache

在这里插入图片描述

  • 现在的服务器可以支持多个处理器(CPU),2个CPU,4个CPU等
  • 假如4个CPU每块CPU内有8个核心,系统可对外提供32核计算能力
  • 总核数=物理CPU个数 X 每颗物理CPU的核数
  • 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

(4)储存器的层级架构

  • L0 寄存器

    • 离CPU最近 ,材料贵费用高,存储大小几字节,速度最快
  • L1-Cache

    • 在 CPU 中,离CPU有一定距离,存储空间几十到几百KB
  • L2-Cache

    • 在 CPU 中,离CPU的距离比如L1更远点,存储空间几MB到几十MB
  • L3-Cahce

    • 在 CPU 中,离CPU的距离比如L2更远点,存储空间几MB到几十MB
  • 内存

    • 位于主板上,由半导体硅制作,通过总线和 CPU 连接,几G到几百G不等,成本比上面更低
  • 硬盘/SSD

    • 硬盘分机械硬盘和固态硬盘SSD,几百G到几十T不等,成本比上面更低

在这里插入图片描述

2.服务器CPU架构(X86、ARM)

(1)什么是指令

  • 中央处理器CPU,执行用户和操作系统下发的指令
  • 指令是以0 1二进制形式组织的机器码,在硬件物理底层-01用来控制高低电位
  • 一个加法运算,在X86处理器上的的二进制代码【01001000 00000001 11000011】被称为机器码

(2)什么是指令集

  • 指令集规定了一种CPU架构实现哪些【指令的集合】

(3)CPU架构指令集分类

  • 精简指令集(Reduced Instruction Set Computing,RISC)
    • 每个指令的运行时间短,完成的动作简单,但做复杂的多用需要多个指令来完成,一般小于200条指令
    • ARM架构的CPU:ARM公司做设计 给其他厂商生产CPU,如 高通、三星、苹果、华为海思、联发科,市面手机/小型设备等是采用这个架构,耗电少/电压低,面向移动领域
  • 复杂指令集(Complex Instruction Set Computer,CISC)
    • 指令数目多且支持的动作复杂,指令的长度不相同,执行消耗时也比较长,一般大于200条指令
    • X86架构的CPU:厂商有AMD、Intel公司等,在家用、商用领域,功耗大,在性能和兼容性方面做的更好

(4)CPU 32位和64位是什么意思

  • 表示一次可以处理多少位二进制,8位的CPU一次只能处理一个字节
  • 32位的CPU一次就能处理4个字节,64位的CPU一次可以处理8个字节
  • 所以64位的CPU在处理速度上比32位的CPU理论上快了一倍

(5)安装软件的时候 经常看到对应的适合操作系统有 X86、X64

  • X86是指Intel 的开发的一种32位指令集, 是一种cisc复杂指令集,所有Intel/AMD早期的CPU都支持这种指令集,32位操作系统则可以安装在32位(32位CPU)或64位(64位CPU)电脑上,但是浪费性能空间。
  • X64是x86架构的兼容64位的CPU叫X64,后来intel公司也迈向64位时取的名称叫X86_64,intel和amd的X86架构CPU指令集上有很大差别但相互兼容,所以软件可以直接用,X64支持64位的系统,64位操作系统只能安装在64位处理器的电脑上(CPU必须是64位的)。

(6)关于ARM和X86选择问题

  • ARM:

    • 近年来Arm64架构突起,先进制作工艺技术,大幅度降低单核功耗以及更高的CPU核心数

    • Arm64架构芯片用于低功耗和高性能,大幅度提升性价比

    • 比如华为鲲鹏920高性能芯片,苹果电脑M1芯片性能强劲,国产化不断将 Arm64 推向军队、政府、国企的供应商

  • X86:

    • X86更偏向于高性能的台机,比如服务器,适合绝大部分用户的上云场景,不如做游戏块,用X86架构
    • 是一般用户选择阿里云服务器的主要架构,都是基于x86计算架构来选择的

3.常见CPU信息和超线程

(1)什么是CPU的超线程

  • 超线程的英文是HT技术,全名为Hyper-Threading,中文名又名超线程。
  • 把一颗CPU当作两颗来用,将一颗具有超线程功能的物理CPU变成两颗逻辑CPU。
  • 每颗CPU可以有多个线程,常规数量是两个,如1核2线程,2核4线程,4核8线程。

(2)超线程的好处

  • 多个物理CPU,各个CPU通过总线进行通信,效率比较低。
  • 利用超线程技术模拟出两个逻辑内核共享同一个CPU资源,效率更高。
  • 同一时刻可以有两个线程都占用CPU资源,两个线程都可以得到执行,实现同一时间执行两个线程的并行操作。
  • 允许两个线程同时不冲突的使用CPU中的资源,通过超线程的技术来达到提高性能。

注意:CPU 的多线程和程序的多线程是不同的,CPU 的多线程是硬件多线程,程序的多线程是软件多线程,硬件的多线程是可以被当作一个 CPU 核心来调度执行任务的 CPU 资源

(3)阿里云ECS服务器 CPU规格说明

  • 开启超线程:如果将每核线程数置为2,则该实例规格有2*2=4个vCPU,默认情况下实例规格开启超线程配置。
  • 关闭超线程:如果关闭超线程配置,则1个物理核只能运行1个线程,实例的vCPU数量等于物理核数,为2

在这里插入图片描述

(4)如何查看CPU的相关信息

CPU的相关信息存储在 文件 /proc/cpuinfo 里面

在这里插入图片描述

  • 查看CPU架构:uname -a

在这里插入图片描述

  • 查看CPU厂家信息:cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

在这里插入图片描述

  • 查看每个CPU的core,即常说的核心数:cat /proc/cpuinfo | grep “cpu cores” | uniq

在这里插入图片描述

  • 查看服务器总的核心数,也就是逻辑CPU个数:cat /proc/cpuinfo | grep “processor” | wc -l
    • 物理cpu个数 * 每个cpu的核心数 * 超线程数

在这里插入图片描述

4.CPU执行指令的内存空间

(1)什么是内核

  • 内核是一组应用程序,这类程序能够控制所有硬件及计算机活动。
  • 内核抽象计算机内部硬件资源,并统一管理对外提供支持,内核操作 = 计算机硬件操作
  • 内核是计算机资源的最大管理者,比如:CPU进程管理、内存管理、文件系统管理、网络接口管理等。

在这里插入图片描述

(2)什么是内核态核用户态

  • 操作系统把进程的运行内存分为两个区域
    • 内核空间(kernel space),只有内核程序访问,也叫进程内核态,可以直接访问内存、磁盘等资源。
    • 用户空间(user space),专门给应用程序使用,也叫进程用户态,只能访问受限的用户资源。
  • 其实就是CPU的两种工作状态:内核态和用户态,权限高和权限低
  • 程序最终编译、解释成一条一条的CPU指令,然后指令都是CPU都在执行

在这里插入图片描述

(3)为什么要分内核态和用户态

  • 目标:提高操作系统的稳定性及可用性,确保和平稳定

  • 在CPU的所有指令中,有些指令是非常危险的,如果错用会导致系统崩溃,比如申请,释放内存,杀进程等。

  • 如果所有的程序都可以使用这些指令,那么系统崩溃的概率将大大增加

  • CPU将指令分为特权指令和非特权指令

    • 常规将CPU特权等级分为4个级别:Ring0~Ring3
    • Linux系统只是用了【Ring0和Ring3】,运行在Ring0级别时称为运行在内核态,CPU可以执行任何指令,运行在Ring3级别时称为运行在用户态,CPU可以执行部分指令。
  • CPU处于什么工作空间,实际上代表的时当前CPU正在执行什么级别的指令

在这里插入图片描述

(4)什么时候会从用户态切换到内核态

  • 用户态的程序需要像操作系统申请更高权限的操作时,就通过【系统调用】向内核发起请求。
  • 系统调用过程中,会发生CPU的上下文切换,CPU寄存器会先保存用户态的状态,然后加载内核态相关内容。
  • 系统调用结束后,CPU寄存器要恢复原来保存的用户态,继续运行进程。
  • 一次调用,发生两次CPU上下文切换

5.CPU的上下文切换

(1)什么是操作系统的【中断】

  • CPU在执行【当前程序】时系统出现了【某种信号】使得CPU必须停止当前程序,去执行【另一个程序】来处理的紧急事务
  • 处理结束后CPU在返回到原先暂停的程序继续执行,这个过程称为【中断】。

(2)中断操作分类

  • 内部中断:指令执行时由CPU主动产生
  • 外部中断:系统外部设备引发的程序中断

(3)Linux是一个多任务的操作系统

  • 支持的任务同时运行数量远远大于CPU的数量。
  • CPU运行程序,每个任务运行之前,CPU需要知道在哪里加载和启动任务。
  • 这些信息存储-依赖CPU寄存器和程序计数器。
  • 寄存器是CPU里面空间小但速度极快的内存,程序计数器存储CPU正在执行的或下一条要执行的指令的位置。

(4)什么是cpu的上下文切换

  • cpu寄存器和程序计数器是cpu在运行任务前依赖的环境,也叫cpu上下文
  • cpu的上下文切换先把前一个任务的cpu上下文保存起来【下次才知道任务从哪里加载+运行】
  • 再加载新任务的上下文到寄存器和程序计数器进行运行任务,每次切换 在【保存和恢复】上下文耗时几十纳秒 或 微秒 ,1μs【微秒】 = 1000ns【纳秒】

(5)cpu的上下文切换的场景

  • 【系统调用切换】
    • 即内核态和用户态的切换,一直是同一个进程在运行,不切换进程
    • 一次系统调用的过程发生两次cpu上下文切换,切换过去,切换回来
  • 【进程上下文切换】
    • 每个cpu都维护了一个就绪队列,存放活跃进程,根据情况进行调度
    • 进程是由内核来管理和调度的,进程的切换只能发生在【内核态】
    • 比如你用【网易云听着歌、玩着英雄联盟】因为现在电脑多CPU多核心配置好,所以感觉不到切换
  • 【线程上下文切换】
    • 进程是资源拥有的基本单位,线程是调度的基本单位,当进程只有一个线程的时候,可以认为进程就等于线程
    • 前后线程同属于一个进程,切换时虚拟内存资源不变
    • 上下文切换时需要保存的是线程私有数据,比如栈和寄存器
    • 同进程内的线程切换,要比多进程间的切换消耗更少的资源,所以开发中用多线程代替多进程的原因
  • 【中断上下文切换】
    • 快速响应硬件,中断处理会打断进程的正常调度和执行,转而调用中断处理程序,响应设备事件
      进程是资源拥有的基本单位,线程是调度的基本单位,当进程只有一个线程的时候,可以认为进程就等于线程
    • 前后线程同属于一个进程,切换时虚拟内存资源不变
    • 上下文切换时需要保存的是线程私有数据,比如栈和寄存器
    • 同进程内的线程切换,要比多进程间的切换消耗更少的资源,所以开发中用多线程代替多进程的原因
  • 【中断上下文切换】
    • 快速响应硬件,中断处理会打断进程的正常调度和执行,转而调用中断处理程序,响应设备事件
    • 打断其他进程时,就需要保存该进程状态,这样在设备事件结束后,就可以从原来的状态恢复

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/71869.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python使用Opencv图像处理方法完成手势识别(二)

Opencv完成手势识别根据坐标识别寻找最低点计算其他点与最低点的距离通过距离阈值判断手指根数和手势效果展现完整代码当我们把手近似出来后会得到一组轮廓的点坐标,我自己手势识别的思路就是根据点坐标来判断手势。根据坐标识别 寻找最低点 所谓寻找最低点&#…

浅谈Nacos注册中心集群分布式架构设计

前言 Nacos的压测性能是非常好的,这里是Nacos官方的压测报告。3节点(CPU 16核,内存32G)规模集群,压测容量服务数可达60W,实例注册数达110W,集群运行持续稳定,达到预期;注册/查询实例TPS达到 13…

ModStartBlog v6.3.0 任务调度重构,UEditor 升级

系统介绍 ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场,后台一键…

跨设备链路聚合 M-LAG

M-LAG(Multichassis Link Aggregation Group)即跨设备链路聚合组,是一种实现跨设备链路聚合的机制,如下图所示,将SwitchA和SwitchB通过peer-link链路连接并以同一个状态和Switch进行链路聚合协商,从而把链路…

学校介绍静态HTML网页设计作品 DIV布局学校官网模板代码 DW大学网站制作成品下载 HTML5期末大作业

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

iOS app上架app store流程详解​

前提条件​ 在有效期内的苹果开发者账号(类型为个人或者公司账号)。还有一种情况,就是你的Apple ID被添加到公司开发者账号团队里面,这样也是可以的,但是需要叫管理员给你开通相应的账号权限,如下截图&…

[附源码]Python计算机毕业设计Django在线图书销售系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,我…

Vue | 有关Vue2路由知识点的一些总结,以及Vue3路由做出了哪些调整?

目录 Vue2: 1. 路由: 2. 路由规则: 3. 实现切换(active-class可配置高亮样式) 4. 指定展示位置 5. 路由的query参数 6. params传参: 7. 多级路由 8. 路由的props配置 9. 的replace属性 10. 编…

Android databinding之BindingMethod与BindingMethods介绍与使用(五)

一、介绍 前面几篇文章已介绍了很多data binding的用法,今天我将会介绍一个新的方法绑定BindingMethod的用法。 BindingMethod,从名字可以看出是绑定方法的,绑定的一般都是和布局有关,通过绑定来提高布局可扩展性。 二、使用 Bin…

把盏言欢,款款而谈,ChatGPT结合钉钉机器人(outgoing回调)打造人工智能群聊/单聊场景,基于Python3.10

就像黑火药时代里突然诞生的核弹一样,OpenAI的ChatGPT语言模型的横空出世,是人工智能技术发展史上的一个重要里程碑。这是一款无与伦比、超凡绝伦的模型,能够进行自然语言推理和对话,并且具有出色的语言生成能力。 好吧&#xff…

资产扫描神器ARL增强改造

拉取项目首先从GitHub克隆到服务器上。git clone https://github.com/ki9mu/ARL-plus-docker/修改配置文件因为ARL在配置文件里设置了黑名单,有时候项目为GOV或者EDU之类的时候无法进行扫描,所以在这里修改一下配置文件就可以解除限制。cd ARL-plus-dock…

Spring Boot3.0 GA系列全新版本-全新体验-学习案例1

SpringBoot3.0 GA 2022-11-24这是伟大的一天,Spring Boot进入了3.0时代,并会叩开JDK全面升级的浪潮 文章目录SpringBoot3.0 GA技术支持一、新建第一个mode?1.1、打开IDEA,新建项目1.2、选择 版本 和 依赖1.3、查看项目结构1.4、配…

vscode配置remote ssh

1. 安装插件 设置界面 右键最左边tab栏: 主体: vscode 插件: Remote SSH Linux主体: vscode-server 插件: C/C, CMake, CMake Tools, CodeLLDB, Rainbow Brackets, vscode-proto3, SVN 虚拟化主体: multipass linux发行版(比如ubuntu) 补充: multipass实例本地端口…

【C++ unordered_set set 和 unordered_map 和 map】

文章目录前言简单介绍哈希表,哈希结构什么时候用哈希表unordered_map操作likou第一题 两数之和unordered_set 基础操作unordered_set 实现总结前言 今天重新打开力扣,看到以前的签到题两数之和,以前的方法是双指针暴力解法,偶然看…

asp.net校园二手物品交易网站

目录 摘 要 Ⅰ Abstract Ⅱ 第一章 概述 1 1.1网站的开发背景 1 1.1.1学生二手物品交易置换网站的开发背景 1 1.1.2学生二手物品交易活动的现状 1 1.2 学生二手物品交易置换网站的研究方向和内容 2 1.2.1研究方向 2 1.2.2研究内容 2 1.3 学生二手物品交易置换网站的设计目标 2…

transformer中QKV的通俗理解(剩女与备胎的故事)

用vit的时候读了一下transformer的思想,前几天面试结束之后发现对QKV又有点忘记了, 写一篇文章来记录一下 参考链接: 哔哩哔哩:在线激情讲解transformer&Attention注意力机制(上)在线激情讲解transformer&Attention注意力机制(上&…

SpringCloud全系列知识(5)——微服务的部署(Docker)

微服务的部署(Docker) 一 初识Docker 1.项目部署问题 大型项目组件较多,运行环境较为复杂,部署和维护困难依赖关系复杂,容易出现兼容性问题开发,测试,生产环境有差异 2.解决依赖的兼容问题 …

[附源码]Python计算机毕业设计Django疫情期间小学生作业线上管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,我…

差分方程解的稳定性

Heine定理 存在的充要条件是: 取定义域内的任意数列,有 差分的定义 考虑离散型变量 一阶差分为: 二阶差分为: 线性差分方程的解 非齐次差分方程的解 满足初始条件的n阶非齐次线性差分方程 的解是存在且唯一的 非齐次线性差分方程的通解结构:齐次差分方程的解 线性相关与…

提升规则自治能力与原生分析能力、支持视频流接入处理

11 月, eKuiper 团队转入 1.8.0 版本的开发周期之中,目前已完成了一部分实用的新功能:添加了视频流 source,将边缘流式处理能力扩展到视频流领域,可以处理摄像头的视频流或者网络中的直播视频流;发布了通用…