【linux】冯诺依曼体系+操作系统
我们使用的计算机都是由一个个硬件所组成的,那么如何有条不紊的运行呢?那是因为有冯诺依曼体系约束着硬件,而操作系统来管理着他们,从而使得计算机的硬件和软件完美结合。

一、冯诺依曼体系
首先我们得了解什么是冯诺依曼体系结构,其实笼统来说就是对硬件按一套规定的标准来执行的规则。具体我们看下面:

这里我们说的是数据流(数据信号)的理解:
存储器:存储器就是内存,内存的特性是掉电易失(只要关闭电源,内存中存储的数据就立马消失,不会保存)
外存:那么外存就是除了内存之外的,比如:磁盘等等,它的特性是永久存储性。它也叫外设(外设是相对于cpu和内存来说),外设分为输入设备(键盘等)和输出设备(显示器等),但是磁盘和网卡是既属于输入设备也属于输出设备。(我们写文件读文件,从网上读取信息和上传信息)
cpu=运算器+控制器+其他:就如上图所示。运算器包括逻辑运算和数学运算。我们可能认为cpu很聪明,但是其实它很笨!为什么?cpu只会被动的接受别人的指令、别人的数据,从而执行别人的指令,计算别人的数据。那么cpu一定要先识别出指令和数据,识别是依据cpu自己的指令集,cpu中的指令集是预先就会在磁盘中加载好,所以我们写的代码编译的本质其实就是将代码转化为二进制可执行成程序(转化为cpu中的指令集的形式),从而cpu才会识别完成,并且无脑的去执行你的指令和计算数据。
现在我们了解了冯诺依曼体系结构中的各个部分,那么他们之间是如何进行数据流的传输呢?我们来看下图:

