操作系统——cpu、内存、缓存介绍

一、内存是什么

内存就是系统资源的代名词,它是其他硬件设备与 CPU 沟通的桥梁, 计算机中的所有程序都在内存中运行。其作用是暂时存放CPU的运算数据,以及与硬盘交换的数据。也是相当于CPU与硬盘沟通的桥梁。只要计算机在运行,CPU就会把需要运算的数据调到内存中进行运算,运算完成后CPU再将结果传出来。

它的容量与性能如果存在瓶颈,即使 CPU 再快,也是枉然。内存物理结构由内存芯片、电路板、控制芯片、相关支持模块等组成,内存芯片结构比较简单,核心是存储单元,支持模块是地址译码器和读写控制器。

二、cpu是什么

按照标准的说法,电脑CPU即是电脑的中央处理器,是英文Central Processing Unit三个单词首个字母的缩写。

CPU其实就是一块超大规模的集成电路板,是计算机的核心部件,承载计算机的运算和控制功能,是计算机指令的最终解释模块和执行模块。说到CPU,就不得不说内存了,二者是关系非常密切的硬件设备。开发工程师也必须熟悉CPU和内存的特点,让它们以自己期望的方式执行相关指令。

  • 控制器

由控制单元、指令译码器、指令寄存器组成。其中控制单 元是 CPU 的大脑,由时序控制和指令控制等组成;指令译码器是在控制单元的协调下完成指令读取、分析并交由运算器执行等操作。 指令寄存器是存储指令集,当前流 行的指令集包括 X86、 SSE、 MMX 等。控制器有点像 个编程语言的编译器,输入 0与1的源码流,通过译码和控制单元对存储设备的数据进行读取,运算完成后,保存回寄存器,甚至是内存。

  • 运算器

运算器的核心是算术逻辑运算单元,即 ALU,能够执行算术运算或逻辑运算等各种命令,运算单元会从寄存器中提取或存储数据。相对控制单元来说,运算器是受控的执行部件。任何编程语言诸如 a+b 的算术运算,无论字节码指令,还是汇编指令, 最后一定会以 0 与 1 的组合流方式在部件内完成最终计算,并保存到寄存器,最后送 出 CPU。平时理解的栈与堆,在 CPU 眼里都是内存。

  • 寄存器

寄存器是 CPU 的高速缓存 LI、 L2,缓存容量是在组装计算机时必问的 两个CPU 性能问题之一。缓存结构和大小对 CPU 的运行速度影响非常大,毕竟 CPU 的运行速度远大于内存的读写速度,更远大于硬盘。基于执行指令和热点数据的时间 局部性和空间局部性, CPU 缓存部分指令和数据,以提升性能。但由于 CPU 内部空 间狭小且结构复杂,高速缓存远小于内存空间。

CPU性能的好坏直接决定整个电脑的性能。如果我们把电脑比喻成一辆汽车,那么这个CPU就相当于汽车里面的发动机。我们都知道,发动机的好坏,是决定这辆汽车能不能跑得快最关键指标之一。

CPU在电脑里面负责大部分数据的运算处理,因此也叫中央处理器。可是为什么是大部分而不是所有数据的运算处理?因为CPU在电脑硬件中的地位绝对是很崇高的,以CPU的牛逼能力,只适合用来处理运算重要且关键的数据,一些琐碎的工作也交给CPU来运算处理,就会让CPU分心,从而降低CPU的性能。
怎么理解呢,再打个简单比方。一家饭店的菜做得非常好吃,生意爆满。那么,生意爆满在很大程度上是因为里面的胖厨子烧菜非常棒,而这个胖厨子除了烧菜还能不能去扫地洗碗呢,当然也是可以的。但饭店老板一定不会让这个胖厨子去扫地洗碗,原因你懂得,如果他去扫地洗碗,那一定会占用烧菜的时间,为了保证饭店生意爆满,如果你是老板,一定会告诉厨子,你只管烧菜,扫地洗碗我另外安排人做。

