【Linux系统编程】冯诺依曼体系结构
目录
前言
什么是冯诺依曼体系结构?
冯诺依曼体系结构如何进行数据处理的?
存储器在冯诺依曼体系中有什么作用?
冯诺依曼体系结构为什么要这样设计?
冯诺依曼结构总结
前言
相信对于冯诺依曼这个人的名字大家一定不会感到陌生,他被称为“现代计算机之父”
而在他生平比较重要的一大贡献就是:创建了计算机的硬件结构为冯诺依曼体系结构
接下来,我会对这个体系结构进行详细的介绍,包括他为什么要这样设计,这样设计的好处是什么,为什么现在计算机大多都以冯诺依曼体系结构为主体。。。。也会娓娓道来!那就让我们接下去看吧!
什么是冯诺依曼体系结构?
冯诺依曼体系结构是冯诺依曼提出的一种计算机硬件结构,如图
我们先看看他其中的组成是怎么样的
存储器:指的其实就是我们熟知的内存
输入设备:指的是帮助计算机产生数据的设备,例如:键盘、摄像头、话筒、磁盘、网卡。。。
输出设备:指的是帮助计算机处理数据的设备,例如:显示器、音响、磁盘、网卡。。。
注意:有些设备既可以是输入设备,也可以是输出设备
中央处理单元:指的就是电脑的CPU
运算器:是CPU中较为主要的设备之一,它的功能是进行各种运算,例如:算术运算/逻辑运算
控制器:给CPU进行响应外部事件,例如拷贝数据到内存中
现在,我们知道了什么是冯诺依曼体系结构,那么相信你也一定会有疑问,他到底是如何工作的呢?不要急,我们接下来看看!
冯诺依曼体系结构如何进行数据处理的?
第一步:首先是由输入设备读取完数据
第二步:把数据由输入设备移动到内存中
第三步:此时CPU拿到并进行处理内存中的数据
第四步:CPU再把处理好的数据交给内存
第五步:内存再把数据给输出设备,此时整个数据处理流程就完毕了
也就是如下图示意图的黑色箭头指向即为冯诺依曼体系结构的工作流程
存储器在冯诺依曼体系中有什么作用?
在看了上述内容后,相信你也有一些疑惑,为什么冯诺依曼体系结构中需要有存储器呢?
我们直接把数据从输入设备把数据给到CPU再由CPU给到输出设备不就好了吗?
首先,我们先要了解一个概念,那就是在冯诺依曼体系结构中不同的设备,他们的处理数据的速度是远远不同的
其中,输入设备和输出设备是一个级别的速度(最慢的)
其次,存储器是一个级别的速度(中等的)
再然后,CPU是一个级别的速度(最快的)
如果我们说CPU是10纳秒级别的速度的话,那么存储器可能就是百纳秒为单位的,而输入设备和输出设备是微秒级别的
我们其实可以发现,在冯诺依曼体系结构中,CPU是不直接与输入输出设备直接进行交互的,原因也是因为他们的速度过慢会导致CPU长时间等待以至于运行效率变低
这里就好比木桶效应
木桶效应:决定一个桶能装多少水的不是取决于最高的那块木板,而是最低的那块木板
同样的,因为CPU的速度已经很快很快了,此时决定CPU的速度的就不是它自身的速度,而是其他较慢设备的速度。所以存储器这个设备在体系结构中也是必不可少的!
冯诺依曼体系结构为什么要这样设计?
在上述内容中,我们了解了,体系结构中为什么需要存储器,但我接下来又得要提出一个问题了。
为什么体系结构中需要有输入设备中的磁盘呢?同样是读取数据,它的效率还比内存要低,我不能全部换成内存吗?
从技术角度来说,这显然是可行的。因为上述,同样是读取数据,内存一定比磁盘要好
但是我们除了要考虑技术问题,最重要的一个问题是成本
我们都知道,凡是被广泛传播的产品,一定是物美价廉的!
如果我们把磁盘中的512G全部换成内存,显然这个造价就会导致计算机无法广泛传播,并且性价比极低(全部换成内存不一定就会比磁盘+内存速度快)
如果真按照这样子设计,冯诺依曼体系结构也或许并不会成为现代计算机的主流硬件结构
这也从侧面应证了,冯诺依曼体系结构之所以会成为现代计算机的主流硬件结构就是因为成本低,东西好。
冯诺依曼结构总结
在学习了上述内容后,我们也可以仔细想想
我们在学习编程语言的时候,时常听到的一句话是:程序要运行,必须先加载到内存!
我们可能学的时候是会很想当然的!我们也不考虑!但我现在就可以告诉你为什么了
因为是冯诺依曼体系结构的特点决定的,因为体系结构不让CPU与外设直接交互!
这篇文章就到这啦~我们下期再见!
相关文章:

