【Liunx】冯诺伊曼体系结构

冯诺伊曼体系结构


我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺伊曼体系。

在这里插入图片描述
到目前为止,我们所认识的计算机,都是由一个个硬件所组成的。

· 输入单元:键盘,鼠标,写板等
· 中央处理器(cpu):运算器,控制器等
· 输出单元:显示器,打印机等

存储器就是常说的内存,特性掉电易失,我们还熟知有一个存储设备叫做磁盘,磁盘就是一个外存,外存具有永久性存储能力

外存属于外设。
外设分为:输入设备,输出设备。
磁盘和网卡即属于输入设备也属于输出设备。

外设是相对于内存和cpu说的。

常见的思维,cpu是一台电脑的心脏,运行速度很快。确实相对于内存和外设,cpu运行速度快很多。
在这里插入图片描述

但今天所要说的是,cpu其实很笨。只能被动接受别人的指令,别人的数据,然后去执行别人的指令计算别的数据为目的。

因此cpu必须要认识别人的指令,所以在制作cpu的时候就设计了指令集。

指令
cpu只能识别二进制指令,

因此我们编写的代码,在汇编的阶段,由汇编语言转成了二进制指令。我们编译器存在的意义就是将代码转换成机器能够识二进制可执行程序。

数据

不知道大家是否清楚木桶原理

在这里插入图片描述

一个木桶盛水量取决于桶壁上最短的木板。

内存和外设都可以存储数据,从外设拿数据以外设的速度进行,从内存拿数据以内存速度进行。

因此为了提高整机效率,cpu在读和写的时候,在数据层面,只和内存打交道。

但是内存并不是天然就有数据的,数据真正都存在在磁盘上,实际上cpu读的数据早就预先由磁盘搬到内存中。(如开机的时候就把操作系统加载到内存)。并且cpu要写数据先写到内存,然后定期刷新到外设中。

内存就相当于一个大大的缓存,cpu只有内存打交道,内存和cpu和外设都打交道。

那么就有问题了,谁帮我预先读,谁帮我刷新,那些数据需要加载到内存,什么时候加载。。。。

答: 操作系统(下篇博文细说)

结论(在数据层面)

1.cpu不和外设直接打交道,和内存直接打交道
2.所有外设,有数据需要加载,只能载入到内存,内存写出,也一定是写到外设中

上述内容总结一点就是cpu不和外设直接沟通,只能和内存直接打交道。

有了上面的知识就可以回答

问:程序要运行为什么必须加载到内存?
答:因为cpu要执行我的代码,访问我的数据,只能从内存中读取(这是冯诺伊曼体系规定)

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

问当你登录qq和你的某位朋友聊天,从你打开窗口,开始给他发消息,到他的到消息之后的数据流动过程,是怎么样的?如果是在qq上发送文件呢?

在这里插入图片描述

有人可能这样问,为什么发信息cpu参与进来呢?因为信息可能涉及加密解密的过程。

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

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

相关文章

情报与GPT技术大幅降低鱼叉攻击成本

邮件鱼叉攻击(spear phishing attack)是一种高度定制化的网络诈骗手段,攻击者通常假装是受害人所熟知的公司或组织发送电子邮件,以骗取受害人的个人信息或企业机密。 以往邮件鱼叉攻击需要花费较多的时间去采集情报、深入了解受…

Java【HTTP】什么是 Cookie 和 Session? 如何理解这两种机制的区别和作用?

文章目录 前言一、Cookie1, 什么是 Cookie2, Cookie 从哪里来3, Cookie 到哪里去4, Cookie 有什么用 二、Session1, 什么是 Session2, 理解 Session 三、Cookie 和 Session 的区别总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: 📕 …

2023国赛数学建模A题B题C题D题资料思路汇总 高教社杯

本次比赛我们将会全程更新思路模型及代码,大家查看文末名片获取 之前国赛相关的资料和助攻可以查看 2022数学建模国赛C题思路分析_2022年数学建模c题思路_UST数模社_的博客-CSDN博客 2022国赛数学建模A题B题C题D题资料思路汇总 高教社杯_2022国赛a题题目_UST数模…

[保研/考研机试] KY212 二叉树遍历 华中科技大学复试上机题 C++实现

题目链接: 二叉树遍历_牛客题霸_牛客网二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问根,然后遍历其左子树,最。题目来自【牛客题霸】https://www.nowcoder.com/share/jump/43719512169…

Apipost数据模型功能详解

在API设计和开发过程中,存在许多瓶颈,其中一个主要问题是在遇到相似数据结构的API时会产生重复性较多的工作:在每个API中都编写相同的数据,这不仅浪费时间和精力,还容易出错并降低API的可维护性。 为了解决这个问题&a…

CUDA编程之GPU图像数据结构的设计

