冯诺依曼体系结构与操作系统

目录

一、冯诺依曼体系结构(硬件)

1、介绍

2、数据层面分析 

3、实例 

二、操作系统 (软件)

1、什么是操作系统?

2、操作系统存在的意义?

3、操作系统如何管理?

4、系统调用和库函数概念

5、总结


一、冯诺依曼体系结构(硬件)

1、介绍

         冯.诺依曼体系结构是现代计算机的基础,现在大多计算机仍是冯.诺依曼计算机的组织结构,只是作了一些改进而已,并没有从根本上突破冯体系结构的束缚。冯.诺依曼也因此被人们称为“计算机之父”。然而由于传统冯.诺依曼计算机体系结构天然所具有的局限性,从根本上限制了计算机的发展。

冯诺依曼体系结构与操作系统_第1张图片

        上面是冯诺依曼体系结构的示意图,大体上由四部分组成,分别是输入设备、输出设备、存储器、中央处理器(运算器、控制器)。

输入设备:键盘、磁盘、网卡、显卡、话筒、摄像头等

输出设备:磁盘、网卡、显示器、音响等

存储器:这里指的是内存 

中央处理器:cpu

2、数据层面分析 

        下面我们从数据流的层面来认识了解冯诺体系结构,其中存储器(内存)是核心设备,中央处理器是无法与输出、输入设备打交道的,因为他们对数据的处理是不在一个量级上的,必须通过内存在中间进行制衡。

        为了使得计算机能够快速的进行相关数据的处理和运算,内存需要提前为cpu准备好数据,当cpu需要数据输入时,内存能够将准备好的数据直接传递给cpu,而不是说内存需要临时去取数据给cpu。

        因此存储器与cpu的交互过程中,存储器一定尊循着定某种层级关系,而对于存储器可以划分为下图所示,其中越靠近塔尖位置的部分其对数据处理速度越快,距离cpu越近且制作成本也是最高的。

冯诺依曼体系结构与操作系统_第2张图片

3、实例 

那么在数据层面上,冯诺伊曼体系结构到底是如何工作的呢?下面我们通过一个例子来说明下。

实例:假设你现在与朋友通过微信聊天,那么你们的聊天内容是如何进行传输的?

冯诺依曼体系结构与操作系统_第3张图片

总结:任何外设,在数据层面上基本优先和内存打交道;CPU在数据层面上也是直接和内存打交道。

二、操作系统 (软件)

1、什么是操作系统?

        操作系统是一款专门针对软硬件资源进行管理的软件,其只有在启动的情况下才有意义,本质上就是计算机运行时加载到内存中的一款软件。

2、操作系统存在的意义?

        对下:管理好软硬件资源。

        对上:为用户提供稳定的、高效的、安全的运行环境。

3、操作系统如何管理?

        我们以一现实案例来引入,试想一下一所大学当中的校长以及高层领导是如何实现对学校学生进行管理的?他们会直接参与到对学生的管理工作当中么?比如:学生的日常上课、生活、考试等。答案是否定的。对于学校的高层领导,他们是通过相关学生的数据来对其进行管理,例如:成绩、出勤、竞赛获奖等。会有类似于C语言中的结构体struct对每位学生的信息进行描述,再通过顺序表或者链表等数据结构方式将其组织起来进行管理。其中学生就好比是一个大学管理工作中的最小单位。

总结:在对学生管理上,先对学生用其个人信息描述,然后通过各种组织形式进行管理。

        通过上面的实例,对应于计算机当中,进程就好比是学生个体,而操作系统就好比于学校管理层。那么我们对于实例做出的总结显而易见的也适用于计算机当中。

        下面附上操作系统在整个计算机硬件和用户实现交互中所处的层级图。通过下图我们发现其与我们前面提到的操作系统存在的意义或是为什么存在相呼应。

冯诺依曼体系结构与操作系统_第4张图片

针对上面的层级图我们来加以说明:

1、操作系统对下是不能够直接管理操作底层硬件的,而是通过一系列的驱动来进行操作。

2、用户不能直接调用操作系统,其不信任任何用户;操作系统通过建立系统调用接口供用户使用,我们在语言层面使用的像printf等直接对硬件操作的函数和系统调用接口之间是上下层的关系,函数在使用时会调用系统调用接口。

3、为了方便用户操作,第三方会开发一些函数库(.lib文件)或者封装成指令供其使用。

4、系统调用和库函数概念

系统调用:在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。


库函数:系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。

5、总结

综上所述我们可以的出一下结论:

操作系统管理理念:先描述,再组织,即将对目标的管理转化为对目标数据的管理

你可能感兴趣的:(Linux,linux)