linux_进程概念——理解冯诺依曼体系结构
前言: 本篇内容是为了让友友们较好地理解进程的概念, 而在真正了解进行概念之前, 要先了解一下冯诺依曼体系结构。 所以博主会先对冯诺伊曼体系结构进行解释, 然后再讲解进程的概念。
ps: 本篇内容适合了解一些linux指令地友友们进行观看
目录
冯诺依曼体系结构硬件
冯诺依曼的存储
存储等级
存储器的作用
冯诺依曼的数据流动
程序的运行
数据的打印
网络交互数据的流动
冯诺依曼体系结构硬件
下面是整个冯诺依曼体系结构
储存器: 友友们第一眼看到储存器, 可能认为储存器就是我们电脑上面的内存、磁盘、u盘这种存储设备, 但是其实存储器其实只是电脑上面的内存。 而磁盘, u盘这种其实是输入输出设备。
输入输出设备:计算机是为了帮助人们进行计算的, 而我们要进行某个数据地计算, 就要能够将这个数据写入计算机的内存中, 然后计算机还能将结果反馈给我们。但是我们的计算机只能够认识0101这种二进制文字, 而我们人是不能够识别这些文字的。 所以我们就很难直接访问内存, 必须要借助一些输入输出设备。 通过这些设备将我们人的文字转化为二进制文字输入给计算机,然后通过输出设备将这些二进制文字转化为人的文字反馈给我们。
常见的输入设备有:键盘、鼠标、磁盘、u盘、网卡、摄像头、话筒等等
常见的输出设备有: 显示器、播放器硬件、磁盘、网卡等等
通过上面的输入输出设备我们可以发现, 有的硬件是纯的输入设备, 有的硬件是纯的输出设备。有的硬件既是输入设备, 又是输出设备。
比如说网卡和磁盘, 我们有时候需要从磁盘中读取数据进行计算, 那么它就是输入设备。 当我们需要从磁盘中输出数据进行计算, 那么他就是输出设备;又比如网卡, 我们需要从网络中获取资源时, 那么网卡就是输入设备。 我们需要在网络中发送资源时,那么网卡就是输出设备。
运算器:运算器是计算机中对数据进行计算的, 计算分为两种——算术运算和逻辑运算。
控制器:对于计算机来说, 什么时候将输入设备的数据放入到存储器。 什么时候将存储器的数据放到运算器。 什么时候将运算器的数据取出再放回到存储器中, 是由控制器控制的。
注: 上面的输入输出设备被称为外设。 上面的运算器和控制器也就是中央处理器被称为cpu。
我们也要知道, 计算机的本质就是一堆硬件的集合, 并且这些硬件之间有协同的能力。
硬件也就是组件, 组件和组件之间需要使用某种方式传递信号, 当代计算机的组成, 都是由冯诺依曼体系结构构成的。
上面那些硬件——存储器、输入输出设备、运算器、控制器等都是独立的个体, 但是各个硬件单元必须要用“线”连接起来, 这些线叫做总线。 总线分为两类——IO总线、系统总线。
其中cpu和存储器, 也就是和内存中进行交互的叫做系统总线。 外设和存储器交互的叫做IO总线。
冯诺依曼的存储
注意, 是存储, 不是存储器。

