理解冯诺依曼体系以及操作系统

一、冯诺依曼计算机体系

组成计算机首先我们需要有计算器——也就是我们常说的cpu:

这是百度百科对cpu的解释:
是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。中央处理器主要包括两个部分,即控制器、 运算器 ,其中还包括 高速缓冲存储器 及实现它们之间联系的数据、控制的总线。中央处理器的功效主要为处理指令、执行操作、控制时间、 处理数据
地位:
计算机体系结构 中,CPU 是对计算机的所有硬件资源(如存储器、输入输出单元) 进行控制调配、执行通用运算的核心硬件单元。CPU 是计算机的运算和控制核心。计算机系统中所有软件层的操作,最终都将通过指令集映射为CPU的操作。

说白了它的功能就是执行指令、对数据进行计算。

计算器有了,我们还要有数据进行计算,数据从输入设备来:

输入设备非常常见——键盘、摄像头、网卡、磁盘、甚至你的手机屏幕都是输入设备。

现在外面可以向cpu传入数据,但是计算结果我是需要看到的,这就需要有输出设备了:

输出设备就类似于——显示器、磁盘、网卡、声卡音响等等。

好啦,这样我们就组装好了一台计算机,输入——计算——输出,不过这样的计算机是不合格的,他只能做一些简单的工作——效率很低。

有同学会好奇,我的cpu计算速度这么快,怎么会效率低下呢————因为数据的传输是很慢的,光cpu计算快是没用的,这就是短板效应。

我们的超级大牛就提出了一个解决方案:给这套体系加上一个内存。

这样cpu就不再接触输入输出设备了,这部分内存可以在cpu进行运算的时候,将下一个任务或者多个任务先从输入设备储存好,等cpu计算完直接将任务传输过去。

这样就通过内存去除了cpu传输数据的负担。

这个内存的传输速度是优于传入传出设备的

反正内存就是用来储存数据的,为什么不能直接用磁盘来当内存呢,还是那句话,磁盘太慢了,不过相应的他也有造价便宜、空间大的优点。符合内存要求的相应的造价要高一些,而且就成本来说空间不会特别大。

前面cpu提到了高速缓冲存储器,这个速度快,但苦于造价贵无法大规模使用。

到这里我们也看出来了,我们这里几乎都是跟根据成本选择了性价比更高的设计。

二、理解冯诺依曼体系

举一个例子,你和你朋友在qq上聊天,数据流是怎么在这个体系里流动的。

我们只考虑硬件层面,不考虑qq软件的影响。

在第一台机器:

首先,我在键盘下敲下了“在吗?”(输入设备)

这个数据呗储存到了内存空间,等待cpu来处理。

然后数据返回到内存。

网卡(输出设备)将数据发送到服务端。

在第二台机器:

网卡从服务器将数据下载。

然后传给内存。

内存再给cpu进行解析。

解析后返回给内存。

最后显示器读取出这段消息。

你的朋友就接收到这个消息了。

三、管理的本质

举个与我们相近的例子:

简易的校园的管理

实现校园管理至少需要一下三种角色

校长——制定决策

辅导员——执行决策

学生———参与执行决策的过程

校长制定决策,让辅导员去执行,学生参与决策执行的程

管理:管理者和被管理者其实是不需要直接进行沟通的

如果不进行直接接触的话管理者如何对被管理者进行管理呢?

比如说,校长要是要决定是否要给学生加学分或则开除,只需要知道在总体中,那些是学习好的,那些是学习不好的就行了。

所以:管理者只需要被管理者的数据就可以对他进行管理了。

得出结论:

管理的本质:对被管理对象的数据进行管理。

管理者是通过辅导员获得的数据。

如果只有一两百个学生倒还好,花点时间能看出那批人比较优秀。但如果学生数量上千上万呢,这就不得不将他们进行组织了。

现实生活中校长会使用excel表格将学生的数据统计管理。

在编程的角度也有一个功能强大的工具帮助我们进行管理——数据结构。

通过集合,将学生从一个个个体变成了一个个数据对象,再通过链表将这些数据连接在一起。

(用链表的原因是因为操作系统确实特别喜欢用到这个数据结构)

将上面那个例子和操作系统对应一下:

校长——操作系统

辅导员——硬件驱动

学生———硬件

管理的本质:先描述,再组织

描述就是构建struct这个过程,组织就是调用数据结构中增删查改的过程。

四、操作系统

先讲结论

操作系统的作用就是对软硬件资源进行管理,为什么要对软硬件资源进行管理呢?

操作系统对下通过管理好软硬件资源(手段),对上给用户提供良好(安全、稳定、高效、功能丰富的)的执行环境(目的)

上面的例子是为了更好的理解管理的这个过程,下面的例子是为了更好的理解操作系统。

再举一个更直观的例子——银行

在银行里面,有很多服务器电脑、桌椅板凳、仓库、员工宿舍。

这些是我们能直观的在银行里面看到的具体事物。这些东西又有相关的部门进行管理

我们的行长就通过这些部门对下面各个设施进行管理,这也就是操作系统的地位。

现在一个银行里面该有的都有了,可以开始迎客了吗?

比如说我来存钱,我能直接走到仓库里面去吗?我要办张新卡,能直接去服务器上填写信息吗?

这显然不能,我们需要将银行封装起来,这是为了保护银行也是为了保护每个用户权益不被侵害。

银行被封装起来了还是需要提供服务的,客人需要接口向你索要服务,因此银行还是会提供一些接口:

这就相当于现实生活中的银行柜台:

用户通过这些柜台向银行索要服务。

这样的过程具象在操作系统上就是:

用户调用操作系统提供的接口向操作系统索要服务,

操作系统调用硬件驱动,

硬件驱动再驱动硬件完成相应的任务,

最后用户获得了相应的服务。

银行封装的过程意思就是:操作系统会给我们提供良好的服务,但这不意味着操作系统就相信我们。

其实我们所学习到的stdio.h这类头文件、shell工具集、图形化界面,都是通过这些接口来完成工作的。

猜你喜欢

转载自blog.csdn.net/qq_64484137/article/details/129567344