【Linux系统编程】冯诺依曼体系结构
目录 前言 什么是冯诺依曼体系结构? 冯诺依曼体系结构如何进行数据处理的? 存储器在冯诺依曼体系中有什么作用? 冯诺依曼体系结构为什么要这样设计? 冯诺依曼结构总结 前言 相信对于冯诺依曼这个人的名字大家一定不会感到陌…...

数据结构--动态顺序表
文章目录 线性表动态顺序表数组与顺序表 接口实现初始化:尾插:尾删头插头删指定位置插入指定位置删除查找摧毁 完整代码 线性表 线性表是数据结构中最基本、最简单也是最常用的一种数据结构。线性表是指由n个具有相同数据类型的元素组成的有限序列。 线…...

笔试数据结构选填题
目录 卡特兰数Catalan:出栈序列/二叉树数 树 二叉树 N01N2 哈夫曼树(最优二叉树)Huffman 度m的哈夫曼树只有度为0和m的结点:Nm(n-1)/(m-1) 平衡二叉树AVL Nh表示深度为h最少结点数,则N00,N11&#…...
# 鸢尾花的案例学习
# 鸢尾花的案例学习 # 1. 导入小型的数据 from sklearn.datasets import load_iris import numpy as np import pandas as pd import seaborn as sbn import matplotlib.pyplot as plt # 2. 获取数据 irisload_iris() # 3.查看数据print("数据集\n ",len(iris.d…...
线程、进程的区别
线程、进程的区别 在开发中,我们经常听到线程和进程两个概念,它们都是操作系统的基本概念,操作系统以进程为基本单位分配存储器,以线程为基本单位分配CPU。虽然它们有很多相似之处,但是它们也有很大的区别。本文将详细…...

在 Ubuntu 上安装 Docker 桌面
Ubuntu 22.04 (LTS) 安装 Docker 桌面 要成功安装 Docker Desktop,您必须: 满足系统要求拥有 64 位版本的 Ubuntu Jammy Jellyfish 22.04 (LTS) 或 Ubuntu Impish Indri 21.10。对于非 Gnome 桌面环境,必须安装 gnome-terminal:…...

【WebRTC---序篇】(七)RTC多人连麦方案
服务端可以选择mediasoup,作为SFU服务器,只负责转发数据 下图举例三个Client (browser或者客户端)同时加入一个房间,每个app同时发布一路视频和一路音频,并且接受来自其他app的音视频流,mediasoup内部的结构如下&…...

【Java可执行命令】(十六)诊断命令请求发送工具 jcmd:提供一种简单而强大的方式来管理和监控 Java 进程 ~
Java可执行命令之jcmd 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 语法格式3.2 jcmd -l:列出正在运行的 Java 进程3.3 jcmd < pid> help:列出特定进程的诊断命令列表3.4 jcmd < pid> < command>:执行诊断命令 4️⃣ 应用场景…...
如何创建无序列表和有序列表?
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 无序列表⭐ 无序列表⭐ 注意事项⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴…...

【MongoDB】初识、安装MongoDB
目录 一、MongoDB主要应用场景 二、MongoDB简介 三、MongoDB相关特点 四、MongoDB的安装 一、MongoDB主要应用场景 传统的数据库如MySQL在应对三高场景时显得力不从心 三高: High performance 对数据库高并发读写的需求 High Storage 对海量数据的高效率存储和 …...

