冯诺依曼体系结构

简介: 这里简单地介绍和解释一下冯诺依曼体系,为后面学习操作系统做好准备工作。

 我们绝大多数计算机都遵循着冯诺依曼体系,即一整套计算机设备中,一定是由输入设备、存储器、运算器、控制器和输出设备构成。

QT1(X6]79AO@8YX~]@`YC%X.png

其中:

①存储器指的是内存,而内存有一个特点,那就是掉电易失。存储器的作用是临时存储

而磁盘,拥有永久性存储能力,但是磁盘不属于内存,它是属于外存,但是在冯诺依曼体系中,没有外存这个结构,只有外设!因此,磁盘属于外设,外设指的是冯诺依曼体系中的输入设备和输出设备。外设这个词,是相对于内存+cpu而言的。外设的作用是永久存储

其中,磁盘和网卡,即属于输入设备,也属于输出设备。

②运算器+控制器+其他(cache,寄存器等)=CPU——>俗称:芯片。其特点就是快(各方面)

CPU的作用是计算

对比:

cpu
存储器 较快
外设 较慢

既然CPU的作用是计算,那么CPU其实很笨,它只能被动的接受传进来的指令和数据,然后去执行指令,达到计算的目的。

在接受指令前,CPU必须认识这个指令。那么CPU怎么样地去认识指令?答案是CPU拥有自己的指令集,指令集以硬件的形式存在CPU中,相当于有自己的一本字典大全或是词汇。所以我们在写代码的时候,编译的本质就是将代码变成二进制可执行程序后,成为可以让CPU认识的指令,那么在传入CPU,让CPU计算的时候,CPU就翻自己的指令集,找到了相对于的指令,就可以进行处理了!

CPU的数据从哪来?

从内存或外存中来。但是CPU是个急性子,因此给数据的那一方不能慢,也不能太快。我们由木桶原理可知道,木桶能装的水的多少,取决于最短的那块板。因此,CPU与其它设备合作的时候,它们的速度,取决于较慢的哪一方。所以,CPU就是在存储器内存中拿。CPU在读取和写入数据层面只和内存打交道,主要是为了提高整机效率。

内存天然就有数据吗?

并不是!我们计算机中的数据,在磁盘上(不谈光盘之类的)!如果CPU每次要处理的数据,都得先让内存从磁盘中读取写入,那么效率很低。所以,数据在CPU要之前,操作系统在我们开机的时候,就将CPU将要处理的数据,从磁盘上加载到内存中。操作系统就是在这里做出决策的(需要预处理的数据有多少,当不用的时候怎么清除,清除多少等等决策)

当把内存中的数据搬到外存中去,和把数据从外存搬到内存中去,这个操作,我们就称为IO过程。(INPUT/OUTPUT)

所以,我们如今平常使用的计算机,就是硬件和软件的完美结合。

结论:在数据层面

1.CPU不和外设直接打交道,和内存直接打交道

2.所有外设,有数据需要载入,只能载入到内存中;内存写出,也一定写到外设中。

也就是说,CPU只和内存打交道。

那么,这里就能解释一些现象了:

程序要运行的时候,为什么必须要加载到内存?因为CPU要执行我们写的代码,要访问数据,而我们写的代码是在磁盘上的,所有,必须要把程序加载到内存,CPU从内存中获取。(体系结构规定!)也是为了提高效率。

上面所说的,都是数据层面的。

在控制上面,CPU与外设有打交道,这会在往后的文章中补充。

对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上

现在来看一个具体的实例:

假设我和我的一个朋友,一个在广东,一个在北京,那么我们在QQ聊天上,打出了一个"你好",那么数据流是如何在不同的电脑中流动?(这里不考虑网络)

TX_CFW~V$8W`]50DC{Y6FJE.png

是这样的:我在键盘上输入"你好"后,数据就会传到内存中进行加密处理,然后将数据一式两份,一份在我们自己的显示器上显示出来,另一份通过网卡,再通过网络,传到了我的朋友的网卡中,此时他的网卡的角色是输入设备,然后数据由流到他的内存中解密后,最后显示再他的显示器上面。

我们联系的前提是:打开登陆了我们各自的QQ程序,我们的QQ程序加载到了内存中,然后CPU执行QQ程序的代码,执行上面的流程。

那么如果不是打出"你好",而是发送文件呢?

其实文件无非就是体积大了点的"你好",文件从磁盘中搬到内存中(磁盘到QQ程序,然后到内存),然后通过加密,传到对方的输入设备(网卡),接着就是上面所述的操作了。

其实就跟我们在写代码的时候,使用scanf或者cin,从键盘输入,然后读到了我们程序的内部(内存);

最后,这里简单地介绍和解释一下冯诺依曼体系,为后面学习操作系统做好准备工作。


相关文章
|
安全 网络协议 网络安全
IPSec的特征与功能
【9月更文挑战第4天】IP Sec提供的安全服务包括访问控制、完整性、数据来源认证等。
|
11月前
|
存储 缓存 监控
深入解析:Elasticsearch集群性能调优策略与最佳实践
【10月更文挑战第8天】Elasticsearch 是一个分布式的、基于 RESTful 风格的搜索和数据分析引擎,它能够快速地存储、搜索和分析大量数据。随着企业对实时数据处理需求的增长,Elasticsearch 被广泛应用于日志分析、全文搜索、安全信息和事件管理(SIEM)等领域。然而,为了确保 Elasticsearch 集群能够高效运行并满足业务需求,需要进行一系列的性能调优工作。
675 3
|
网络协议 网络安全 网络架构
TCP / IP 五层模型
1. TCP / IP 是什么? 1.1 协议是什么? 2. 五元组 2.1 IP 地址 2.2 端口号 2.3 一些知名协议的默认端口号 3. OSI 七层模型 3.1 OSI 七层模型划分为以下七层 4. TCP / IP 五层(或四层)模型 4.1 各层次的任务 4.2 网络设备所在分层
609 0
|
缓存 网络协议 应用服务中间件
突破10万高并发的nginx性能优化经验(含内核参数优化)
写的很好,推荐阅读。 转载:http://www.cnblogs.com/kevingrace/p/6094007.html 在日常的运维工作中,经常会用到nginx服务,也时常会碰到nginx因高并发导致的性能瓶颈问题。
2852 0
|
3天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1101 0
|
2天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
461 9
|
12天前
|
人工智能 运维 安全
|
11天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。