Linux系统编程——冯诺依曼体系结构,操作系统

一、冯诺依曼体系

冯诺依曼是一位著名的数学家,他主要研究博弈论,但他在计算机学科有着重要的贡献,其中一个就是提出了冯诺依曼体系。

冯诺依曼体系为计算机的构建提供了很好的模板, 现如今所有的计算机都遵循着冯诺依曼体系的规则。

从上图中可以看到冯诺依曼体系的主要构成,左端是输入设备,中间是存储器,最右端是输出设备。而存储器与下端的运算器和控制器相关,其中运算器和控制器合称为中央控制器(CPU)。

这个体系结构看上去十分简单,似乎是现如今所有稍微对电脑有点了解的人都能提出的结构,但对当年那个刀耕火种的时代而言,这几乎是一种跨时代的想法,并不是所有人都能理解冯诺依曼的思想。

1.1输入设备

常见的输入设备包括:键盘,磁盘,网卡,鼠标,摄像头。输入设备很好理解,就是用于输入数据的设备。

1.2存储器

实际上就相当于现在电脑中的内存。

1.3输出设备

常见的输出设备包括有:耳机,音响,显示屏,磁盘,网卡等。输出设备就是用来输出,显示数据的设备。

1.4运算器

我们生活中常见的有两种运算——算术运算,逻辑运算。算术是对数字的加减乘除,而逻辑运算是判断对错的。

我们的CPU有了运算器就能对数据进行运算处理,再将处理完的数据返回给存储器,再由存储器交给输出设备。

1.5控制器

控制器是响应外部事件的一种设备,如果外部的事件已经准备就绪,那么控制器会合理安排它们的处理时间,这可以使得CPU处理事件更加有序。

二、为什么冯诺依曼体系中存在存储器?

上面已经说了,存储器其实就相当于内存,很多人可能会有疑问,我们处理外部的数据的时候,直接把数据交给CPU直接处理不就好了?为什么要将数据转交给内存,由内存交给CPU呢,多此一举!

要理解这个现象,必须了解到我们计算机结构中运算处理数据的设备的不同效率。

从效率上来说:CPU和寄存器>>内存>>磁盘。他们之间的差别是数量级的差别,也就是说效率的差别是极大的。如果我们直接从磁盘中读取数据,再将数据写回磁盘,这时间的消耗将远远大于内存处理这一过程的时间。

所以说我们在输入设备和CPU之间加上一个存储器是很有必要的,它是一种相当于缓存数据的介质。我们必须依靠它,使得我们处理数据更加高效。这也是冯诺依曼体系能够成功,流行的原因!

内存高效并不意味着它足矣代替磁盘这类外存,一个很现实的原因就是,内存太贵了

实际上寄存器的造价也远远高于内存,上面所罗列的三个设备,越是高效,就越接近CPU,造价就越高,实际能够存储的大小也越小。这就是为什么一般的内存只有4~8G,而一个磁盘随随便便就是几个T的原因。

一根几个G的内存条就足矣买上T数量级的磁盘了。我们没有必要为了效率牺牲价格。

三、操作系统

我们使用了这么久的电脑,我们是否是直接和硬件打交道呢?

答案是显然的,并不是,原因是我们不会直接使用硬件。那硬件是如何知道我们的需要,并做出相应的工作呢?

正是因为有操作系统的存在,操作系统是一个软件,它是存在于硬件层和用户使用层的中间层。

是用户和硬件交互的通道。

实际上操作系统之下还有一层硬件驱动,如果说操作系统是决策者,那么驱动程序就是一种执行者,它对硬件施行直接的管理。

操作系统管理的方式是得到数据,做出相应的决策,达到管理的效果。如果说数据量庞大且杂乱,那么操作系统就需要对数据对象进行描述——C中的结构体和C++中的类就能很好的做到这一点。

最后对庞大的数据进行组织起来,这就依赖于数据在实际中的逻辑结构——如顺序结构,树状结构,图结构等等。我们就可以在计算机中用链表,顺序表,树,图等抽象数据类型进行组织数据。

而这些不同的数据结构还有不同的算法,可以解决不同的问题。操作系统要处理大量无章的数据,它当中存在着许多的数据结构和对应的算法,这是很有必要的,也是合理的。

总之,操作系统是介于用户和硬件之间的,它为用户提供良好的服务,并管理着下层的硬件和驱动程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值