Linux--3.冯诺依曼体系与操作系统概念

冯诺依曼体系结构

操作系统(Operator System)

冯诺依曼体系结构

在我们开始学习操作系统的过程中,我们是绕不开冯诺依曼体系结构的,那么什么是冯诺依曼体系结构呢?

我们常见的计算机,如笔记本,台式机,不常见的计算机,如服务器等,大都遵守冯诺依曼体系

Linux--3.冯诺依曼体系与操作系统概念_第1张图片

 上面的图就是最基础的冯诺依曼体系结构,我们对其中很多设备先进行解释

输入设备:键盘,鼠标,摄像头,麦克风,网卡,硬盘...

输出设备:显示器,声卡,喇叭,网卡,硬盘....

我们的输入输出设备可以统称为外部设备,外设,这里我们的储存器,就是我们的内存,包含(运算器,控制器)的中央处理器就是我们的CPU

在这个体系中我们可以发现,输入设备输入数据,先传输给内存,而后内存再将数据传输给CPU进行处理,处理完毕后再将数据返回给内存,而后内存将数据传递给输出设备进行输出,而这一系列的设备的操作,都是由控制器来控制的,控制数据何时流入,何时处理,何时流出等,在我们之前的学习我们知道,我们的CPU储存效率很高,处理数据速度很快,那为什么我们不直接将输入设备输入的数据给到CPU处理,然后直接给输出设备输出呢?这样数据传输不就更快了吗?

要想回答这个问题,我们就需要了解一下储存设备了

Linux--3.冯诺依曼体系与操作系统概念_第2张图片

 在这个图中,罗列了我们的储存设备,以及关系层次,我们可以看到,我们的寄存器(也就是CPU中的运算器),容量最小,价格最为昂贵,其次是CPU中的三级缓存,容量依次降低,在然后才是我们的内存,也就是我们冯诺依曼体系中的存储器,后面就是我们的硬盘光盘磁带等

CPU--寄存器 纳秒级存储效率

内存--微秒级存储效率

硬盘 SDDFlash --毫秒级存储效率

光盘磁带等速度更低

 我们可以发现,距离CPU越近,存储效率越高,单价成本越高且容量一般较小,那么此时我们再来回顾一下冯诺依曼体系,若是没有我们的内存又会是怎么样的呢?因为输入输出设备距离CPU距离很远,所以他们的传输数据的效率相对于CPU很低,此时输入设备输入数据,CPU很快处理完成,将数据给到输出设备,而此时输入设备因为速度很慢,后面的数据慢慢的来,CPU又一下子处理完成了,输出设备也是慢慢的输出,这就导致了CPU处理效率被很大程度的浪费了,这就如同我们的木桶原理一样,输入输出设备很慢,CPU很快,展示到我们用户面前的整体效率,就由最慢的输入输出设备决定,也就很慢,而我们的内存(使用掉电易失性存储介质)存储速度是比较快的,相对于硬盘等,所以我们引入了内存提前储存数据,我们可以通俗的理解为,速度快的内存在给速度慢的输入输出设备做缓存,先对数据进行了预加载,而后以内存的速度将数据给到CPU进行运算,运算完成后再写回内存,内存再将数据以内存的速度给到输出设备输出显示,于是就形成了我们的冯诺依曼体系

内存提高冯诺依曼体系结构效率的方法

在我们拥有了内存这个“缓冲设备”之后,他是如何来提高我们整体结构效率的呢?

首先我们知道,内存具有数据的储存能力,其大小通常为4G/8G,虽然大小并不多,但是其有了这点大小也就拥有了预装数据的能力,因为这一点,才让其拥有了提高效率的能力,主要的实现其实是依靠我们的局部性原理,根据统计学的原理,当一个数据被访问时,其下次访问有很大概率访问其周围数据的值,所以当我们的CPU获取某一个数据时,内存就可以将该数据之后的一部分数据加载进来,而因为CPU与内存是可以同时工作的,这样CPU就可以很方便的从内存中获取数据进行处理