第1章 GPU图像数据结构 参考OpenCV中Mat和GpuMat的设计,对当前Image类设计了GPU版本,即GPUImage。 1.1. GPU图像头 设计图像头。 struct GPUImageHeader {int32_t nWidth = 0; //宽度int32_t nHeight = 0; //高度int16_t nChannel = 0; //通道数int32_t nRefCount = …

注册中心/配置管理 —— SpringCloud Consul

Consul 概述 Consul 是一个可以提供服务发现,健康检查,多数据中心,key/Value 存储的分布式服务框架,用于实现分布式系统的发现与配置。Cousul 使用 Go 语言实现,因此天然具有可移植性,安装包仅包含一个可执…

MySql014——分组的GROUP BY子句和排序ORDER BYSELECT子句顺序

前提:使用《MySql006——检索数据:基础select语句》中创建的products表 一、GROUP BY子句基础用法 SELECT vend_id, COUNT(*) AS num_prods FROMstudy.products GROUP BY vend_id;上面的SELECT语句指定了两个列,vend_id包含产品供应商的ID&…

Electron环境搭建

Electron是一个优秀的开源框架,用于构建跨平台的桌面应用程序。它基于Chromium和Node.js,使得开发者可以使用Web技术(HTML、CSS和JavaScript)来构建可在Windows、macOS和Linux等多个操作系统上运行的应用程序。本文将介绍如何搭建…

wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容)

wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容) 1. 关键字 “与”:“eq” 和 “”等同,可以使用 “and” 表示并且, “或”:“or”表示或者。 “非”:“!" 和 "not”…

HOT100打卡—day9—【堆】—最新8.22(还有1题)

1 215. 数组中的第K个最大元素 215. 数组中的第K个最大元素 时间复杂度要O&#xff08;n&#xff09;所以用了hash&#xff0c;空间换时间&#xff0c;ac代码&#xff1a; class Solution { public:int a[20010];int findKthLargest(vector<int>& nums, int k) {/…

构建系统自动化-autoreconf

autoreconf简介 autoreconf是一个GNU Autotools工具集中的一个命令&#xff0c;用于自动重新生成构建系统的配置脚本和相关文件。 Autotools是一组用于自动化构建系统的工具&#xff0c;包括Autoconf、Automake和Libtool。它们通常用于跨平台的软件项目&#xff0c;以便在不同…

经济萧条下,RPA投入应该被“牺牲”掉吗?

近期有观点认为&#xff0c;在经济环境不佳的情况下&#xff0c;RPA&#xff08;机器人流程自动化&#xff09;转型不应该被公司考虑。这一观点主要基于经济状况不佳导致公司资金紧张&#xff0c;因此应当停止外部寻找RPA公司进行相关项目。然而&#xff0c;这一观点忽略了RPA转…

Vite好用的前端构建工具

是什么 Vite是Vue的作者尤雨溪开发的 一种新型前端构建工具。 Vite在大型项目开发模式下&#xff0c;打包速度远高于webpack。 Vite 为什么这么快 1. 快速冷启动 Vite只启动一台静态页面的服务器&#xff0c;不会打包全部项目文件代码&#xff0c;服务器根据客户端的请求加…

基于EasyExcel的Excel读取

1.引入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.11</version> </dependency>2.读取器代码&#xff1a; package com.vz.utils.excel;import com.alibaba.excel.Eas…

【数据结构与算法】迪杰斯特拉算法

迪杰斯特拉算法 介绍 迪杰斯特拉&#xff08;Dijkstra&#xff09;算法是典型最短路径算法&#xff0c;用于计算一个节点到其他节点的最短路径。它的主要特点是以中心向外层层扩展&#xff08;广度优先搜索思想&#xff09;&#xff0c;直到扩展到终点为止。 算法过程 设置…

离谱的Bug

离谱的 Bug Bug 情况发现 Bug修改 Bug其他感受历史 Bug火星Spirit号Mars Global Surveyor任务 Bug 情况 有一次&#xff0c;我在开发一个网页应用程序时&#xff0c;遇到了一个令人目瞪口呆的Bug。这个Bug出现在一个特定的页面上&#xff0c;当用户点击某个按钮时&#xff0c;…

【golang】关于指针的有限操作

传统意义上来说&#xff0c;指针是一个指向某个确切的内存地址的值。这个内存地址可以是任何数据或代码的起始地址。在Go语言中有几种东西可以代表"指针"。其中最贴切传统意义的当属uintptr类型的了。该类型实际上是一个数值类型&#xff0c;也是Go语言内建的数据类型…

Redis 十大数据类型

Redis数据类型都有哪些&#xff1f; Redis支持丰富的数据类型&#xff0c;那么具体在Redis7中都有哪些数据类型呢&#xff1f;请看下图&#xff1a; 官网介绍&#xff1a;https://redis.io/docs/data-types/。 其中&#xff0c;String、Hash、List、Set、Sorted Set等类型是大…

C++ 写入txt文件内容并追加内容

咨询通义千问的“C 写入txt文件内容并追加内容”&#xff1a; 可以使用ofstream类来写入txt文件内容。若想追加内容&#xff0c;可以使用ios::app标志来创建输出流对象&#xff0c;然后在写入时将其设置为ios::app。以下是一个示例代码&#xff1a; #include <iostream>…