【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实战之三:告警规则》中曾经提到过,整个告警功能分为规则和…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...

R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...