计算机组成入门知识

  前言👀~

数据库的知识点先暂且分享到这,接下来开始接触计算机组成以及计算机网络相关的知识点,这一章先介绍一些基础的计算机组成知识

一台计算机如何组成的?

存储器

CPU

cpu的工作流程

主频

如何衡量CPU好坏呢?

指令

操作系统

操作系统功能

操作系统"内核" 


如果各位对文章的内容感兴趣的话,请点点小赞,关注一手不迷路,如果内容有什么问题的话,欢迎各位评论纠正 🤞🤞🤞

12b46cd836b7495695ce3560ea45749c.jpeg

个人主页:N_0050-CSDN博客

相关专栏:java SE_N_0050的博客-CSDN博客 java数据结构_N_0050的博客-CSDN博客


一台计算机如何组成的?

cpu(控制器和运算器等)、存储器(主存和辅存)、输入设备、输出设备


计算机工作流程:这里我简单举个例子去描述,你用鼠标点开了一个游戏(指令和数据),存储到存储器当中(从外存中加载到内存中),然后cpu从存储器中取出指令对其解码后进行运算,再传回存储器然后由输出设备进行输出显示到你的电脑上

存储器

提到存储器就可以想到内存和外存

内存:通常指的是随机存取存储器,一种主存储器,读写速度快,存储容量小,主要存储计算机正在执行程序和数据(程序执行的时候需要先放到内存当中才能被cpu处理),当你打开一个程序,操作系统会将这个程序从外存中被加载到内存当中,以便cpu快速访问和执行。另外内存属于易失性存储器,断电的时候数据会丢失

内存的作用:

存储临时数据:内存用于存放计算机在运行过程中需要快速访问和修改的临时数据。例如,当你运行一个程序时,这个程序的代码和数据会被加载到内存中,以便CPU快速访问和执行。

提高程序运行效率:操作系统和应用程序执行的时候,其指令和数据会存储到内存当中,因为内存具有快速读写的能力

缓存功能:内存可以作为缓存(主存和辅存之间),以减少访问外存的频率也就是减少访问硬盘的频率这样会节省不少的开销,当数据第一次从外存中加载到内存当中之后,下次再访问相同的数据的时候,我们直接从内存中进行读取即可,这样能提升我们的访问速度。就比如我们打开一个游戏第一次从外存中加载到内存中(第一次打开这个游戏的过程是不是很慢),我们只要没有关掉它,你再次点击它又回到游戏(这里游戏已经加载到内存中了,你不需要再从外存中读取,再次点击的时候立马回到游戏)


内存的工作原理:

1.加载程序:当我们运行一个程序时,操作系统会将这个程序从外存中被加载到内存当中,这个程序包括可执行文件、相关的数据文件等等

2.CPU访问:cpu通过地址总线快速访问内存中的指令和数据,内存通过数据总线和地址总线和cpu进行通信,快速提供所需数据

3.执行指令:cpu从内存中读取到指令和数据然后去执行这些指令

4.数据交换:cpu处理了这些指令把结果传回内存,内存中的数据发生变化,会临时存储在内存当中直到程序结束明确保存到外存中。

外存:是一种辅助存储器,读写速度慢,存储容量大,主要用于长期存储我们的文件和数据,例如我们的硬盘就是外存,我们会把文件存储在当中。程序运行的时候我们把外存的数据复制到内存,可以把内存看作是外存的高速缓存。硬盘属于非易失性存储器,即使断电我们的文件和数据依然保存在硬盘当中,确保数据的持久性


CPU

CPU中央处理器,就是那块小小的硬件,属于计算机的核心也可以理解为是计算机的大脑,负责处理各种指令,它是由寄存器、运算器(ALU)、控制器组成

