【Linux系统】—— 冯诺依曼体系结构与操作系统初理解
1 冯诺依曼体系结构
我们的计算机是由硬件构成的,但各种硬件如:显示器、键盘、网卡、磁盘等硬件设备并不是杂乱无法揉在一起就能成为计算机的,所有的计算机都需要按照一定的组织结构将所有的硬件划分在一起,而当前最常见的计算机组织结构就是冯诺依曼体系结构。
1.1 基本概念理解
对上图各个部分的介绍
输入设备:
键盘、鼠标、话筒、摄像头、网卡、磁盘……输出设备:
显示器、磁盘、网卡、打印机……CPU(中央处理器):主要由运算器和控制器组成。
运算器主要是用来进行运算的,我们所做的运算主要分为两种:算术运算(加减乘除)和逻辑运算(真假、位运算)
控制器主要是用来控制CPU去取指令、分析指令、执行指令等工作存储器:现阶段理解存储器就是内存!
其他概念介绍:
外设: 输入输出设备我们统称为外设。外设需要做的是:将输入设备的数据读到内存里,将内存中的数据输出到外设中。
磁盘和网卡比较特殊,他们既是输入设备又是输出设备。网卡因为网络我们还没学习,暂时先不做介绍。IO: 之前我们写C/C++程序进行文件读取时,读文件就是将磁盘中的文件读到内存里,写文件就是将内存中的文件写到磁盘中。我们将这种读写的动作称为 input/output,即IO。
理解IO应站在内存的角度,输入设备把数据交给你(内存)就是input;你(内存)把数据给输出设备就是output
1.2 CPU只和内存打交道
我们都知道,我们写的程序要运行,必须先将生成的可执行文件加载到内存中,那么程序运行之前放在哪里?
答案是在磁盘。
程序本质就是一个文件,它就是我们编译好的,在特定路径下的二进制文件。
为什么程序要运行必须先加载到内存中呢?
上面的冯诺依曼体系结构图中,红色箭头表示数据的流动方向。从图中不难看出:CPU只能从内存中读写数据! 在数据层面上,CPU只认内存,压根不认什么输入输出设备。
那我们的软件运行,是谁在运行我们的软件呢?正是CPU,是CPU执行我们的代码,访问我们的数据
可是CPU无法读取外设,所以我们必须把程序加载到内存,如此才能被CPU访问到。
这是由冯诺依曼体系结构规定的。
在冯诺依曼体系结构中,数据的流动方向永远是:输入设备 -> 内存 -> CPU -> 内存 -> 输出设备
但"流动"这个词太抽象,我们换句话:数据流动的本质是从一个设备 “拷贝” 到另一个设备
所以可以推导出:冯诺依曼体系结构的效率取决于设备的"拷贝"效率决定
小结:
CPU在数据层面,只和内存打交道;外设只和内存打交道。
1.3 为什么冯诺依曼是这种结构
所以冯诺依曼为什么是上图的结构呢?可不可以不要内存,直接:输入设备 -> CPU ->输出设备 这种结构呢?


最低0.47元/天 解锁文章
2519

被折叠的 条评论
为什么被折叠?