方法区内存溢出及常量池
22 方法区-定义 是所有线程共享的一块区域。 存储了和类结构相关信息。运行时常量池, 方法区在虚拟机启动时被创建,逻辑上是堆的组成部分。方法区内存不足,也会导致oom异常。 是一个概念上的东西, 1.6使用永久代作为方法区&#…...
【MTK平台】【wpa_supplicant】关于wpa_supplicant_8/src/p2p/p2p_invitation.c文件的介绍
本文主要介绍external/wpa_supplicant_8/src/p2p/p2p_invitation.c文件 这里主要介绍6个方法 1.p2p_invite //p2p邀请调用此方法 2.p2p_invite_send //对p2p_invite方法进行补充 3. p2p_process_invitation_resp 4.p2p_process_invitation_req 5.p2p_build_invitation_re…...

智能仪表板DevExpress Dashboard v23.1亮点 - 增强对自定义导出的支持
DevExpress Dashboard v23.1版本增强了自定义导出到Excel的功能等,欢迎下载最新版本体验! DevExpress Dashboard v23.1正式版下载(Q技术交流:523159565) 所有平台 导出自定义仪表板项目到Excel 用户现在可以在WinForms和Web应…...

分布式应用:ELK企业级日志分析系统
目录 一、理论 1.ELK 2.ELK场景 3.完整日志系统基本特征 4.ELK 的工作原理 5.ELK集群准备 6.Elasticsearch部署(在Node1、Node2节点上操作) 7.Logstash 部署(在 Apache 节点上操作) 8.Kiabana 部署(在 Node1 节点…...

Mac与windows传文件(超过4G且速度超快,非共享)
MAC与Windows文件互传 背景 尝试了网上的一些方法,诸如设置共享文件夹方法等,但是实际使用中感觉效果一般,对于一些小的文件共同编辑速度还可以。但是在备份或者传递一些较大文件或者很多细小文件的时候就有点捉襟见肘了。制作了一个MAC可读…...

2023年第四届“华数杯”数学建模思路 - 案例:退火算法
## 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 退火算法原理 1.1 物理背景 在热力学上,退火(annealing)现象指物体逐渐降温的物理现象,温度愈低&#…...
STM32 UDS Bootloader开发-上位机篇-CANoe制作(3)
文章目录 前言刷写脚本34服务写入数据的实现定时函数writeBlockData函数Checksum总结前言 上一篇文章中介绍了CAPL刷写脚本的大部分内容,本文继续介绍34,36,37服务的实现,及checksum中遇到的坑 刷写脚本 34服务 void requestDownLoad(struct Block hexfile) {gTxBuffer[…...

GO语言的垃圾回收机制
内存垃圾的产生 程序在内存上被分为堆区、栈区、全局数据区、代码段、数据区五个部分。对于C等早期编程语言栈上的内存回由编译器负责管理回收,而堆上的内存空间需要编程人员负责申请和释放。在Go中栈上内存仍由编译器负责管理回收,而堆上的内存由编译器…...

vim粘贴内容格式混乱解决方法
问题 复制本地文件内容后,咱贴到vim文本内,格式错乱 解决方法 打开vim配置文件 最后面加入一行 vim /etc/vimrc set pastetoggle<F11> 开发vim文件,进入后先按F11进入交互模式 shift insert 再次粘贴 解决...

基于Orangepi 3 lts 的云台相机
利用orangepi 3 lts 和arduino nano 制作了一个云台相机,可用于室内监控。 硬件: orangepi 3 ,arduino nano ,usb相机,180度舵机两个 WeChat_20230806213004 软件: 整体采用mqtt进行消息的中转。 相机采用python 利用opencv…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...

AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...

手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...

WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...

sshd代码修改banner
sshd服务连接之后会收到字符串: SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢? 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头,…...

02.运算符
目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&:逻辑与 ||:逻辑或 !:逻辑非 短路求值 位运算符 按位与&: 按位或 | 按位取反~ …...

今日行情明日机会——20250609
上证指数放量上涨,接近3400点,个股涨多跌少。 深证放量上涨,但有个小上影线,相对上证走势更弱。 2025年6月9日涨停股主要行业方向分析(基于最新图片数据) 1. 医药(11家涨停) 代表标…...