Linux | 深入浅出冯诺依曼

news2024/11/18 15:50:08

前言

        但凡是科班出生的小伙伴多多稍稍应该都听过冯诺依曼体系吧,这似乎已成为入门计算机的必备知识了,本章就带着大家一起去理解冯诺依曼体系;

一、体系构成

        冯诺依曼体系主张计算机由五大部件组成,如下所示;

输入设备:接收输入信息

输出设备:将结果进行输出显示

运算器:数据的运算

控制器:控制运算(与运算器共同组成CPU)

存储器:数据的存储

        上图就是我们的冯诺依曼体系图,相信大家应该多多少少也看过吧,本文到这还没完,先别走,这只是我们粗粒度的认识,下面我们继续更加深层次的理解冯诺依曼;

二、深入理解冯诺依曼

        我将用下面几个问题来带着大伙谈谈我眼中的冯诺依曼;

问题一:为什么要加上内存?直接从输入设备拿走数据到CPU,计算完以后再给我们的输出设备不可以吗?

问题二:我觉得图中输入设备将数据给内存,然后内存再给CPU,然后CPU再给内存,最后内存再给我们输出设备这个过程太麻烦了,可以按照下图顺序进行数据传递吗?

        其实这两个问题是一个问题,就是对我们冯诺依曼体系中存储器的理解;在理解这个问题前,我先补充一个基础知识;

补充:

        1、在我们的计算机硬件中,我们各个硬件都有自己数据传输速度的问题,其关系大概如下;

CPU > 内存 > 磁盘

        2、在我们计算机中,有些设备既可能是输入设备,也可能是输出设备,如磁盘,网卡等;

        3、木桶原理,简单提一下,一个水桶能接多少水并不在最长的那快木板,而在于最短的那块木板;

回到正题:

        回答问题一,假设我们的cpu是纳秒级别,我们的内存是微秒级别,我们的外设是毫秒级别;假如没有内存,我们处理一次数据是直接从外设传输到CPU,而这个传输的速度取决于外设,也就是毫秒级别;但是如果我们引进了内存,我们可以先将数据预加载到内存中存储起来,然后CPU直接从内存中拿取数据,此时,我们处理数据的速度取决于我们的内存了,也就是微秒级别,这样大大提高了我们的IO效率;问题二,此时,我们的问题二也就迎刃而解了,我们若像问题二那样进行数据流转,我们的IO速度还是取决于外设;

问题三:内存既然这么好,我们为啥还用磁盘呢?

        这个问题,主要从两个方向进行解答,从成本来看,我们内存的价格远远大于磁盘价格,再从我们的效率来看,实际上,全部换成内存,我们的效率也并没有提升多大(肯定会有提升),但是要想计算机称为一种平民产品,价格当然也是要给非常重要的因素,我们认为没有必要用高昂的费用换取少量的速度;

问题四:为什么程序运行前需要加载到我们内存中?

        我们之前就经常听说我们要运行一个程序必须提前将其加载进内存中,我们理解冯诺依曼体系后,这个问题就很好理解了,就是因为冯诺依曼体系的特点,所以我们才要将程序加载进内存中,体系结构决定了软件的行为;

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

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

相关文章

进程(0)——计算机的中的软硬件【Linux】

进程(0)——计算机的中的软硬件【Linux】 一.硬件:1.1 冯诺依曼结构:1.2 存储金字塔1.2.1输入设备和存储器:1.2.2输出设备和存储器: 二.软件:2.1 操作系统2.1.1 如何理解管理: 博主自…

【Asp.net】Asp.net core中IIS配置注意事项

1、应用地址池设为无托管代码 一、提示:关于IIS上运行ASP.NET Core 站点的“HTTP 500.19”错误 安装dotnet-hosting-3.1.2-win.exe ASP.NET Core 3.1 Runtime (v3.1.2)下载地址: https://download.visualstudio.microsoft.com/download/pr/dd119832-dc4…

visual studio Qt 开发环境中手动添加 Q_OBJECT 导致编译时出错的问题

问题简述 创建项目的时候,已经添加了类文件,前期认为不需要信号槽,就没有添加宏Q_OBJECT,后面项目需要,又加入了宏Q_OBJECT,但是发现只是添加了一个宏Q_OBJECT,除此之外没有改动其它的代码,原本…

AWS Lambda 操作 RDS 示例

