【Linux】感性认识冯诺依曼体系结构和操作系统

文章目录

    • 1、冯诺依曼体系结构
    • 2、操作系统
      • 2.1 操作系统向下对硬件的管理
      • 2.1 操作系统对软件

前言:本章都是为后续进程的理解做铺垫

1、冯诺依曼体系结构

【Linux】感性认识冯诺依曼体系结构和操作系统_第1张图片
我们常见的计算机(笔记本)和我们不常见的计算机(服务器),大部分都遵循冯诺依曼体系。

我们直观的计算机的构成有很多的外设,而输入设备输出设备都属于外设。
其中常见的:

  1. 输入设备:鼠标、键盘、摄像头
  2. 输出设备:显示器、打印机、音响
  3. 既有输出又有输入的设备:网卡(将数据传到网络,也可从网络拿去数据)、磁盘(程序从文件中读取、写入)

接下来我们主要讨论数据信号
上图中的存储器代表的是内存,是一种具有临时存储能力的设备。
中央处理器(CPU)由运算器和控制器以及其它构成。

冯诺依曼体系结构规定

  1. CPU不和外设直接打交道,和内存直接打交道。
  2. 所有外设,有数据需要载入,也是通过外设载入到内存,同样数据写出也是从内存到外设中。

接下来让我们试着解释一下

我们知道这是规定,那么在数据层面CPU只和内存打交道为的是什么呢?

【Linux】感性认识冯诺依曼体系结构和操作系统_第2张图片
我们不难理解,CPU的速度很快,外设的速度较慢。

其实它们三个的关系,遵循着“水桶效应”,容量取决于最低的木板。

如果CPU直接和外设打交道,由于外设对数据的处理速度相对CPU是非常慢的,计算机的整体效率就非常慢。

为了提高整体效率,让它们通过内存进行交互,可以适配CPU和外设速度不匹配的问题。

内存的出现,使得可以通过外设将数据预先写入到内存,CPU也可以预先写到内存中,以达到计算机整体效率的提高,所以内存也就相当于一个缓存。
【Linux】感性认识冯诺依曼体系结构和操作系统_第3张图片


接着我们可以通过实例感悟一下在数据层面

如果我们将一句 “在吗” 通过微信传给一位朋友,不考虑网络,数据流是如何流动的

我们通过键盘输入通过我们电脑内存,经过CPU处理再经过内存出现到我们屏幕上,数据并且也从内存传输到了网卡上。朋友通过网卡输入数据到内存,经过CPU处理再经过内存出现到朋友的显示屏上。
【Linux】感性认识冯诺依曼体系结构和操作系统_第4张图片


拓展知识:
其实CPU是比较" 笨 "的!

CPU只能接受别人的指令,别人的数据,然后执行别人的指令,计算别人的数据!

那CPU是如何识别别人的指令呢?

其实CPU拥有着自己的指令集,我们写的代码最后转换成二进制可执行文件,就是转换成CPU能识别的指令!


外设向内存中写入读取数据,这种过程叫做IO过程(input,output)。


总之这一节重点就是:CPU不会和外设直接沟通,只和内存直接打交道。

2、操作系统

前面说到,内存的出现,使得可以通过外设将数据预先写入到内存,CPU也可以预先写到内存中,以达到计算机整体效率的提高。

那么谁帮忙预先处理呢?
操作系统!

操作系统是一个进行管理软硬件的软件。


为什么要管理?
从大概来说,操作系统向下合理的管理各种硬件(手段),向上为用户提供提供良好的(安全的、稳定的、高效的)执行环境(目的)。

结构关系:
【Linux】感性认识冯诺依曼体系结构和操作系统_第5张图片

2.1 操作系统向下对硬件的管理

我们先看向下合理管理各种硬件

那么如何进行管理的呢?

我们可以将这个通过一个例子更好理解一下,我们将操作系统看作校长,驱动看作辅导员,底层硬件看作学生。

校长几乎不与学生打交道,依旧能将学生管理起来。
管理者几乎不需要和被管理者进行交互依旧能管理起来!

校长是如何对学生进行管理呢?
管理者通常是有重大事件决策权的人,辅导员和学生没有决策权。
而决策是要有依据的!
虽然学生不直接与校长打交道,但是学生的数据,早已被校方拿到。
所以本质不是对人管理,而是对学生的数据进行管理
通过将学生的数据进行管理起来,只要通过数据的增删查改,就能有效的管理每个学生。


管理者和被管理者不直接进行交互,怎么一直拿到数据?
在这两者之间应该还有一个执行者(辅导员),执行上方的命令,与被管理者接触拿到数据,为校方提供数据。
在计算机中,操作系统不与硬件直接交互,而是通过驱动程序去拿硬件数据,交给操作系统。

管理的本质:其实就是对数据的管理

【Linux】感性认识冯诺依曼体系结构和操作系统_第6张图片

管理的本质是通过数据进行管理,那么如何管理数据呢?
决策的执行和数据的采集都由执行者(辅导员)来做。
那么如果被管理者(学生)数据很多怎么办呢?

管理者需要数据的种类是一样的!
首先需要知道学生的各种属性,就像C语言学生管理系统,建立学生结构体那样。
之后根据这种学生类,进行实例化(每位学生填自己信息),最后可以通过一个链表将学生们的信息链接起来,通过对链表结构进行管理,从而管理学生。

所以其实管理的方法其实就像数据结构一样,先描述再组织。

总结一下:
管理的本质:对数据进行管理。
管理的方法:先描述再组织。

其实不只是操作系统对硬件这样,生活中很多的管理现象都大致是这样。

2.1 操作系统对软件

通过一个形象的对比,可以让我们更好认识。
【Linux】感性认识冯诺依曼体系结构和操作系统_第7张图片

操作系统如何管理软件?

首先我们得知道,操作系统也是软件。
人能管理人,软件也能管理软件。

操作系统对上不信任任何软件,但同时也要对任何软件提供服务。
这就相当于银行不信任任何人,但同时也要对老百姓提供服务!
用户不能直接访问操作系统,为的是操作系统需要保护自己!
银行不让老百姓直接访问内部,为的是保护自己!

为了这种情况,操作系统为外部提供 操作系统接口
相当银行为老百姓提供的窗口。
这种接口也简称系统调用
我们将身份证、银行卡交给银行窗口,这叫做传参行为,经过办理返回现金,这叫做返回值过程。
同样在计算机里,我们将字符串参数传给系统接口,返回结果,这就叫做系统调用。

不仅如此,银行也有前台经理或是代为老百姓到窗口办理服务的角色!
在操作系统之上就有一个软件层,如Shell、C/C++库,为了满足用户的指令操作和编程操作。
(比如我们在编程使用printf或cout时,其实就是通过系统调用,将数据传给操作系统,让操作系统为我们在显示屏上打印。)

库函数的来源: Linux操作系统是由C语言写的,操作系统接口,就是C式的接口,而我们编程调用的库函数,其实就是经过封装的操作系统提供的函数调用。

库函数是从系统中提取出来的,我们只能通过系统调用接口访问操作系统,比如fork函数。


对整个计算机结构有个大概的认知,方便一下我们对今后学习的理解。
【Linux】感性认识冯诺依曼体系结构和操作系统_第8张图片

本章完~

你可能感兴趣的:(Linux,linux,运维,服务器)