当前位置: 首页 > news >正文

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

一、冯诺依曼体系结构

冯诺依曼体系结构的推导

首先,大家用电脑必须要用输入设备和输出设备。
就比如说,我们必须要有键盘和屏幕,否则我们就没有办法使用计算机。
计算机会处理我们输入的数据,因此必须要有运算的设备来进行逻辑计算和算数运算。
因此,我们可以得到下图:
在这里插入图片描述
但是,计算机还需要有一个东西来控制整个过程,就譬如控制什么时候从输入设备中获取到数据、什么时候将数据输出到输出设备当中。
因此,我们又得到了下图:在这里插入图片描述
下面,我们分别介绍逻辑运算、算数运算、控制功能的含义

  1. 逻辑运算:逻辑与、逻辑或等
  2. 算术运算:加减乘除
  3. 控制功能:判断、循环、函数之间的跳转

我们将拥有以上三个功能的器件叫做中央处理器,也就是CPU。
有一个效应,叫做木桶效应,一个桶能装多少水,取决于最短板。对于计算机而言,计算机的快慢,也取决于最慢的设备。
在上图中,最慢的设备显然是输入和输出设备,它们远慢于CPU,因此,整个体系结构最终呈现的速度很慢。
为了解决这个问题,我们就不再让输入设备和输出设备直接和CPU进行交互了,而是在中间加到了一个起到缓冲作用的器件,也就是内存。
在这里插入图片描述内存的特点是,比输入和输出设备要快得多,但是又要比CPU慢。内存在它们之间就起到了一个缓冲的作用。
到了现在的这个体系,整个运行流程就是这样子的:

  1. 用户输入的数据先放到内存当中,然后CPU直接从内存当中读取数据进行处理,处理完了之后再把数据放到内存当中,最后内存再将数据输出到输出设备当中。最终就形成了冯诺依曼体系结构。
  2. 第一点是数据的流动过程,但是CPU是可以直接给输入和输出设备发送控制信号的。

那么,最终的图就是这样子的:
在这里插入图片描述
以上的解释在任何一本书上都可以看到,下面说点书里看不到的。

内存在冯诺依曼体系当中的作用

首先,内存是具备存取数据的能力的,而且目前的内存也不小,能存的东西也不少。
既然,内存具备存取数据的能力,那么,它就具备一项能力:预先装载数据

局部性原理:根据统计学原理,当一个数据被访问时,那么下一次访问很大可能就是它周围的数据。

根据局部性原理,当CPU需要某一行数据的时候,内存就会将这一行数据附近的数据也加载进去,而CPU处理数据和内存加载数据是可以同时进行的,那么就可以做到CPU一边处理,内存一边加载。这样,CPU就可以直接在内存中获取到数据。

2.操作系统

2.1操作系统是什么

简单来说,操作系统就是一款管理软硬件资源的软件。

2.2为什么需要操作系统?

  1. 操作系统可以和硬件交互,管理全部的软硬件资源。
  2. 用户直接和硬件打交道成本太高,操作系统可以提供一个良好的执行环境。

2.3操作系统的定位

写冯诺依曼体系结构不是没有理由的。
首先,我们能看得到的是机箱,把机箱的外壳拆开,我们就可以看到组成计算机的硬件。
在这里插入图片描述

这些硬件都安装在主板上,但,实际上,它们都按照冯诺依曼体系结构进行组织。
而,电脑单单只有这有这些硬件是不够的,我们还需要一个东西把这些东西管理起来。管理硬件的东西就叫做操作系统
在这里插入图片描述

现在,我们简单总结一下:

  1. 硬件按照冯诺依曼体系结构进行组织
  2. 硬件被操作系统管理

好,那么,我们来进行下一个问题:操作系统直接和硬件打交道吗?操作系统是怎么样管理硬件的呢?
举个例子,如果操作系统自己和硬件打交道来完成键盘的读取操作,那么只有键盘的读取方式发生了改变,那么操作系统的内核源代码就需要重新编译,这样子的话,维护成本就未免有些太高了。因此,我们又在操作系统和硬件之间加了一层:驱动层。
驱动层的任务就是单独去控制硬件。
在这里插入图片描述
那么,操作系统究竟管理的是什么呢?
操作系统主要管理以下四项:

  1. 内存管理:内存分配、共享、保护、扩张等操作
  2. 驱动管理:对计算机硬件驱动驱动程序的分类、更新、删除等操作
  3. 文件管理:文件存储空间的管理、目录管理、文件操作管理以及文件保护等。
  4. 进程管理:对进程的调度

