🎉博主首页: 有趣的中国人
🎉专栏首页: Linux
小伙伴们大家好,本片文章将会讲解 操作系统中 冯诺依曼体系 的相关内容。
如果看到最后您觉得这篇文章写得不错,有所收获,麻烦点赞👍、收藏🌟、留下评论📝。您的支持是我最大的动力,让我们一起努力,共同成长!
文章目录
- [`1. 冯诺依曼体系介绍`](#
1. 冯诺依曼体系介绍
) -
- [==<font color = blue><b>🎧1.1 冯诺依曼体系结构介绍🎧==](#==🎧1.1 冯诺依曼体系结构介绍🎧==)
- [==<font color = blue><b>🎧1.2 冯诺依曼体系结构示意图🎧==](#==🎧1.2 冯诺依曼体系结构示意图🎧==)
- [`2. 为什么会出现冯诺依曼体系`](#
2. 为什么会出现冯诺依曼体系
) -
- [==<font color = blue><b>🎧2.1 内存的特点🎧==](#==🎧2.1 内存的特点🎧==)
- [`3. 冯诺依曼体系的深度理解`](#
3. 冯诺依曼体系的深度理解
)
1. 冯诺依曼体系介绍
🎧1.1 冯诺依曼体系结构介绍🎧
冯·诺伊曼体系是 计算机体系结构的一种基本设计范式,以美国数学家兼计算机科学家约翰·冯·诺伊曼(John von Neumann)的名字命名。该体系结构是20世纪40年代末和50年代初期发展起来的,并且至今仍然是现代计算机设计的基础之一。
冯·诺伊曼体系主要包括以下几个重要组成部分:
- 存储器(Memory):计算机内部用于存储数据和指令的地方。在冯·诺伊曼体系中,数据和指令都以二进制形式存储在存储器中,并且可以通过地址访问。
- 中央处理器(Central Processing Unit,CPU) :负责执行计算机程序中的指令,并处理数据的部件。CPU包括 算术逻辑单元(Arithmetic Logic Unit,ALU)负责执行算术和逻辑运算,以及 控制单元(Control Unit)负责控制指令的执行顺序。
- 输入输出设备(Input/Output Devices,I/O Devices):用于与计算机进行交互的外部设备,如键盘、鼠标、显示器、打印机等。输入输出设备通过输入输出接口(I/O Interface)与计算机连接。
🎧1.2 冯诺依曼体系结构示意图🎧
截至目前,我们所认识的计算机,都是有一个个的硬件组件组成
- 输入单元:包括键盘, 鼠标,扫描仪, 写板等;
- 中央处理器(CPU):含有运算器和控制器等;
- 输出单元:显示器,打印机等。
关于冯诺依曼,必须强调几点:
- 这里的存储器指的是内存;
- 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备);
- 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
- 一句话,所有设备都只能直接和内存打交道。
- 这些条件都是为了保证计算机处理数据的效率。
2. 为什么会出现冯诺依曼体系
计算机就是为了解决问题而产生的,既然要解决问题,那么它就要接收相应数据,接收完数据,在计算机中进行一系列的算数与逻辑运算,然后再将数据通过输出设备进行输出,于是就有了以下的流程图:
但是相较于中央处理器(CPU)来说,外设(输入输出设备)的速度是非常慢的,于是,整个计算机的处理数据的速度就不是取决于CPU而是取决于外设了(根据木桶原理),下图是一个存储器层次结构全景图,表示了计算机中各种存储设备的处理数据的速度:
因此为了解决此问题,就不让外设直接和CPU进行交互,在中间加了内存:
🎧2.1 内存的特点🎧
内存处理数据的速度比外设要快上很多,但是比CPU
又要慢,内存在外设和CPU
中间起到了缓冲的作用。
现在这个体系的流程就是:
- 用户通过输入设备输入数据,数据会先存放到内存,
CPU
处理数据时就到内存中读取数据,处理完之后又放到内存中,- 然后当输出设备需要时,再将内存中的数据输出到输出设备中。
那为什么加上内存计算机处理速度就会变快呢?
- 首先 内存是有容量大小的,所以他就有装在数据的能力;
- 当
CPU
要访问数据时,内存会将CPU
要访问的数据以及它的周围的数据 从输入设备一同加载到内存中; - 并且
CPU
处理数据是可以和内存加载数据同时进行的,这样当下次CPU
访问数据的时候就可以直接从内存中获取数据; - 数据处理完成之后,
CPU
将处理完的数据存储到内存中(一般存储在缓冲区中),当输出设备需要在内存中的数据时,就会冲刷缓冲区。- 这就是
Linux
中的fflush()
函数强制冲刷缓冲区和缓冲区满了也要强制冲刷缓冲区的底层含义。
- 这就是
3. 冯诺依曼体系的深度理解
我们这里会举一个例子来理解冯诺依曼系统:
当用微信和朋友聊天时数据的流动过程:
我们这里只涉及两台电脑中的数据流动的过程,至于网络的相关内容先暂且不谈:
你自己的电脑:
- 首先你从键盘(输入设备)输入数据;
- 计算机将你输入的数据加载到内存中;
- CPU从内存中获取你输入的数据,然后进行相关的处理(加密类似的操作);
- CPU将处理完成的数据重新加载到内存中;
- 网卡这个输出设备需要从内存中获取CPU处理完的数据。
你朋友的电脑:
- 你朋友电脑上的网卡充当了输入设备,获取你发送的信息;
- 信息加载到内存中;
- CPU从内存中获取信息,进行处理(解密);
- CPU将处理完成的数据重新加载到内存中;
- 显示器充当了输出设备,从内存中获取CPU解密的相应信息,也就是你所发送的信息。