实现目标 创建一个 Lambda 接收调用时传入的数据, 写入 RDS 数据库 Post 表存储文章信息. 表结构如下: idtitlecontentcreate_date1我是标题我是正文内容2023-10-21 15:20:00 AWS 资源准备 RDS 控制台创建 MySQL 实例, 不允许 Public access (后面 Lambda 需要通过 VPC 访问…

【Qt进阶之自定义控件】使用QListWidget实现自定义Item效果

目的 Q:如何在Qt库的基础上,实现自定义控件呢? A:根据官方文档回答,就是继承需实现的控件,然后实现自定义功能。 以下是实现QListWidget控件的自定义item。 先看下最终效果是如何: listItem 主…

基于YOLO实现的口罩佩戴检测 - python opemcv 深度学习 计算机竞赛

文章目录 0 前言1 课题介绍2 算法原理2.1 算法简介2.2 网络架构 3 关键代码4 数据集4.1 安装4.2 打开4.3 选择yolo标注格式4.4 打标签4.5 保存 5 训练6 实现效果6.1 pyqt实现简单GUI6.3 视频识别效果6.4 摄像头实时识别 7 最后 0 前言 🔥 优质竞赛项目系列&#xf…

正则表达式,日期选择器时间限制,报错原因

目录 一、正则表达式 1、表达式含义 2、书写表达式 二、时间限制 1、原始日期选择器改造 2、禁止选择未来时间 3、从...到...两个日期选择器的时间限制 三、Uncaught (in promise) Error报错 一、正则表达式 1、表达式含义 (1)/^([a-zA-Z0-9_.…

2.1.1BFS中的Flood Fill和最短路模型

1.池塘计数 农夫约翰有一片 N ∗ M N∗M N∗M 的矩形土地。 最近,由于降雨的原因,部分土地被水淹没了。 现在用一个字符矩阵来表示他的土地。 每个单元格内,如果包含雨水,则用”W”表示,如果不含雨水,…

Unity 文字显示动画(2)

针对第一版的优化,自动适配文字大小,TextMeshPro可以拓展各种语言。第一版字母类语言效果更好。 using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI;public partial class TextBeat…

CSS 三栏布局

左右两列定宽&#xff0c;中间自适应 浮动margin <style>.container {width: 500px;height: 200px;line-height: 200px;}.left {width: 100px;height: 100%;float: left;background: orange;text-align: center;}.right {width: 100px;height: 100%;float: right;back…

大模型必备算力:CPUGPU天梯图(2023年最新版)

在当今计算机世界&#xff0c;CPU、GPU和显卡的性能成为了衡量计算机性能的重要指标。今天深入了解CPU、GPU和显卡天梯图。 首先&#xff0c;CPU作为计算机的大脑&#xff0c;负责处理各种任务。它的性能主要由核心数、主频和缓存大小决定。其中&#xff0c;核心数和主频决定了…

学会使用Pandas进行数据清洗

大家好&#xff0c;如果你对数据科学感兴趣&#xff0c;那么数据清洗可能对你来说是一个熟悉的术语&#xff0c;本文将向你介绍使用Pandas进行数据清洗的过程。我们的数据通常来自多个资源&#xff0c;而且并不干净&#xff0c;它可能包含缺失值、重复值、错误或不需要的格式等…

二分查找,求方程多解

1.暴力遍历&#xff1a; 解为两位小数&#xff0c;故0.001的范围肯定可以包含&#xff08;零点存在&#xff09; 2.均分为区间长度为1的小区间&#xff08;由于两解&#xff0c;距离不小于1&#xff09;&#xff0c;一个区间最多一个解 1.防止两边端点都为解 2&…

JOSEF约瑟 JY82-III JY82-1P JY82J电压等级380V 检漏继电器 面板安装

系列型号&#xff1a; JY82A检漏继电器 JY82B检漏继电器 JY82-380/660检漏继电器 JY82-IV检漏继电器 JY82-2P检漏继电器 JY82-2/3检漏继电器 JJKY检漏继电器 JD型检漏继电器 JY82-IV;JY82J JY82-II;JY82-III JY82-1P;JY82-2PA;JY82-2PB 一、产品概述 检漏继电器 J…

GitHub和Gitee的区别以及具体使用

文章目录 GitHub和GiteeGitHub和Gitee区别GitHub的使用Gitee的使用 GitHub和Gitee GitHub和Gitee区别 速度不同&#xff1a;GitHub位于美国&#xff0c;而Gitee位于中国。这意味着在中国使用Gitee可能会有更快的访问速度和更好的稳定性。如果我们希望体验Git飞一般的速度&…

基本指令(1):操作系统/Xshell,文件,路径

一、操作系统 操作系统是一款进行软硬件资源管理的工具&#xff0c;对上提供良好、稳定的运行服务。 二、文件 1. 文件 文件内容 文件属性 2. 所有的文件操作&#xff1a; 对文件的内容进行操作 对文件的属性进行操作 三、路径 3.1 路径的概念 路径的本质是&#xff…

Transformers基本组件(一)快速入门Pipeline、Tokenizer、Model

Transformers基本组件&#xff08;一&#xff09;快速入门Pipeline、Tokenizer、Model Hugging Face出品的Transformers工具包可以说是自然语言处理领域中当下最常用的包之一&#xff0c;实现了大量的主流预训练模型架构&#xff0c;并提供了对应的与训练好的模型文件。 借助…

遗传算法求解旅行商问题(含python源代码)

目录 前言 编码初始化种群 计算适应度 选择 交叉 变异 完整代码 总结 前言 这次的算法有一点不能确定是否正确&#xff0c;希望有大佬能够批评指正。 遗传算法的一般步骤 编码初始化种群 种群&#xff08;population&#xff09;指同一时间生活在一定自然区域内&…

推荐3个好评如潮的多人协作软件!

​在当今高度互联的社会中&#xff0c;多人协作已成为团队高效工作的关键。为了更好地满足团队合作的需求&#xff0c;许多优秀的多人协作软件应运而生。 在本文中&#xff0c;我们将向大家推荐3款拥有良好口碑的多人协作软件&#xff1a;boardmix博思白板、Notion和Trello。这…

Linux_API_系列-整体概览

总论 Linux下API编程不像Windows一样&#xff0c;对每种设备和不同功能都有统一的API&#xff0c;所以有了《Windows核心编程》这种导论一类的大而全的书籍&#xff0c;整本书厚的像一块砖头。 Linux下贯彻了一贯的“一切皆文件”的宗旨&#xff0c;所以对于系统编程而言&…