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…...
java通过poi-tl导出word实战详细步骤
文章目录 与其他模版引擎对比1.引入maven依赖包2.新建Word文档exportWprd.docx模版3.编写导出word接口代码4.导出成果 poi-tl是一个基于Apache POI的Word模板引擎,也是一个免费开源的Java类库,你可以非常方便的加入到你的项目中,并且拥有着让…...
将自签证书添加到Java的可信任证书列表中
文章目录 前言将自签证书添加到Java的可信任证书列表中添加到Java的可信任证书列表中 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。 而且听说点赞的人每天的运气都不会太差,实…...
一文清晰了解CSS——简单实例
首先一个小技巧: 一定要学会的vsCode格式化整理代码的快捷键,再也不用手动调格式了-腾讯云开发者社区-腾讯云 (tencent.com) CSS选择器用于选择要应用样式的HTML元素。常见的选择器包括: 类选择器:以.开头,用于选择具…...
工程师 - 什么是XML文件
XML(eXtensible Markup Language,扩展标记语言)文件是一种使用自定义标签来定义对象及其内部数据的纯文本文件。XML设计的目的是既易于人类阅读又易于机器解析,因此它在不同系统和应用之间传输和存储数据时非常有用。 XML的主要特…...
[AI 大模型] 阿里巴巴 通义千问
文章目录 [AI 大模型] 阿里巴巴 通义千问简介模型架构发展新技术和优势示例 [AI 大模型] 阿里巴巴 通义千问 简介 阿里巴巴的 通义千问 是由阿里云开发的一款大型语言模型,旨在为用户提供高效、智能的自然语言处理服务。 通义千问能够处理多种语言输入,…...
关于无法定位程序输入点 SetDefaultDllDirectories于动态链接库KERNEL32.dll 上 解决方法
文章目录 1. ERNEL32.dll 下载2. 解决方法 👍 个人网站:【 洛秋小站】 1. ERNEL32.dll 下载 Windows 7 在安装postman时报错缺少动态链接库,提示缺少.NET Framework,这是因为本地缺少相应的dll文件导致的,这时就需要下载ERNEL32.dll文件,在解…...
轻松创建对象——简单工厂模式(Java实现)
1. 引言 大家好,又见面了!在上一篇文章中,我们通过Python示例介绍了简单工厂模式,今天,我们继续深入这个话题,用Java来实现简单工厂模式。 2. 什么是简单工厂模式 简单工厂模式(Simple Facto…...
Docker Dockerfile:构建与优化
Docker Dockerfile:构建与优化 简介 Docker 是一种广泛使用的容器化技术,它允许开发人员将应用程序及其依赖环境打包到一个可移植的容器中。Dockerfile 是 Docker 中用于自动化容器镜像构建的脚本文件。本文将详细介绍 Dockerfile 的基本结构、指令使用…...
开源项目有哪些机遇与挑战?
随着全球经济和科技环境的快速变化,开源软件项目的蓬勃发展成为了开发者社区的热门话题。越来越多的开发者和企业选择参与开源项目,以推动技术创新和实现协作共赢。本文将从开源项目的发展趋势、参与开源的经验分享以及开源项目的挑战三个方面进行探讨。…...
利用【Python】【线性规划】优化工厂生产:实现智能资源配置与利润最大化的现代解决方案
目录 1. 问题背景和描述 1.1 问题背景 1.2 问题描述 2. 数学模型的建立 2.1决策变量 2.2 目标函数 2.3 约束条件 2.4 数学模型总结 3. 使用Python解决线性规划问题 3.1 导入必要的库 3.2 定义目标函数系数 3.3 定义不等式约束矩阵和向量 3.4 定义变量的边界 非负…...
杭州网站建设哪家最好/私人做网站的流程
ava程序作为windows服务运行Installing and Running as an NT Service1.下载Java Service Wrapper2.以控制台方式运行2.1建立你的应用目录2.2拷贝运行批处理文件 把 {WRAPPER_HOME}/src/bin/App.bat.in {WRAPPER_HOME}/src/bin/InstallApp-NT.bat.in {WRAPPER_HOME…...
高中生做网站网页/关键词免费下载
2019独角兽企业重金招聘Python工程师标准>>> 一、首先要理解http-only模式意味着什么 网上已经有一堆相关资料了,这里只说明Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换…...
深圳有哪些做网站的公司好/友情链接方面pr的选择应该优先选择的链接为
一、需求场景有时候我们需要在项目中使用一些静态资源文件,比如城市信息文件 countries.xml,在项目启动后读取其中的数据并初始化写进数据库中。二、实现静态资源文件 countries.xml 放在 src/main/resources 目录下ClassPathResource 类的注释如下&…...
濮阳市城乡一体化示范区西湖医院/seo关键词推广方式
今天我们继续对数据库进行了优化,将原来的用户进行了分类。 转载于:https://www.cnblogs.com/CkmIT/p/6843865.html...
wordpress 摘要长度/seo优化易下拉排名
国庆长假外出旅行,对于很多人来说,除了当地美景,美食,或许最重要的发朋友圈啦,不仅仅是为了分享旅途中的故事和心情,更多的是为了记录这一路上的回忆。而发朋友圈可是一门艺术,有些人不管什么都…...
wordpress系列文章实现/seo新闻
一、引例#1033 : 交错和时间限制:10000ms单点时限:1000ms内存限制:256MB描述给定一个数 x,设它十进制展从高位到低位上的数位依次是 a0, a1, ..., an - 1,定义交错和函数:f(x) a0 - a1 a2 - ... ( - 1)n - 1an - 1例…...