存储等级
首先这里要对上面这张图进行解释。 对于计算机整个结构来说, 一共有这么多层存储结构。 第一层是寄存器, 然后是一级存储,二级存储, 三级存储, 内存以及磁盘。 这些存储结构, 从上到下容量越来越大, 速度越来越慢, 价格越来越低。
对于寄存器和内存以及磁盘的存储速度来说: 寄存器的速度可以达到纳秒级别, 然后内存的速度可以达到微妙级别, 外存的速度可以达到毫秒级别。 也就是说, 三个存储结构的相差级次达到了10的三次方。
存储器的作用
那么进入主题, 我们思考一下对于冯诺依曼体系结构来说, 不能将存储器直接去掉。 让输入设备直接通向中央处理器再前往输出设备, 这是为什么?答案是因为输入输出设备的速度和cpu的差距太大了。下面对细节进行解释:
首先木桶原理告诉我们,木桶的存水量由最短的那个短板所决定。 那么对于计算机来说, 寄存器的存储速度最快。而磁盘也就是输入输出设备的存储速度最慢。那么也就是说, 磁盘决定了整个冯诺依曼体系的运行速率。 那么去掉存储器也就是内存后, 整个计算机体系的运行速率仍然由输入和输出设备进行决定。 那么去掉存储器的意义就不会太大。
那么友友们就会疑惑了, 那么既然去掉存储器和不去掉存储器。 根据木桶效应计算机体系的效率都是由输入输出设备进行决定, 那么为什么还要加存储器增加计算机的成本呢?
这个问题很重要很重要, 为什么? 原因就是“缓存原理”——这个词不是官方, 这个词是博主为了好理解, 自己说的。 佬们笑一笑就好。
首先我们要知道, 内存的存储空间一般都在1g到32g(目前一般的电脑都在16g, 有可能有的电脑更多, 而且也很少有1, 2g的电脑了)。 那么我们的内存就可以在cpu没有工作的时候, 先将输入输出设备的数据预缓存到自己里面。等到cpu开始工作的时候, 就将这些预先缓存好的数据再放到cpu中解析与处理。 这个时候内存还能基于预缓存输入输出设备输送过来的其他数据。 这就是IO, 系统两条总线并行。 可以大大加快整个系统的工作效率。
那么, 有的友友可能又会问。 博主, 那既然cpu里面的存储那么快, 为什么不将计算机的内存, 磁盘, 这些存储设备都换成cpu这样的呢?
对于这个问题, 首先我们要重新知道, cpu的存储空间, 其实就是寄存器。 那么我们知道, 寄存器的造价非常昂贵, 可使用的内存非常小。 要想造出一台几百个g寄存器的计算机, 成本非常高。 一般群众用不起——要知道, 计算机造出来, 就是要给群众使用的, 计算机之所以能发展的这么好, 就是因为它还算便宜。 如果一台计算机几十几百万, 那么没有多少人会用。 当然有人会用, 但是还是在少数。 所以, 现在有一套成本低, 效率不错的计算机体系结构——冯诺依曼, 为什么不用。 所以, 冯诺依曼, 我们的现在的计算机还在使用它。
冯诺依曼的数据流动
程序的运行
那么, 关于为什么不去掉存储器的问题我们想清楚后, 再来思考一个问题:一个程序要运行, 为什么要加载到内存中呢?(这里可能有点友友不知道程序要运行必须加载到内存中, 这里记住就可以)
那么, 我们就要知道, 对于内存来说, 内存是一个断电易丢失数据的存储空间。 那么一个程序我们能够长久地保存在计算机中, 那么它势必是存储在磁盘中。也就是说, 程序是放到输入设备中的, 而cpu只从内存中拿数据。 所以, 一个程序想要被cpu计算, 那么这个程序就要被放到内存中。 所以, 程序在运行之前, 一定要先将程序缓存到内存中, 然后cpu再从内存中拿到数据。 这个过程, 是由冯诺依曼体系决定的。所以, 软件在执行的时候, 必须遵守硬件的规则。 硬件就是底层和下限, 软件就是上层和天花板。
数据的打印
第二个问题:为什么对于打印一行的数据来说, 默认的数据, 是可能被缓存起来的?在哪里缓存呢?
首先, 数据是默认缓存到内存的某个区域, 如果这时缓存区没有满或者没有换行符, 那么这个缓存区就不会刷新, 只有刷新后, 那么才会将缓冲区的数据全都打印出来。 这就是为什么我们经常看到一行一行的打印数据。
网络交互数据的流动
第三个问题, 我们在网络上发送文件, 发送消息聊天的时候。 数据是怎么流动的呢?
现在我们有张三和李四两个人, 两个都登录了qq, 并且两个人还在聊天。
那么假如张三给李四发了一条消息。 首先, 张三从键盘上输入, 然后输入的内容进入到了存储器之中进行缓存, 然后这些内容有传送到了cpu之中进行计算, 然后返回到内存之中, 又从内存之中输送到张三的显卡之中。 李四的电脑上面的网卡接收到张三网卡中传送过来的信息后, 将数据缓存到内存中, 然后放到cpu中进行计算放回内存, 最后从内存取出放到李四的显示屏上。 这就是聊天时的数据流动。
那么发送文件是类似的。 假如张三给李四发了一个文件, 首先, 张三的电脑要从磁盘里拿到这个文件放到存储器中进行缓存, 然后内存中的文件放到cpu中进行解析和计算。 完成之后放回存储区, 然后输送到网卡中, 进而输送到李四的网卡中。 那么李四的网卡接受到文件之后就将文件放到存储区, 然后经过cpu的解析与计算放回存储区, 再从存储区输送到李四电脑的磁盘中。 这就是传送文件时的流动。
综上, 我们其实可以发现, 在冯诺依曼体系中的数据传送, 归根结底就是就是两台冯诺依曼依靠输入输出设备, 网卡等硬件,将数据进行传送的过程。