但是,在电脑里面,有哪些数据的运算处理是CPU不去处理的呢?这包括有:音频、网络的编码译码和一些图像处理。这些工作都由声卡、网卡和显卡来完成。而CPU通常并不直接处理,只是起一个指挥作用,安排声卡、网卡和显卡在适当时候处理。具体是怎样的,我们在以后的文章中再进行介绍。

总结一下本文的几个概念和观点:
1、CPU就是中央处理器,是电脑中最核心的硬件之一;
2、CPU性能的好坏直接决定整个电脑的性能;
3、CPU的主要作用是运算处理电脑运行过程中最重要且关键的数据,但不包揽所有的运算处理;


三、缓存是什么
缓存是CPU的一部分,存在于CPU里。

四、内存和缓存的关系

由于CPU的存取速度很快,而内存的速度很慢,为了不让CPU每次都在运行相对缓慢的内存中操作,缓存就作为一个中间者出现了。有些常用的数据或是地址,就直接存在缓存中,这样,下一次调用的时候就不需要再去内存中去找了。因此,CPU每次回先到自己的缓存中寻找想要的东西(一般80%的东西都可以找到),找不到的时候再去内存中获取。

最初的缓存生产成本很高,价格昂贵,所以为了存储更多的数据,又不希望成本过高,就出现了二级缓存的概念,他们采用的并不是一级缓存的SRAM(静态RAM),而是采用了性能比SRAM稍差一些,但是比内存更快的DRAM(动态RAM)

五、内存存储的数据是文档结构的吗

计算机要处理的信息是多种多样的,如数字、文字、符号、图形、音频、视频等,这些信息在人们的眼里是不同的。但对于计算机来说,它们在内存中都是一样的,都是以二进制的形式来表示。

内存条是一个非常精密的部件,包含了上亿个电子元器件,它们很小,达到了纳米级别。这些元器件,实际上就是电路;电路的电压会变化,要么是 0V,要么是 5V,只有这两种电压。5V 是通电,用1来表示,0V 是断电,用0来表示。所以,一个元器件有2种状态,0 或者 1。

我们通过电路来控制这些元器件的通断电,会得到很多0、1的组合。例如,8个元器件有 2的8次方=256 种不同的组合,16个元器件有 2的16次方=65536 种不同的组合。虽然一个元器件只能表示2个数值,但是多个结合起来就可以表示很多数值了。

我们可以给每一种组合赋予特定的含义,例如,可以分别用 1101000、00011100、11111111、00000000、01010101、10101010 来表示 C、语、言、中、文、网 这几个字,那么结合起来 1101000 00011100 11111111 00000000 01010101 10101010 就表示”C语言中文网“。

一般情况下我们不一个一个的使用元器件,而是将8个元器件看做一个单位,即使表示很小的数,例如 1,也需要8个,也就是 00000001。

1个元器件称为1比特(Bit)或1位,8个元器件称为1字节(Byte),那么16个元器件就是2Byte,32个就是4Byte,以此类推:

8×1024个元器件就是1024Byte,简写为1KB;

8×1024×1024个元器件就是1024KB,简写为1MB;

8×1024×1024×1024个元器件就是1024MB,简写为1GB。

你看,在内存中没有abc这样的字符,也没有gif、jpg这样的图片,只有0和1两个数字,计算机也只认识0和1。所以,计算机使用二进制,而不是我们熟悉的十进制,写入内存中的数据,都会被转换成0和1的组合。


六、内存地址是什么

内存地址是一个唯一的代表某个存有数据的内存单元的数值编码。

七、内存和cpu的关系

CPU是负责运算和处理的,内存是交换数据的。

当程序或者操作者对CPU发出指令,这些指令和数据暂存在内存里,在CPU空闲时传送给CPU,CPU处理后把结果输出到输出设备上,输出设备就是显示器,打印机等。在没有显示完之前,这些数据也保存在内存里,如果内存不足,那么系统自动从硬盘上划分一部分空间作为虚拟内存来用。但写入和读取的速度 跟物理内存差的很远很远,所以,在内存不足的时候,会感到机器反应很慢,硬盘一直在响。