我们知道cpu需要得到数据再去执行,但是数据是从哪里来呢?我们可以看到cpu如果从外设直接读数据,那完了!很慢很慢,若从内存中读取数据,那相比于外设,还是快多了。所以我们就会知道,cpu读取数据只会从内存中读取数据。而内存中的数据是提前从磁盘中加载到内存中的(这个内存和外设的数据交互称为IO过程),然后cpu再从内存中读取数据从而执行。那相应的cpu内执行以后的数据要更新后加载到磁盘中,也是先到内存中,再从内存中加载到磁盘中。
所得的出结论是:cpu不和外设直接打交道,只和内存打交道!
那我们上面所说的这一过程,是如何加载数据?什么时候加载?都是由操作系统来完成的,所以这才是硬件和软件的完美结合!那么操作系统又是什么呢?我们来看。
二、操作系统
操作系统是一个管理软、硬件的软件。为什么要管理呢?对下管理软硬件的资源,对上给用户提供良好的,安全的,稳定的,高效的执行环境。
1.对下
那怎么管理呢?我们来看:(举个例子)
首先管理分为做决策和做执行,管理者会更偏向决策。
我们知道,校长来管理学生是怎么样管理呢?他会把你每一个学生都记住,如何一个一个管理吗?当然不会。其实校长管理我们它只需要拿到我们的数据就行,通过管理数据来管理我们。校长拿到我们的学号、成绩信息,等等就可以连面都不见,把我们管理的很好。
所以我们可以得到:所谓管理,本质是通过数据来管理被管理者
那么校长怎么拿到数据呢?当然是通过中间的辅导员(也就是中间的执行者,执行者不仅向上提交数据信息,而且也会向下执行管理者的决策),得到数据以后,校长是如何对这些数据进行管理的呢?我们总结六个字:先描述,再组织!
对于收集的数据,校长会先考虑这些数据的共性,先对学过C语言的校长来说,他会创建一个结构体,结构体包括:
struct student {//学生名字//学生性别//学号//成绩//...struct student * next; }所以很巧妙的把学生个体建模为一个一个的结构体变量,但是如果统一管理呢?再组织,学过数据结构的校长就会通过链表的方式,一个一个把结构体变量链接起来,对链表进行增删查改的操作就可以了:
等再新增学生,只需把收集好的数据创建结构体变量以后,和之前的链表节点链接起来,若想查找,只需要按照key值遍历链表,找到想要找的学生。
所以我们继续总结:管理数据的方式:先描述,再组织!
再回到操作系统,以硬件为基础,现在我们就明白操作系统是如何管理硬件了:
操作系统管理硬件是通过管理数据,那么操作系统和硬件之间的驱动就是负责向上提交硬件的数据,并且向下执行操作系统的决策,至于怎么管理数据:先描述,再组织。操作系统会把信息先汇总成一个结构体,里面包括类型,状态等等,之后再组织,把结构体变量利用数据结构算法等联系起来,就可以实现操作系统对硬件的管理了。
我们现在已经清楚,管理软硬件其实就是管理数据!管理方式就是先描述,在组织!
2.对上
对下我们已经了解清楚了,那操作系统是如何对上提供良好的执行环境呢?
举个例子:
在银行这个体系结构中:
行长要管理银行的硬件(仓库里的钱、桌椅板凳、电脑设备等等),也要管理人(部门经理、具有业务能力的员工等等),那么行长也是通过安保、后勤等等来收集数据,然后对这些数据进行先描述,再组织的数据管理。
行长对上(即用户)也要提供良好的服务,但是银行是不信任任何人的,不会说让用户自己进仓库去存取钱等等。所以行长提供了小窗口(那种玻璃板下面掏了一个小洞),对需要服务的用户,提供服务!这样既保护了自己,也提供了服务!
那么为了让用户体验到更好的服务,比如对于年纪大的老年人,可能不是太懂办理业务,所以银行大厅就会有一个大堂经理,来专门服务,办理业务只需要把信息告诉大堂经理,之后大堂经理帮你去窗口办理。
回到操作系统的对上:

操作系统同样不信任任何人,为了保护自己和提供服务,就会提供用户能看懂的接口。比如我们经常敲得命令行,都是有对应的接口去通过操作系统和底层的硬件来交互的。
总结:
硬件部分是由冯诺依曼体系结构来控制,而软件部分就是通过操作系统来进行管理:管理方式,管理本质我们现在都已经很清楚了!下期再见!
相关文章:
【linux】冯诺依曼体系+操作系统
我们使用的计算机都是由一个个硬件所组成的,那么如何有条不紊的运行呢?那是因为有冯诺依曼体系约束着硬件,而操作系统来管理着他们,从而使得计算机的硬件和软件完美结合。 一、冯诺依曼体系 首先我们得了解什么是冯诺依曼体系结构…...
从0开始 莫比乌斯函数和反演 学习笔记
莫比乌斯 0 前言 建议先看这篇比较简略的文章(有大概了解) 莫比乌斯函数_为最后的荣光的博客-CSDN博客 再根据个人情况食用本篇博客 1 莫比乌斯函数 1 1 定义 首先对 n n n 唯一分解: 唯一分解: 唯一分解定理一篇就够了_求…...
IntersectionObserver“替代”滚动条监听
概要 IntersectionObserver 接口提供了一种异步观察目标元素与其祖先元素或顶级文档视口(viewport)交叉状态的方法。其祖先元素或视口被称为根(root)。 当一个 IntersectionObserver 对象被创建时,其被配置为监听根中…...
Maven下载安装及IDEA配置Maven的超详细教程
Maven下载安装及IDEA配置Maven的超详细教程 1、IntelliJ IDEA 下载、安装及配置过程2、maven下载、安装、配置过程2.1 mavan下载2.2 安装2.3 配置 3、在IDEA中配置Maven3.1 进入设置界面3.2 maven配置 4、IDEAmaven创建工程示例 Maven是一个能使我们的java程序开发节省时间和精…...
【JAVAEE】线程池基础知识⭐
目录 1.什么是线程池 2.为什么要使用线程池 3.怎么使用线程池 4.自定义一个线程池 5.为什么不推荐使用系统自带的线程池 5.1线程池构造方法的参数和含义 5.1.1拒绝策略 5.2线程池的工作原理 5.3为什么不适用系统自带的线程池 补充:工厂模式 1.什么是线程池…...
【源码解析】@ControllerAdvice实现异常捕获与响应增强处理的原理解析
全局异常处理 demo展示 Slf4j RestControllerAdvice public class GlobalExceptionAdvice {ExceptionHandler(RuntimeException.class)public R<Void> handleNotPermissionException(RuntimeException e, HttpServletRequest request) {String requestURI request.get…...
Visual Studio Code 插件的开发、调试及发布完整详细教程
本篇文章主要讲解:Vscode的拓展插件,从环境安装到生成项目文件再到调试及部署发布的完整开发教程。 日期:2023年5月10日 vscode 1.78.1 一、准备node环境及安装yo 项目初始化,优先安装yo、再通过yo创建code及插件项目。 基础条件 需要先安装node,且node环境已经正确安装…...
Qt音视频开发38-ffmpeg视频暂停录制的设计
一、前言 基本上各种播放器提供的录制视频接口,都是只有开始录制和结束录制两个,当然一般用的最多的也是这两个接口,但是实际使用过程中,还有一种可能需要中途暂停录制,暂停以后再次继续录制,将中间部分视频不需要录制,跳过这部分不需要的视频,而且录制的视频文件必须…...
bat脚本、dos命令
bat脚本 bat脚本就是DOS批处理脚本,就是将一系列DOS命令按照一定顺序排列而形成的集合,运行在windows命令行环境上。这个文件的每一行都是一条DOS命令 在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.…...
【星戈瑞】Sulfo-Cyanine5 mal红色荧光Cy5-maleimide
Sulfo-Cyanine5 mal是一种具有强荧光信号的染料,主要应用于生物荧光成像领域。它的化学式为C38H43KN4O9S2,分子量为803.00。这种染料具有良好的水溶性,可在水溶液中稳定存在。它的光学特性包括吸收峰位于646 nm和发射峰位于662 nm,…...
Dcip的学习1-计算器
文章目录 前言一、配置安装环境1.1 网址1.2 再次打开需要进行的操作1.3 NodeJS控制台的操作1.4 出现的页面 二、Dcip生成计算器2.1 软件的基本单位 - Unitform中添加内容 2.2 OnleftChange(); 前言 只是为方便学习,不做其他用途, 一、配置安装环境 1.1 …...
ChatGPT使用9大技巧详解
目录 技巧1:To Do and Not To Do 技巧2:增加示例 技巧3:使用引导词,引导模型输出特定内容...
随机变量X,分布函数X~F(x)的理解。
1.随机变量X 1.通常认知的"x"与随机变量X 我们通常意义上的 x 是自变量,y f(x) 中的自变量。 但是 X 更多意义是 对应法则 " f " ,X完整写法是 X(ω) ω ∈ Ω。 X这个对应法则,可以将样本点映射到实数轴上。 那么X这…...
11.构造器的查询.分块.聚合
学习要点: 1.构造器查询 2.分块.聚合 本节课我们来开始学习数据库的构造器查询以及分块和聚合查询。 一.构造器查询 1. table()方法引入相应的表,get()方法可以查询当前表的所有数据; //获取全部结果 $users DB::table(users)-&g…...
微服务保护——Sentinel
初识Sentinel 雪崩问题 微服务调用链路中的某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩。 解决雪崩问题的常见方式有四种: 超时处理:设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待舱壁…...
MySQL面试整理
https://houchen-study.oss-cn-hangzhou.aliyuncs.com/%E9%9D%A2%E8%AF%95/MySQL/MySQL%E9%9D%A2%E8%AF%95%E5%A4%A7%E5%85%A8%281%29.pdf 数据库基础知识 为什么要使用数据库? 什么是MySQL? 数据库的三大范式是什么? MySQL有关权限的表…...
Vscode C++环境配置
多文件编译 打开设置搜索coderunner 找到Executor Map 加入-I目录名 目录名/*.cpp 调试 点击调试以后会产生tasks.json文件,加入链接文件和库文件...
matlab小波去噪
本文将为您介绍如何利用MATLAB进行小波去噪处理,并应用于实际数据。小波去噪是一种通过对数据进行小波分解和重构的方法,有效地去除信号中的噪声,提高信号质量。该方法不仅广泛应用于信号处理、图像处理等领域,在实际生产和科研中…...
为什么要采用全网营销策略?全网营销有何优势?
现在市场上有很多全网营销公司,其实很多企业的经理人疑惑全网营销是要干什么?这些公司能干什么?这里小马识途营销顾问给大家做一个整体的解读。 全网营销,概括地说就是在整个互联网,利用各类互联网平台和工具对产品和服…...
prometheus实战之四:alertmanager的部署和配置
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《prometheus实战》系列的第四篇,在《prometheus实战之三:告警规则》中曾经提到过,整个告警功能分为规则和…...
深度图还能这样用?Metashape导出数据在Unity3D/B3DM格式转换中的妙用
深度图跨界应用:从Metashape到Unity3D的B3DM格式转换实战指南 当摄影测量遇上游戏开发,深度图的价值远不止于三维重建。在Metashape中生成的深度图数据,经过巧妙转换后能在Unity3D中实现令人惊艳的效果。本文将带你探索这条从专业建模软件到…...
3分钟学会Qwerty Learner:打字练习与单词记忆的完美结合
3分钟学会Qwerty Learner:打字练习与单词记忆的完美结合 【免费下载链接】qwerty-learner 项目地址: https://gitcode.com/GitHub_Trending/qw/qwerty-learner Qwerty Learner是一款专为键盘工作者设计的开源学习工具,巧妙地将英语单词记忆与打字…...
终极指南:如何参与Carbonyl开源终端浏览器项目贡献
终极指南:如何参与Carbonyl开源终端浏览器项目贡献 【免费下载链接】carbonyl Chromium running inside your terminal 项目地址: https://gitcode.com/gh_mirrors/ca/carbonyl Carbonyl是一个创新的开源项目,它让Chromium浏览器能够在终端中运行…...
Qwen2.5-32B-Instruct开发指南:vscode安装与插件配置
Qwen2.5-32B-Instruct开发指南:vscode安装与插件配置 1. 引言 如果你正准备开始使用Qwen2.5-32B-Instruct这个强大的AI模型进行开发,那么一个高效的编程环境就是你的第一站。作为阿里云推出的320亿参数指令微调模型,Qwen2.5-32B-Instruct在…...
实战指南:在Altera FPGA上配置AES256加密的完整流程与避坑要点
1. 为什么要在FPGA上配置AES256加密? 最近有个做工业控制的朋友找我吐槽,说他们竞争对手居然直接复制了他们的FPGA程序,改个LOGO就当成自己的产品卖。这种事情在嵌入式领域其实很常见,特别是使用Altera(现在属于Intel&…...
rg -n 是什么意思?
关于 -n (Line number) 的原始英文说明在 rg --help 中,它是这样描述的:-n, --line-number Show line numbers. This is enabled by default when searching in a terminal.核心翻译: 显示行号。当在终端(terminal)中搜…...
gRPC在C#中的高效应用:如何避免NuGet包管理的那些坑
gRPC在C#中的高效应用:如何避免NuGet包管理的那些坑 1. 为什么NuGet包管理是gRPC开发的第一道门槛 刚接触gRPC的C#开发者往往会把注意力集中在协议定义和服务实现上,却忽略了NuGet包管理这个看似简单实则暗藏玄机的环节。我曾在三个不同项目中连续踩中…...
写作压力小了!2026最新AI论文写作工具测评与推荐
2026年真正好用的AI论文写作工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 …...
探索含简易撬棒电路crowbar的双馈风机Simulink仿真模型
【含有简易撬棒电路crowbar的双馈风机simulink仿真模型】 含过电压保护电路的双馈风机模型。 此模型中的撬棍(crowbar)不是使用 IGBT 或理想开关构建的。 通过改变转子侧变换器的参考电压,对撬棒电路的切入和切出进行建模。 控制策略是最常见…...
通过爱毕业AI的智能改写功能,五个方法助你快速降低论文重复率
嘿,大家好!我是AI菌。今天咱们来聊聊一个让无数学生头疼的问题:论文重复率飙到30%以上怎么办?别慌,我这就分享5个实用降重技巧,帮你一次搞定,轻松压到合格线以下。这些方法都是我亲身试验过的&a…...