--------------------------------------------------
以上, 就是本节全部内容, 下面是本节的笔记


相关文章:
linux_进程概念——理解冯诺依曼体系结构
前言: 本篇内容是为了让友友们较好地理解进程的概念, 而在真正了解进行概念之前, 要先了解一下冯诺依曼体系结构。 所以博主会先对冯诺伊曼体系结构进行解释, 然后再讲解进程的概念。 ps: 本篇内容适合了解一些linux指…...
Linux笔记之使用系统调用sendfile高速拷贝文件
Linux笔记之使用系统调用sendfile高速拷贝文件 code review! 文章目录 Linux笔记之使用系统调用sendfile高速拷贝文件sendfile 性能优势sendfile 系统调用优点:缺点: cp 命令优点:缺点: 实际测试:拷贝5.8个G的文件&a…...
OpenCV和PIL进行前景提取
摘要 在图像处理和分析中,前景提取是一项关键技术,尤其是在计算机视觉和模式识别领域。本文介绍了一种结合OpenCV和PIL库的方法,实现在批量处理图像时有效提取前景并保留原始图像的EXIF数据。具体步骤包括从指定文件夹中读取图像,…...
Linux虚拟化大师:使用 KVM 和 QEMU 进行高级虚拟化管理
Linux 虚拟化大师:使用 KVM 和 QEMU 进行高级虚拟化管理 虚拟化技术是现代数据中心的核心技术之一,它可以将一台物理服务器分割成多个虚拟机,从而提高资源利用率,降低成本,并增强系统的灵活性和可扩展性。KVM…...
CentOS-6的iso下载地址镜像yum源
CentOS6下载地址镜像yum源 从 CentOS官网 Vault Mirror 过期镜像库下载 下载iso光盘镜像,使用其提供的yum源 vault:保险库,墓穴 , Vault Mirror 是官方对过期镜像库的取名 CentOS官网 Vault Mirror 过期镜像库 可下载CentOS2,3,4,5,6,7,8 CentOS-Vault.repo对应的是发行该镜…...
【python】PyQt5可视化开发,鼠标键盘实现联动界面交互逻辑与应用实战
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...
Raw Socket(一)实现TCP三次握手
实验环境: Windows物理机:192.168.1.4 WSL Ubuntu 20.04.6 LTS:172.19.32.196 Windows下的一个http服务器:HFS,大概长这个样子: 客户端就是Ubuntu,服务端就是这个…...
考研数学开始的晚?别慌,超全复习规划拿去抄
实话实说,从七月中旬考研数一复习完真的有点悬,需要超级高效快速... 数二的时间也有点紧张...🥺 中间基本没有试错的时间,让你换老师换习题尝试,必须从头到尾规划好 而且相信你也不止自己,有很多考研党都是…...
创建React 项目的几种方式
①.react自带脚手架 使用步骤: 1、下载 npm i create-react-app -g 2、创建项目命令: create-react-app 项目名称 ②.Vite构建工具创建react步骤:(推荐) 方法一: 1、yarn create vite 2、后续根据提示步…...
探索Kotlin:从K1到K2
人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 嘿,小伙伴们!今天我们来聊聊Kotlin,这个在安卓开发圈里越来越火的编程语言。…...
Python爬虫速成之路(1):获取网页源代码
hello hello~ ,这里是绝命Coding——老白~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页:绝命Coding-CSDN博客 &a…...
OpenGL笔记七之顶点数据绘制命令和绘制模式
OpenGL笔记七之顶点数据绘制命令和绘制模式 —— 2024-07-07 杭州 下午 总结自bilibili赵新政老师的教程 code review! 文章目录 OpenGL笔记七之顶点数据绘制命令和绘制模式1.OpenGL版本号更改和编译更改2.GL_TRIANGLES模式绘制一个三角形、支持NFC坐标随窗口缩放2.1.三个点…...
力扣题解( 最长湍流子数组)
978. 最长湍流子数组 已解答 给定一个整数数组 arr ,返回 arr 的 最大湍流子数组的长度 。 如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是 湍流子数组 。 更正式地来说,当 arr 的子数组 A[i], A[i1], ..., A[j] 满足仅满…...
pytorch-RNN存在的问题
这里写目录标题 1. RNN存在哪些问题呢?1.1 梯度弥散和梯度爆炸1.2 RNN为什么会出现梯度弥散和梯度爆炸呢? 2. 解决梯度爆炸方法3. Gradient Clipping的实现4. 解决梯度弥散的方法 1. RNN存在哪些问题呢? 1.1 梯度弥散和梯度爆炸 梯度弥散是…...
Leetcode 17:电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 public List<String> letterCombinations(String digits) {if (digits null || digits.length() 0) {return result;}int index0; //记录遍历digits的角标//初始…...
jmeter-beanshell学习4-beanshell截取字符串
再写个简单点的东西,截取字符串,参数化文件统一用csv,然后还要用excel打开,如果是数字很容易格式就乱了。有同事是用双引号把数字引起来,报文里就不用加引号了,但是这样beanshell处理起来,好像容…...
QScrollArea 设置最大的高度值
在 Qt 中,QScrollArea 是一个提供滚动视图的控件,允许用户查看大于当前视口尺寸的内容。如果你想要为 QScrollArea 设置一个最大的高度值,这通常不是直接通过 QScrollArea 的属性来设置的,而是需要调整其内容部件(widg…...
CentOS6禁止锁屏
在电源中设置后还是会锁屏, 原因是有屏幕保护程序 电源管理都 “从不” 一些AI的回答 在CentOS 6系统中,如果你想要禁用锁屏功能,可以编辑/etc/kbd/config文件。这个文件通常包含了键盘相关的设置,包括密码策略和屏幕锁定选项。 首先打开终…...
MapReduce底层原理详解:大案例解析(第32天)
系列文章目录 一、MapReduce概述 二、MapReduce工作机制 三、Map,Shuffle,reduce阶段详解 四、大案例解析 文章目录 系列文章目录前言一、MapReduce概述二、MapReduce工作机制1. 角色与组件2. 作业提交与执行流程1. 作业提交:2. Map阶段&…...
【JVM基础篇】Java垃圾回收器介绍
垃圾回收器(垃圾回收算法实现) 垃圾回收器是垃圾回收算法的具体实现。由于垃圾回收器分为年轻代和老年代,除了G1(既能管控新生代,也可以管控老年代)之外,新生代、老年代的垃圾回收器必须按照ho…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)
+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...
游戏开发中常见的战斗数值英文缩写对照表
游戏开发中常见的战斗数值英文缩写对照表 基础属性(Basic Attributes) 缩写英文全称中文释义常见使用场景HPHit Points / Health Points生命值角色生存状态MPMana Points / Magic Points魔法值技能释放资源SPStamina Points体力值动作消耗资源APAction…...
6.计算机网络核心知识点精要手册
计算机网络核心知识点精要手册 1.协议基础篇 网络协议三要素 语法:数据与控制信息的结构或格式,如同语言中的语法规则语义:控制信息的具体含义和响应方式,规定通信双方"说什么"同步:事件执行的顺序与时序…...
AWS vs 阿里云:功能、服务与性能对比指南
在云计算领域,Amazon Web Services (AWS) 和阿里云 (Alibaba Cloud) 是全球领先的提供商,各自在功能范围、服务生态系统、性能表现和适用场景上具有独特优势。基于提供的引用[1]-[5],我将从功能、服务和性能三个方面进行结构化对比分析&#…...
SpringSecurity+vue通用权限系统
SpringSecurityvue通用权限系统 采用主流的技术栈实现,Mysql数据库,SpringBoot2Mybatis Plus后端,redis缓存,安全框架 SpringSecurity ,Vue3.2Element Plus实现后台管理。基于JWT技术实现前后端分离。项目开发同时采 …...