512M的物理内存如果增加到2GB,你会感到电脑变得飞快。但内存512,即使你把CPU从单核换成双核,加速感觉也不明显。

如果你本来就有2G内存,再增加2G,使用起来几乎没有多少性能的改变。

在理论上,物理内存太大反而会减慢速度,因为它增加了寻址的时间。

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

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

相关文章

【C++那些事儿】深入理解C++类与对象:从概念到实践(下)| 再谈构造函数(初始化列表)| explicit关键字 | static成员 | 友元

📷 江池俊:个人主页 🔥 个人专栏:✅C那些事儿 ✅Linux技术宝典 🌅 此去关山万里,定不负云起之望 文章目录 1. 再谈构造函数1.1 构造函数体赋值1.2 初始化列表1.3 explicit 关键字 2. static成员2.1 概念…

EasyPoi 教程

文章目录 EasyPoi教程文档1. 前传1.1 前言 这个服务即将关闭,文档迁移到 http://www.wupaas.com/ 请大家访问最新网站1.2 Easypoi介绍1.3 使用1.4 测试项目1.5 可能存在的小坑 2. Excel 注解版2.1 Excel导入导出2.2 注解注解介绍ExcelTargetExcelEntityExcelCollectionExcelIgn…

【PTA】L1-026 L1-027(c++) L1-028 L1-029 L1-030 L1-031(C)第五天

目录 L1-026 I Love GPLT 题解: L1-027 出租 题解(c): L1-028 判断素数 题解: L1-029 是不是太胖了 题解: L1-030 一帮一 题解: L1-031 到底是不是太胖了 题解: L1-026 I…

智慧城市与数字经济:共创城市新价值

随着科技的快速发展,智慧城市与数字经济已成为推动城市现代化进程的重要引擎。它们不仅提升了城市治理的效率和公共服务水平,还为城市经济发展注入了新的活力。本文旨在探讨智慧城市与数字经济如何共同创造城市新价值,并分析其面临的挑战与发…

R语言复现:如何利用logistic逐步回归进行影响因素分析?

Logistic回归在医学科研、特别是观察性研究领域,无论是现况调查、病例对照研究、还是队列研究中都是大家经常用到的统计方法,而在影响因素研究筛选自变量时,大家习惯性用的比较多的还是先单后多,P<0.05纳入多因素研究&…

【考研学子必看 ★2024考研国家线及调剂策略(2)】

----------------------------------------------------------------------------------------------------- 考研复试科研背景提升班 教你快速深入了解掌握考研复试面试中的常见问题以及注意事项,系统的教你如何在短期内快速提升自己的专业知识水平和编程以及英语…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:TimePicker)

时间选择组件,根据指定参数创建选择器,支持选择小时及分钟。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 无 接口 TimePicker(options?: TimePickerOptions)…

银河麒麟V10SP3操作系统-网络时间配置

1、动态网络配置 打开终端,以网口 eth0 为例: nmcli conn add connection.id eth0-dhcp type ether ifname eth0 ipv4.method auto其中“eth0-dhcp”为连接的名字,可以根据自己的需要命名方便记忆和操作 的名字;“ifname eth0”…

CVE-2023-49442 利用分析

1. 漏洞介绍 JEECG(J2EE Code Generation) 是开源的代码生成平台,目前官方已停止维护。JEECG 4.0及之前版本中,由于/api接口鉴权时未过滤路径遍历,攻击者可构造包含 ../ 的url绕过鉴权。攻击者可构造恶意请求利用 jeecgFormDemoController.do…

Redis安装(单机、主从、哨兵、集群)