我们的输出也是一样的,CPU处理完的数据放回内存,当输出设备需要数据时再从内存中直接获取,这也就是我们的缓冲区的由来,当内存中设定的缓冲区满了,就输出这部分内容,满了就输出,不满就继续存储

其实站在数据层的角度上来看CPU不和外设打交道,直接和内存进行打交道,而站在外设角度,数据不和CPU打交道,直接和内存打交道,内存是计算机数据的核心

冯诺依曼体系的几点总结

数据从外设传输到内存,传输到什么位置,这些工作都是由我们的OS操作系统完成的

CPU与外设不互相直接接触,而是通过内存

控制器操控所有设备进行操作

操作系统

操作系统概念

 操作系统是一款做软硬件管理工作的软件(硬件:冯诺依曼中的所有设备。软件:1.安装软件,卸载2.在系统层面,文件,进程,驱动)

任何计算机系统都包含一个基本的程序集合,称为操作系统 (OS)。笼统的理解,操作系统包括:
内核(进程管理,内存管理,文件管理,驱动管理)
其他程序(例如函数库, shell 程序等等)

设计OS的目的

与硬件交互,管理所有的软硬件资源
为用户程序(应用程序)提供一个良好的执行环境

其实,我们的计算机就是由一大堆计算机底层的硬件构成的,而这些零零散散的计算机硬件,却实际都遵循着冯诺依曼的组织形式,而要实现对这些零散的硬件进行有秩序的管理,就需要一个可以统筹在整个硬件层面上的一款软件,而这个软件,就是我们的OS操作系统

Linux--3.冯诺依曼体系与操作系统概念_第3张图片

 这就是操作系统管理软硬件的框架,我们可以看到,我们的操作系统是在逻辑中间的,之上,是用户层的软件操作,软件操作接口,以及系统调用接口,之下,就是我们的驱动程序,而驱动程序之下,就是我们控制的各类硬件设施

操作系统在这些软硬件之间完成着他们的管理,主要可以分为下列部分

  1. 内存管理:内存分配、内存共享、内存保护以及内存扩张等等。
  2. 驱动管理:对计算机设备驱动驱动程序的分类、更新、删除等操作。
  3. 文件管理:文件存储空间的管理、目录管理、文件操作管理以及文件保护等等。
  4. 进程管理:其工作主要是进程的调度。

Linux--3.冯诺依曼体系与操作系统概念_第4张图片

 而我们如果想更深刻的理解操作系统对与软硬件的管理,我们可以将其类比成我们所熟知的学校管理体系

管理:先描述,再组织

对于我们的学校管理体系而言,我们的学生,就像我们的各个软硬件设施一样,我们的操作系统,就如同我们的校长一样,具备决策的能力,而要完成对整个学校的管理,管理学校上万名师生,仅仅拥有决策的角色是远远不够的,为了方便完成对学校学生的管理,所以就出现了我们的执行层(各类驱动),辅导员,宿管阿姨等,我们在学校可以感受到,与我们直接接触的都是辅导员与宿管阿姨,这些规则,策略的执行者,但是学校的很多决定,制度,都是由校长(决策层)制定的,而我们是没办法直接接触到校长的(除过某些特殊情况),这也就是对应的我们操作系统通过驱动去管理软硬件的过程

那如果我们的校长想要去查看学生的信息呢?此时就需要将学生的信息存储起来,而这一套抽象的信息就化为了结构体/C++中的对象,当学生的数量多了起来,我们就通过数据结构,链表,数组,栈,树等来进行存储,而我们去学习数据结构,也正是为了学习去如何管理数据,管理也正是先通过信息描述,然后再将多个被管理者的信息结构利用数据结构组织起来,最后转为了对数据结构的管理

你可能感兴趣的:(平生的Linux货架,linux,centos)