【linux】冯诺依曼体系+操作系统

news2024/11/29 10:43:45

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


一、冯诺依曼体系 

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

 这里我们说的是数据流(数据信号)的理解:

        存储器:存储器就是内存,内存的特性是掉电易失(只要关闭电源,内存中存储的数据就立马消失,不会保存)

        外存:那么外存就是除了内存之外的,比如:磁盘等等,它的特性是永久存储性。它也叫外设(外设是相对于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.对上

        对下我们已经了解清楚了,那操作系统是如何对上提供良好的执行环境呢?

        举个例子:

        在银行这个体系结构中:

        行长要管理银行的硬件(仓库里的钱、桌椅板凳、电脑设备等等),也要管理人(部门经理、具有业务能力的员工等等),那么行长也是通过安保、后勤等等来收集数据,然后对这些数据进行先描述,再组织的数据管理。

        行长对上(即用户)也要提供良好的服务,但是银行是不信任任何人的,不会说让用户自己进仓库去存取钱等等。所以行长提供了小窗口(那种玻璃板下面掏了一个小洞),对需要服务的用户,提供服务!这样既保护了自己,也提供了服务!

        那么为了让用户体验到更好的服务,比如对于年纪大的老年人,可能不是太懂办理业务,所以银行大厅就会有一个大堂经理,来专门服务,办理业务只需要把信息告诉大堂经理,之后大堂经理帮你去窗口办理。

         回到操作系统的对上:

 

         操作系统同样不信任任何人,为了保护自己和提供服务,就会提供用户能看懂的接口。比如我们经常敲得命令行,都是有对应的接口去通过操作系统和底层的硬件来交互的。


总结:

        硬件部分是由冯诺依曼体系结构来控制,而软件部分就是通过操作系统来进行管理:管理方式,管理本质我们现在都已经很清楚了!下期再见! 

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

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

相关文章

万字长文 | ChatGPT的工作原理(一)

ChatGPT 能够自动生成一些读起来表面上甚至像人写的文字的东西,这非常了不起,而且出乎意料。但它是如何做到的?为什么它能发挥作用?我在这里的目的是大致介绍一下 ChatGPT 内部的情况,然后探讨一下为什么它能很好地生成…

Sharding-JDBC之绑定表(关联表)

目录 一、简介二、maven依赖三、数据库3.1、创建数据库3.2、创建表 四、配置(二选一)4.1、properties配置4.2、yml配置 五、实现5.1、实体层5.2、持久层5.3、服务层5.4、测试类5.4.1、保存订单数据5.4.2、查询订单详情数据(关联表&#xff09…

拓扑排序在处理树形关系结构中的应用

Preface 偶然在QQ上的一个交流群中看到了一位群友的棘手需求。互联网开发中,数据的落盘存储通常在MySQL中。MySQL是一种关系型数据库,以“行”为基本的存储单元,然后通过外键等建立数据实体模型之间的联系。 但有些数据的存储,在…

波奇学C++:友元函数,友元类,内部类,匿名对象,优化构造

友元函数/类 &#xff1a;突破访问限定符&#xff0c;允许非同一个类的函数或者类访私有成员变量。 class A { public:A():_a(0),_b(1){cout << "A()" << endl;} private:int _a 0;int _b 1; }; void fun(const A& a) {cout << a._a <&l…

canal学习-运行canal-adapter源码并记录解决报错问题(一)

运行canal-adapter 1. 下载canal源码1.1 下载源码并安装好环境1.2 查看目录结构 2.项目运行2.1 项目打包2.2 项目打包可能遇到的问题&#xff1a;1.Failure to find com.alibaba.otter:connector.tcp:jar:jar-with-dependencies:1.1.52.com.alibaba.druid.pool.DruidDataSource…

HTTP协议与TCP协议

HTTP协议 1. HTTP有哪些⽅法&#xff1f; HTTP 1.0 标准中&#xff0c;定义了3种请求⽅法&#xff1a;GET、POST、HEAD HTTP 1.1 标准中&#xff0c;新增了请求⽅法&#xff1a;PUT、PATCH、DELETE、OPTIONS、TRACE、CONNECT 2. 各个HTTP方法的具体作用是什么&#xff1f; 方…

量子计算:揭开未来计算世界的面纱

随着科技的飞速发展&#xff0c;计算能力的提升成为人们关注的焦点之一。而在这个领域中&#xff0c;量子计算正逐渐成为备受瞩目的新星。量子计算利用了量子力学的原理&#xff0c;与传统计算方式有着根本的不同。在传统计算中&#xff0c;信息以比特的形式表示&#xff0c;而…

COMSOL光电专题第三十三期(线上),COMSOL声学(北京线下)专题线上通知

背景&#xff1a; COMSOL多物理场仿真软件以高效的计算性能和杰出的多场耦合分析能力实现了精确的数值仿真&#xff0c;已被广泛应用于各个领域的科学研究以及工程计算&#xff0c;为工程界和科学界解决了复杂的多物理场建模问题。COMSOL内嵌的声学模块可以方便地进行多孔声学…

AI技术如何助力合同智能管理?

近年来&#xff0c;合同管理领域开始大规模应用AI技术&#xff0c;今天我们来关注下AI技术如何助力合同智能管理&#xff1f; 传统的合同管理系统&#xff0c;一般都是流程管理&#xff0c;随着AI技术的快速发展&#xff0c;AI技术已经成功应用到了合同全生命周期管理的各阶段…

计算机网络 三 (数据链路层)上

数据链路层 数据链路层的概述 基本概念 数据链路层是OSI参考模型中的第二层&#xff0c;它主要负责在物理层上提供可靠的数据传输服务&#xff0c;使得相邻节点间的数据传输能够实现。 数据链路层的基本概念如下&#xff1a; 帧&#xff1a;数据链路层数据传输的基本单位是…

Redis持久化:RDB和AOF(版本redis 7.0)

什么是持久化&#xff1f; 学过计算机基础的都知道以一种磁盘&#xff0c;只要关机&#xff0c;那么磁盘的内容都会被清空&#xff0c;这种磁盘称为内存&#xff0c;而Redis则是一种内存数据库&#xff0c;redis中的数据也都存储在磁盘中&#xff0c;如果服务器中进程被关掉&am…

麻了,真的不想做测试了...

前言 有不少技术友在测试群里讨论&#xff0c;近期的面试越来越难了&#xff0c;要背的八股文越来越多了,考察得越来越细&#xff0c;越来越底层&#xff0c;明摆着就是想让我们徒手造航母嘛&#xff01;实在是太为难我们这些测试工程师了。 这不&#xff0c;为了帮大家节约时…

Mathtype修改硕士论文公式格式

Mathtype修改硕士论文格式 1将word格式的公式变为mathtype格式1选中公式2点击mathtype中的转换公式 2修改mathtype格式的公式文字版式 1将word格式的公式变为mathtype格式 1选中公式 如果不选公式默认全文所有公式或者指定的公式。 2点击mathtype中的转换公式 选择要转换的…

汽车功能安全

前言 近些年来&#xff0c;功能安全在汽车传统底盘域和动力域的应用已较为成熟&#xff0c;各大汽车企业功能安全意识也逐渐增强。在辅助驾驶和自动驾驶爆发式增长的大趋势下&#xff0c;现代汽车的功能安全在目前尤为复杂的电子电气系统中就显得更为重要&#xff0c;功能安全…

MySQL---存储过程流程控制(判断(if、case)、循环(while、repeat、loop))

1. if判断 IF语句包含多个条件判断&#xff0c;根据结果为TRUE、FALSE执行语句&#xff0c;与编程语言中的if、else if、else 语法类似&#xff0c;其语法格式如下&#xff1a; -- 语法 if search_condition_1 then statement_list_1[elseif search_condition_2 then statem…

十八、Stream 流

目录 1、为什么要引入SpringCloud Stream 2、SpringCloud Stream简介 2.1、标准MQ架构图 2.2、SpringCloud Stream架构图 2.3、SpringCloud Stream处理流程 3、如何使用SpringCloud Stream 3.1、创建springcloud-stream-sender项目&#xff08;消息生产者&#xff09; …

SpringCloud_服务调用_Ribbon负载算法简介与如何替换(二)

SpringCloud_服务调用_Ribbon负载算法简介与如何替换(二) Ribbon核心组件IRule IRule:根据特定算法中从服务列表中选取一个要访问的服务 IRule接口有多种实现&#xff1a; Ribbon自带的7种负载规则 com.netflix.loadbalancer.RoundRobinRule 轮询 com.netflix.loadbalancer.Ra…

8年测试老鸟总结,软件测试工程师关键成长晋升要素,这些不能不知道...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、技术-依然是最…

MySQL深入浅出:自增长序列(@i:=@i+1)的用处及用法

目录 1&#xff1a;问题分析 2&#xff1a;模拟自增长序列 2.1 单表查询 2.2 多表关联查询 3&#xff1a;结束语 社区 1&#xff1a;问题分析 Oracle中的伪列 ROWNUM 是一组递增的序列&#xff0c;在查询数据时生成&#xff0c;为结果集中每一行标识一个行号, 每条记录…

医院运维场景下的风险感知

随着医疗信息化建设发展&#xff0c;医院的系统、设备不断叠加&#xff0c;在提升用户体验&#xff0c;享受高效医疗服务的同时&#xff0c;也为支撑系统稳定运行的信息部门带来巨大挑战。诸如科室复杂、应用场景多、终端运维工作量大、软件系统兼容需求强等痛点&#xff0c;并…