冯诺依曼体系与操作系统

看完本文,你会了解到:

  • 认识冯诺依曼体系结构

  • 操作系统概念与定位

目录

冯诺依曼体系结构

引入冯诺依曼体系结构

所有的设备都只能和内存打交道

对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上

冯诺依曼体系结构带来的启示

操作系统(Operator System)

基本概念

设计操作系统(OS)的目的

定位

如何理解管理

计算机软硬件架构推导

谈谈进程

冯诺依曼体系结构

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

引入冯诺依曼体系结构

先上经典老图:

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

计算机是硬件和软件的完美结合,通过冯诺依曼体系结构的学习我们能了解其硬件的组成原理

  • 输入设备:包括键盘, 鼠标,扫描仪, 写板,网卡等。

  • 中央处理器(CPU):含有运算器和控制器等。

  • 输出设备:显示器,网卡,打印机等。

注意点:

  • 网卡等设备既是输入设备,也可以是输出设备。

  • 这里的存储器指的是内存。

所有的设备都只能和内存打交道

为什么外设不直接和CPU进行交互?

        众所周知,CPU很快,而外设是很慢的,如果直接交互,CPU就不得不等待慢吞吞的硬件,造成效率上的浪费。为了提高整机的效率,所以我们设置内存,所有设备都只能和内存交互,CPU处理内存中数据的同时,外设也可以向内存中输入数据。

外存和内存

  • 这里的存储器指的是内存,而内存有着掉电易失性,速度不快也不慢(相较于CPU慢,比外设快)。

  • 磁盘是外存,拥有永久存储的能力,速度慢(相较于内存)。

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

IO是什么?

我们平时所说的IO是什么呢?I是指input,我们将数据从外设加载到内存。O是指output,我们将数据从内存输出到外设

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

对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上

请解释,从你登录上qq开始和某位朋友聊天开始,数据的流动过程。从你打开窗口,开始给他发消息,到他看到消息之后的数据流动过程。

        我们先通过键盘输入消息,然后加载到内存,CPU从内存中读取数据,进行加密和计算后再放到内存,显示器(显示消息到屏幕上)和网卡(发送数据到网络)再从内存中读取数据。(忽略网络部分处理细节)

        朋友电脑的网卡从网络上获取到了我们发送的数据,然后加载到内存,CPU从内存中读取数据,进行解密和计算后再放到内存,显示器再从内存读取相关的数据,显示到屏幕上。

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

冯诺依曼体系结构带来的启示

  1. 我们所写的程序都需要先加载到内存中。

  2. 所有的设备都只能和内存打交道

  3. cpu要访问我的代码和数据只能从内存中访问。

操作系统(Operator System)

基本概念

操作系统是一款进行软硬件资源管理的软件

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。

笼统的理解,操作系统包括:

  • 内核(进程管理,内存管理,文件管理,驱动管理)

  • 其他程序(例如函数库,shell程序等等)

设计操作系统(OS)的目的

        对下通过合理的管理好软硬件资源(手段), 对上给用户提供良好(安全的、稳定的、高效的)的执行环境(目的)。

定位

        在整个计算机软硬件架构中,操作系统的定位是:一款纯正的搞管理的软件。(对软硬件资源进行管理)

如何理解管理

以日常生活为例:

一个学校的校长要如何对学校进行管理呢?

        在学校的生活中,我们很少会与校长见面,但我们的数据校长是能够随时拿到的(各种信息),校长对我们的管理本质上是对我们的信息进行管理

  • 管理者不需要和被管理者直接交互,依然能够管理被管理对象。

  • 管理者通过收集上来的数据来做决策。(如发奖学金按绩点排名等)

  • 如何管理被管理者的数据?先描述,再组织,如用struct结构体来描述一个学生的信息,我们用链表将该结构体的对象链接起来,对学生数据的管理就变成了对该链表的增删查改操作

 冯诺依曼体系与操作系统_第5张图片

计算机软硬件架构推导

驱动

先描述,再组织(用struct结构体描述起来,用链表或其他高效的数据结构组织起来)。通过驱动程序来管理硬件。(这也是为什么我们用蓝牙和鼠标等外设时需要对应的驱动程序)

冯诺依曼体系与操作系统_第6张图片

系统调用接口

        为了安全,操作系统不相信任何人,但必须给上层用户提供各种服务。所以操作系统提供部分系统调用接口。

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

冯诺依曼体系与操作系统_第7张图片

对系统调用的封装

系统调用接口使用的成本太高了,为了方便用户的使用,进行了封装。如c/c++语言库中封装了系统调用接口。

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

 冯诺依曼体系与操作系统_第8张图片

用户进行操作

我们平时的操作基本都停留在用户层。

冯诺依曼体系与操作系统_第9张图片

谈谈进程

        那在还没有讲进程之前,就问大家,操作系统是怎么管理进行进程管理的呢?很简单,先把进程描述起来,再把进程组织起来!下篇博客将介绍进程的基本概念。

    

你可能感兴趣的:(Linux学习,linux,c++,学习,操作系统)