加快CPU访问速度:在cpu内部有个高速缓存存储器,也称Cache读写速度比内存还快的存储器,当cpu向内存写入数据,Cache中也会存储,当cpu需要读取这些数据时,这些数据会从高速缓存中读取这些数据(可以这么理解Cache 中的内容是主存中部分内容的副本


Cache又分一级缓存、二级缓存、三级缓存,一级缓存离cpu最近,一级缓存又可以分一级数据缓存和一级指令缓存,一个用于处理数据一个用于对这些数据的指令进行解码,并且两者都能被cpu同时访问,提到了cpu的效率

寄存器:通用寄存器主要负责存储临时的数据和指令,记住cpu拿数据不是直接从内存中拿的,是通过寄存器中获取的

运算器:也称算术逻辑单元(ALU),算术逻辑单元呢又是由算术单元和逻辑单元组成的。算术逻辑单元主要就是负责计算的一个部件

控制器:也称控制单元(CU),控制单元由指令寄存器(IR)、指令译码器(ID)、程序计数器(PC)、操作控制器(OC)、时序产生器组成,可以把它理解为你的上司,它指东你就得往东走,你不能往西走。是cpu的指挥中心,指挥cpu中的各部件按照指令进行工作的部件

指令寄存器:存储当前要执行的指令

指令译码器:对指令进行解码(翻译)

程序计数器(寄存器):存储下一条要执行的指令的地址


cpu的工作流程


1.取指令:首先从程序计数器中得到指令的地址,接着去内存中取指令,然后存储到指令寄存器当中。

2.译指令:从指令寄存器当中取出指令,指令译码器对其进行解码,确定是什么类型的指令以及需要哪些操作数

3.执行指令:如果需要操作数的话cpu会从内存或寄存器当中取操作数(这里可以再细分一个阶段),接着运算器执行解码后指令的操作

4.写回:处理后的结果存储在cpu内部寄存器中,有些情况下会将执行后的结果写回到内存当中。写回阶段的作用就是将数据存储到正确的位置,以便后续指令使用

5.更新pc:当一条指令被取出后,程序计数器会增加(表示下一条要执行的指令的地址)

cpu中断机制:中断顾名思义暂时停止当前的活动,cpu中断分为硬件中断(硬件设备鼠标、键盘点击触发的)和软件中断(软件指令触发的,如系统调用)。举个例子比如我们在玩游戏的时候,女朋友发消息过来你直接切到微信回消息后又继续游戏了,在切微信再切回游戏这个过程简单点说向cpu发起中断请求然后通过上下文完成中断,举个例子你在吃饭然后突然女朋友打电话叫你去接她,你先把这个吃饭的地方的地址记住然后去接她过来然后接着吃饭

上下文信息:保存寄存器、程序计数器等当中的信息

主频

图中的2.90GHz是CPU的主频,可以理解为一秒钟cpu可以执行29亿条指令(不严谨),方便理解,图中的只是个下限,任务管理器可以看到实时主频,主频会根据当前的任务的负载程度,不断变化

当前频率,睿频,也有上限,根据CPU决定越好上限越高
 


如何衡量CPU好坏呢?

最关注的指标有两方面,一个是主频、一个是核心数

最开始CPU都是单个核心(核心可以理解为一个能完成完整计算功能的整体,是由很多的计算单元构成的),然后通过提高集成程度,提高cpu的速度。不断的减小计算单元的体积,然后提高集成程度从而提高cpu的速度,但是体积小到一定程度不能再小了这是就限制住了,现在都是多核心,去提高cpu的速度

举个例子可以把起初的cpu理解成一个小工厂,只有一个车间(单核),车间里的员工负责生产工作(运算器),车间里比员工还牛马的负责搬运工作或者传送信息(寄存器),车间里喊你干活叫你别偷懒指挥你的(控制器)。随着车的销量上去了,但是效率没上去,于是老板就多搞了好多个车间(多核),这样效率就上去了。但是又出现一个问题材料的不断增多(高并发),牛马搬不过来了。于是工厂搞来了手推车(Cache)减轻了这个问题



指令

cpu上能够执行的任务的最小单元(最小单元由 二进制 的方式表示的机器语言)

 指令=操作码+地址码

指令周期是指执行一条指令所需的时间,它通常由若干个机器周期组成。

一个cpu设计的时候,会提供一些可以进行的操作就是支持哪些指令,比如加法指令、读取内存指令、写入内存指令等,这些是cpu能够执行任务的最小单元,执行其他任务的时候都是由这些最小单元构造的

怎么说呢?你给cpu发送一个任务,例如让它帮你去接杯水,得先去拿杯子,去哪里拿呢?要一步一步说清楚说的很细很细,然后去哪里接?也要一步一步说清楚说的很细很细。可以把这一步一步很细致的过程理解为一系列最小单元的指令,通过执行这些最小单元指令,CPU才能逐步完成整个任务


操作系统

操作系统是管理计算机硬件与软件资源的程序/软件

例如Windows10、Windows11、Linux、mac os、ios、Android等

尽管有这么多操作系统,但本质都是为了管理,属于搞管理的 软件(为什么是软件呢?因为我们可以对它进行升级和安装等)

操作系统功能

1.对下管理所有的硬件设备

操作系统毕竟是一个软件,不可能识别所有的硬件设备。但是它知道市面的硬件设备就那么几个大类,每个大类下的硬件设备大概都有哪些功能。例如鼠标左击右击滚轮这种基本的功能,但是呢要是这个鼠标有其他比较新颖一点的功能,这时候操作系统不认识,这时候硬件设备厂商就会提供一个驱动程序(软件)专属于这个硬件设备的,让操作系统可以识别这个新功能,例如罗技鼠标,侧边的按钮你要进行自定义功能,需要下载罗技的这个软件,从而实现自定义,这样就能在你的电脑上用上这个功能了

2.对上要给软件提供稳定的运行环境

什么叫给提供稳定的运行环境呢?进程的隔离性,一个计算机可以同时运行很多个程序,这些程序可以各自独立运行,互相不影响。总不可能你打游戏打着打着,系统突然给你重启

操作系统"内核" 

操作系统"内核" 操作系统里面最核心的功能模块,内核本质上是一种特殊的软件(简单点说内核就是为操作系系统提供驱动、内存管理、网络、IO等功能的软件代码)。它是操作系统中最核心的部分,负责管理系统资源和提供基础服务(系统调用接口、设备驱动、进程管理、资源管理、内存管理一些底层资源的管理)

如何理解操作系统内核呢?可以理解为一个操作系统包含了内核+配套的应用程序等等,配套的应用程序就是系统自带的不能删除的,例如回收站、文件资源管理器等,内核呢就负责执行我们操作系统最核心的功能就是上面说的 对下管理所有的硬件设备(像硬件厂商提供的驱动程序都是在系统内核中执行的)、对上要给软件提供稳定的运行环境。
 


内核呢只有一个,但是要给很多的应用程序提供支持,所以会提供一些系统API给这些应用程序进行调用(系统调用,用户态和内核态交互的接口,每个操作系统提供的系统API是不一样的,我们学java的,jvm对这些系统API进行封装了,所以我们看jvm提供的API是一致的,这里类似jdbc)。这里我们处于用户态的时候发起指令访问系统的硬件资源,我们需要通过系统调用请求内核执行操作,系统调用涉及一些特权指令,所以需要转成内核态去完成,完成后传回结果并且转变回用户态


为了安全性和稳定性,操作系统运行分为内核态和用户态两种运行级别


用户态:用户态运行的进程权限低,不能直接访问硬件资源和系统内存等底层资源

内核态:内核态运行的进程权限高,能访问硬件资源和系统内存等底层资源

总结这样理解用户态和内核态用户态,就当我们程序员自己写的代码生成的程序,我们可以运行这个程序也可以对这个程序的一些代码进行修改。内核态就属于是系统写好的代码,操作系统写好了的并且里面的代码涉及到管理一些底层硬件资源,我们是无法去进行修改的,我们只能通过调用内核提供的系统API去访问这些硬件资源

本章的内容就到这了,这些都是比较基础的内容但也是相当重要的,下一章我们讲讲进程相关的知识💕

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多路h265监控录放开发-(12)完成全部开始录制和全部停止录制代码

xviewer.h 新增 public: void StartRecord();//126 开始全部摄像头录制 void StopRecord();//126 停止全部摄像头录制 xviewer.cpp 新增 //视频录制 static vector<XCameraRecord*> records;//126void XViewer::StartRecord() //开始全部摄像头录制 126 {StopRecord…

leetcode刷题日记

题目描述 解题思路 基本思想&#xff0c;将数组复制一份&#xff0c;按照位置取余&#xff0c;确实做出来了&#xff0c;但是这样时间和空间上的资源比较多。看到切片法&#xff0c;感觉到很新&#xff0c;思路很好&#xff0c;用来记录。 代码 python class Solution:def ro…

C++设计模式——Flyweight享元模式

一&#xff0c;享元模式简介 享元模式是一种结构型设计模式&#xff0c;它将每个对象中各自保存一份数据的方式改为多个对象共享同一份数据&#xff0c;该模式可以有效减少应用程序的内存占用。 享元模式的核心思想是共享和复用&#xff0c;通过设置共享资源来避免创建过多的实…

mysql高级语句2存储过程

CREATE VIEW 视图&#xff0c;可以被当作是虚拟表或存储查询。 视图跟表格的不同是&#xff0c;表格中有实际储存数据记录&#xff0c;而视图是建立在表格之上的一个架构&#xff0c;它本身并不实际储存数据记录。 临时表在用户退出或同数据库的连接断开后就自动消失了&…

C++20中的Feature Test Mocros

C20定义了一组预处理器宏&#xff0c;用于测试各种语言和库的feature。 Feature Test Mocros(特性测试宏)是C20中引入的一种强大机制&#xff0c;用于应对兼容性问题。Feature Test Mocros作为预处理器指令(preprocessor directives)出现&#xff0c;它使你能够在编译过程中仔细…

python输入、输出和变量

一、变量 变量是存储数据的容器。在 Python 中&#xff0c;变量在使用前不需要声明数据类型&#xff0c;Python 会根据赋值自动推断变量类型。 定义变量&#xff1a; 二、输入&#xff08;Input&#xff09; input() 函数用于获取用户输入。默认情况下&#xff0c;input() 会…

系统因果性

1、因果系统的定义   若系统当前输出仅由系统当前或过去的输入决定&#xff0c;则称该系统为因果系统。由于因果系统是物理课实现的&#xff0c;且具有稳定性和可预测性&#xff0c;所以得到广泛应用。设系统输入、输出分别为 x ( t ) x(t) x(t)&#xff0c; y ( t ) y(t) y(t…

描述React Hooks中的useMemo和useCallback的区别和用途。

React Hooks API中的useMemo和useCallback都是用于优化性能的钩子&#xff0c;但它们的用途和工作方式略有不同&#xff1a; 推荐大家看看我过往的文章 useMemo useMemo是一个性能优化钩子&#xff0c;它返回一个记忆化的值。useMemo可以避免在组件渲染时进行昂贵的计算或操作…

【html】用html+css模拟Windows右击菜单

效果图&#xff1a; 在这个示例中&#xff0c;我为每个.second-list添加了一个.sub-menu的<div>&#xff0c;它包含了子菜单项。当鼠标悬停在.second-list上时&#xff0c;.sub-menu会显示出来。你可以根据需要调整这个示例以适应你的具体需求。 记住&#xff0c;这只是…

SpringMVC系列六: 视图和视图解析器

视图和视图解析器 &#x1f49e;基本介绍&#x1f49e; 自定义视图为什么需要自定义视图自定义试图实例-代码实现自定义视图工作流程小结Debug源码默认视图解析器执行流程多个视图解析器执行流程 &#x1f49e;目标方法直接指定转发或重定向使用实例指定请求转发流程-Debug源码…

谁说串口通信波特率越高越好?

在电子世界里&#xff0c;串口通信就像是电子设备之间的“悄悄话”&#xff0c;它们通过串行数据传输来交换信息。但你知道吗&#xff1f;串口通信的波特率并不是越高越好&#xff0c;这事儿得好好聊聊。 1.什么是串口通信&#xff1f; 串口通信&#xff0c;就像它的名字一样&a…

cherry 笔记三(启动)

cherry启动很简单 app创建完 直接startup()就好了 func main() {app : cherry.Configure("./examples/config/profile-chat.json","chat-master",false,cherry.Cluster,)app.SetSerializer(cserializer.NewJSON())app.Startup() } Configure()--->N…

【Python机器学习】NMF——将NMF应用于人脸图像

将NMF应用于之前用过的Wild数据集中的Labeled Faces。NMF的主要参数是我们想要提取的分量个数。通常来说&#xff0c;这个数字要小于输入特征的个数&#xff08;否则的话&#xff0c;将每个像素作为单独的分量就可以对数据进行解释&#xff09;。 首先&#xff0c;观察分类个数…

汽车销售系统

摘 要 在现代社会&#xff0c;电脑是企业运作和管理必不可少的工具。我们过去用手记下卖出的商品的年代已一去不复返了。在我国&#xff0c;汽车销售行业的竞争日趋激烈的情况下&#xff0c;如何提高企业的管理水平&#xff0c;提高企业的工作效率&#xff0c;提高企业的服务质…

ARC学习(3)基本编程模型认识(三)

笔者来介绍arc的编程模型的中断流程和异常流程 1、中断介绍 主要介绍一下中断进入的流程&#xff0c;包括需要配置的寄存器等信息。 中断号&#xff1a;16-255&#xff0c;总共240个中断。触发类型&#xff1a;脉冲或者电平触发中断优先级&#xff1a;16个&#xff0c;0最大&…

DAC测试实验——FPGA学习笔记7

一、DAC简介 DAC全称Digital to Analog Converter&#xff0c;即数模转换器。它用于将主控芯片产生的数字值(0和1)转换为模拟值(电压值)。 1、DAC参数指标 2、DAC类型 常用的DAC可大致分为权电阻网络DAC、T型电阻网络DAC、倒T型电阻网络DAC以及权电流型DAC。 3、AD9708/3PD9…

RSA 加密算法的基础数论、基本原理与 Python 实现 (包含扩展欧几里得算法)

Title: RSA 加密算法的基础数论、基本原理与 Python 实现&#xff08;包含扩展欧几里得算法&#xff09; 文章目录 前言I. 数学原理1. 整数环2. 单位元3. 欧拉定理 II. 算法原理1. 扩展欧几里得算法2. RSA 非对称加密算法 III. 算法实现1. 源代码2. 测试结果 总结参考文献 前言…

spdlog生产者消费者模式

spdlog生产者消费者模式 spdlog提供了异步模式&#xff0c;显示的创建async_logger, 配合环形队列实现的消息队列和线程池实现了异步模式。异步logger提交日志信息和自身指针&#xff0c; 任务线程从消息队列中取出消息后执行对应的sink和flush动作。 1. 环形队列 1.1 环形队…

智慧校园综合门户有哪些特点?

智慧校园的门户系统&#xff0c;作为整个智慧校园架构的门户窗口&#xff0c;扮演着至关重要的角色。它如同一座桥梁&#xff0c;将校园内的各种信息资源、应用服务以及管理功能紧密相连&#xff0c;为师生、家长及管理人员提供了一个集中访问的便捷通道。智慧校园门户的设计理…

RPC通信原理以及项目的技术选型

目录 1.引言 2、RPC通信原理 3.图示解析 4.再举个例子 1.引言 根据上一篇博客《单机&#xff0c;集群和分布式》的举的例子。 我们最终合理地通过对大型软件的合理划分&#xff0c;划分成不同模块&#xff0c;按需求&#xff08;硬件需求&#xff0c;高并发需求&#xff09…