一、单机安装Redis 首先需要安装Redis所需要的依赖: yum install -y gcc tcl 复制 下载Redis wget https://gitcode.net/weixin_44624117/software/-/raw/master/software/Linux/Redis/redis-6.2.4.tar.gz 复制 创建安装目录 mkdir /usr/local/redis 复制 …

走进AI新时代:织信低代码的实践与启示

最近 AIGC 很火,在各个领域都玩出了一些新花样。 比如在“低代码”领域,可以通过 AI 自动生成一个网站门户。 但这会带来开发效率的提升吗?如果 AI 能快速开发网站、APP等业务应用,那么 AI 生成能否完全取代低代码的可视化配置&a…

产品实操——立项阶段

一、项目开发设计流程: 立项阶段:基本信息、主要方案、市场调研、用户调研、分析得出结论 设计阶段:原型、UI效果图、结构流程设计 开发阶段:前端、后端、数据库、运维等 测试阶段:可用性测试、性能测试、单元测试、集…

跨平台大小端判断与主机节序转网络字节序使用

1.macOS : 默认使用小端 ,高位使用高地址,转换为网络字节序成大端 #include <iostream> #include <arpa/inet.h> int main() {//大小端判断union{short s;char c[sizeof(short)];}un;un.s = 0x0102;printf("低地址:%d,高地址:%d\n",un.c[0],un.c[1]);if …

【安装教程】在Ubuntu上安装MySQL和InfluxDB

一、安装MySQL 官方文档 MySQL :: MySQL Installation Guide :: 7.1 Installing MySQL on Linux Using the MySQL Yum Repositoryhttps://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/linux-installation-yum-repo.html 1、进入下列网站&#xff0c;选择合适版本的…

第0章 学习包介绍

一、考试介绍 二、考点分析 白盒测试、黑盒测试、面向对象测试、web测试&#xff1b;下午题考的概率很大&#xff1b; 上午题考点&#xff1a; 三、资料包 四、如何学习

每日OJ题_牛客_杨辉三角的变形(IO型OJ)

目录 牛客_杨辉三角的变形 解析代码 牛客_杨辉三角的变形 杨辉三角的变形_牛客题霸_牛客网 解析代码 这题通过的代码首找规律的代码&#xff1a;&#xff08;在下面还贴了普通思路&#xff0c;但超过内存限制的代码&#xff09; 观察分析如果n % 2 1则该行的第一个偶数的位…

移动端研发技术的进化历程

移动端研发技术 移动端研发技术主要分为原生开发和跨平台开发。本章主要介绍一下移动开发技术的过去、当下和未来&#xff0c;一步一步介绍移动技术的进化历程。 原生开发 原生应用程序是指某一个移动平台&#xff08;比如iOS或Android&#xff09;所特有的应用&#xff0c;使…

自适应宽带波束形成:GSC(generalized sidelobe canceller)广义旁瓣消除器原理介绍和实现代码

GSC&#xff08;generalized sidelobe canceller, 广义旁瓣消除器&#xff09;可以将有约束的LCMV算法转换为无约束的实现结构。网上关于GSC的介绍对细节方面介绍得不详细&#xff0c;并且主要是应用在窄带。宽带的GSC应用范围也比较广泛&#xff0c;例如在智能音箱等产品的麦克…

EEPROM ADDRESS BYTE长度说明

1、24C16 ADDRESS BYTE 2、24C32 ADDRESS BYTE 3、ADDRESS BYTE 长度说明 容量小于16Kbits&#xff08;含&#xff09;的EEPROM 地址是8位的 容量大于16Kbits的EEPROM地址是16位的 4、操作说明 例如&#xff1a;STM的HAL库函数中 HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi…

Clickhouse MergeTree 原理(一)

作者&#xff1a;俊达 MergeTree是Clickhouse里最核心的存储引擎。Clickhouse里有一系列以MergeTree为基础的引擎&#xff08;见下图&#xff09;&#xff0c;理解了基础MergeTree&#xff0c;就能理解整个系列的MergeTree引擎的核心原理。 本文对MergeTree的基本原理进行介绍…