第八章 冯诺依曼结构与操作系统

一、冯诺依曼体系结构

1、具体的内容

在这里插入图片描述
我们现在用的电脑几乎全都符合冯诺依曼体系结构。其中输入设备常见的有:磁盘、键盘、鼠标、麦克风等。常见的输出设备包括:磁盘、显示器、音响等。除此以外,输出设备、输入设备统一叫做外设,存储器又叫做内存,运算器和控制器叫做CPU。介绍到这里我们会发现一个现象,有的设备即是输入设备也是输出设备,比如刚刚提到的磁盘。

接着我们将目光聚焦到图片中的红色箭头,即数据的流动。假设我们的输入设备和输出设备都是磁盘。那么此时数据就会从磁盘中流向内存,然后CPU从内存中调用数据进行运算,然后将运算的结果返回给内存,内存再将运算后的数据传入磁盘中。在这个过程中,我们会发现内存在外设和CPU之间架起了一座桥梁。

说到这里有些读者可能就会有一个疑问:难道CPU不能直接和外设进行数据的交流吗?

想要回答这个问题就需要让大家了解一下内存的作用了。

2、内存的作用

随着时代的发展,CPU的运算速度在不断地增长,磁盘的读取速度也在不断地增长。但是磁盘的读取速度和CPU的运算速度却依然有着天壤之别。这就导致CPU高速地计算着磁盘龟速输入的数据。根据木桶效应,计算机的整体运算速度将由磁盘的读取速度决定,也就是说CPU的提速并没有太大的意义。
在这里插入图片描述
那么为了解决这一问题,就在磁盘和CPU之间建立了一个媒介:内存。内存的读取速度则要大于磁盘的读取速度。内存会在CPU进行数据运算之前,提前将可能使用的数据从磁盘中读取出来。这样就能保证CPU能够及时从内存中快速地调取数据进行运算。

这里还有一个问题,既然内存的读取速度很快,我们为什么还不用内存代替磁盘呢?这个问题的背后是一个成本问题,内存的成本比磁盘的成本大得多。这也是为什么我们的笔记本电脑磁盘几乎都是512G,而内存只有16个G。

二、操作系统

1、什么是操作系统

操作系统是一个管理软硬件资源的软件。操作系统的作用有两个,一方面是与硬件做交互,管理所有的软硬件资源,另一方面是为各种在操作系统之上开发的应用程序提供良好的运行环境。

2、操作系统工作逻辑

(1)对硬件的管理

我们先来解释第一个问题:操作系统如何管理硬件?

在回答这个问题之前,我们需要先明白管理的对象是什么。在大学当中,校长如果想管理某个学院学习不好的学生,校长绝不会亲自去到该学院然后亲自教育这些学生。那么校长会怎么管理呢?

首先,学院会将院内的学生的个人信息、学习成绩等数据整理出来,然后上报给学校,校长在浏览这些数据的过程中发现了某些学习成绩较低的学生,然后将这些学生的个人信息告诉学院的辅导员,让辅导员去给这些学生做学习上的指导工作。也就是说,管理的对象是数据,而不是具体的事物。

上述过程可以画成下面的流程图:
在这里插入图片描述

那么这一管理流程和操作系统有什么关系呢?

其实,上图中的学生可以看作具体的硬件,那么系统将会创建一些结构体变量来描述这些硬件的属性和状态,然后将这一些列单独的结构体利用某种数据结构统计起来,此时此刻,操作系统对硬件的管理就转化为了对数据的管理。当操作系统发现某些数据需要调整的时候,就会将对应信息告诉硬件驱动,由硬件驱动去对具体硬件做调整。

该过程可以做如下映射:
在这里插入图片描述

上述就是操作系统对硬件进行管理的大体逻辑。

那么操作系统如何向上对应用程序提供更好的服务呢?

(2)对应用软件的服务

一个应用软件想要完美的运行就必须得到硬件的支持。想要得到硬件的支持,该应用软件就需要和操作系统打交道。如果操作系统完全暴露在外,那么应用软件就可以为所欲为的利用操作系统对硬件数据做管理。这样做肯定是不安全的。那么为了解决这一问题,操作系统对外会表现为一个整体,但是会提供大量安全、基础的接口。应用软件可以通过这些接口来和操作系统打交道。这样做不仅能够保护好操作系统和硬件设备,还能够向上提供合适的服务。这些由操作系统提供的接口叫做:系统调用(system call)。

但系统调用在使用上,功能相对基础,对用户的开发水平要求较高。所以,部分高水平、有心的开发者就对这些系统调用做了适当的封装,进而形成了库,有了库以后,上层用户的开发工作效率就大大提高了。我们在使用Linux时的指令、shell外壳其实也是系统调用被封装后的结果。

三、总结

那么经过上面的介绍,大体可以分为两方面,作者先介绍了冯诺依曼体系结构,而这个结构针对的是硬件之间的交互逻辑。其次,我们又向大家讲解了操作系统的作用以及工作的大体逻辑。

所有的内容可以总结为下面这张图:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_72060925/article/details/131580895