在这里插入图片描述
操作操作系统的是用户,也就是我们,这一层被称为用户层。
在这一层中,我们可以通过命令行或是图形化界面进行各种操作。
在这里插入图片描述
但是,操作系统为了保护自己,只对上暴露了一些接口,而不是让用户直接访问操作系统,这一部分接口被称为系统调用接口。
在这里插入图片描述
因为要使用系统调用的前提是要对系统有一定了解,因此这些系统调用接口对普通用户来说使用的成本很高。
所以,在系统调用接口之上又封装了一批库,就譬如libc和libc++。我们把这些接口称为用户操作接口。
在这里插入图片描述
实际上,我们在语言级别上使用的各种库,就是封装了系统调用接口。

2.4 结语

至此,我们就了解了操作系统的地位。

3.管理:先描述,再组织。

首先,对于人类而言,若是想要完成一件事,那么我们就一定要先做好决策,之后便是执行决策。
对于计算机而言也一样,但是做出决策和执行决策两件事不是在同一层发生的。
譬如:用户双击了QQ软件,这时操作系统便知道了用户想要打开QQ软件,但是软件是依赖于硬件的,因此“打开QQ”的决策会一步步往下传递到硬件层,最终执行。
那么,这个过程是如何完成的呢?


我们先说一个小故事:

对于学校而言,我们分出如下三个角色:校长、老师、学生。
现在,有一个比赛,需要三个学生参加。
校长知道了比赛的消息了之后,就把这个消息告诉了老师,并要求老师拿出前十名的学生,他将从这10名学生中找出3个学生参加比赛。
于是,老师将这10个学生的信息给了校长,然后校长从里面选出了3名学生,并告诉老师:“你组织以下这三个学生,好好准备准备,参加这次比赛。”
于是,老师听到了这个消息了之后,就告诉了这三名学生,并让他们开展相应的训练。

在上面的小故事中,校长并没有见到这三个学生,但是却管理了这三个学生。
他根据的是什么呢?便是这三个学生的信息,也就是这三个学生的数据。
大家都做过学生管理系统,也一定知道,学生的数据都是用一个数据结构保存的,每一个学生的数据就是一个节点。
那么,对应到上面的例子当中,也就是,老师取出了10个节点的数据交给了校长。校长从中删掉了七个学生,把剩下的三个学生交给了老师。
在上例中,校长是管理者,学生是被管理者,老师是中间的一个媒介。
我们总结一下,就可以得知管理到底是怎么执行的了:

  1. 管理者先把被管理者的各种信息进行描述,然后再用某种数据结构组织起来。
  2. 然后管理者管理对应的被管理者,也就是对数据结构的增删查改。

相关文章:

  • 逆向pyinstaller打包的exe软件,获取python源码(4)
  • Vue2+OpenLayers实现右键菜单功能(提供Gitee源码)
  • 【OMCI实践】ONT上线过程的omci消息(六)
  • 2、并行和并发有什么区别【中高频】
  • Linux | YUM / RPM 常用命令
  • CSDN 博客:CC++ 内存管理详解
  • 2.部署kafka:9092
  • 1.2.2 ASPICE的过程计划
  • 奇安信率先使用DeepSeek落地金融行业了
  • 前端如何解决跨域
  • Python 字符串(str)全方位剖析:从基础入门、方法详解到跨语言对比与知识拓展
  • 夜莺监控 - 边缘告警引擎架构详解
  • Linux(centos)安装 MySQL 8 数据库(图文详细教程)
  • QNX上如何抓tracelogger日志
  • 【Tourism】Hezhou(1)
  • 什么是AI agent技术,有哪些著名案例
  • django校园互助平台~源码
  • 【前端】react+ts 轮播图的实现
  • Qt TCP服务端和客户端程序
  • Project Reactor中 map、flatMap、concatMap 和 flatMapSequential 的区别
  • 建立网站的英文怎么说/seo外链推广工具下载
  • 做婚恋网站要多少钱/优化大师win10
  • 基于vue的个人网站开发/制作网页的工具软件
  • 本人找做钢筋笼的活网站/网络营销顾问招聘
  • 网站的360度全景图片怎么做/热点事件
  • 苏州做网站要多少钱/推广普通话文字素材