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

目录

  • 冯诺依曼体系结构
  • 基于冯诺依曼体系数据的高效流转
  • 数据流转示例
  • 操作系统(Operator System)
  • 操作系统(Operator System)层次结构
    • 硬件部分
    • 系统软件部分
    • 用户部分
  • 管理——先描述,再组织

就一个程序而言,需要在计算机中运行的才能实现它的价值,那么数据资源在计算机中是怎么流通的呢?计算机是如何高效的利用数据的呢?这就必须要介绍冯诺依曼体系了。

冯诺依曼体系结构

就我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系
冯诺依曼
冯诺依曼体系结构的计算机包括五大基本组成部件

运算器:用于完成各种算术运算、逻辑运算和数据传送等数据加工处理。
控制器:用于控制程序的执行,是计算机的大脑。运算器和控制器组成计算机的中央处理器(CPU)。
存储器:用于记忆程序和数据,例如内存。程序和数据以二进制代码形式不加区别地存放在存储器中,存放位置由地址确定。
输入设备:用于将数据或程序输入到计算机中,例如鼠标、键盘。
输出设备:将数据或程序的处理结果展示给用户,例如显示器、打印机。

目前,我们所认识的计算机,都是有一个个的硬件组件组成,由于这一设计,使得冯诺依曼体系具有以下特点:

  • 单一性:冯诺依曼体系是一个单独的体系,主要由存储器和处理器构成。

  • 可靠性:由于其独特的结构,当存储器和处理器其中之一发生故障时,另一部分仍能正常工作,具有较强的可靠性。

  • 容错性:能容忍一定的不正常情况出现而不会造成整个计算机体系的故障。

  • 共享功能:各部件之间相互共享功能资源,使得处理速度明显加快。

接下来对冯诺依曼体系每个部分的数据信号(黑线部分)的流转进行介绍。

冯诺依曼体系可以拆分为以下四部分。

输入设备:

输入单元:包括键盘, 鼠标,扫描仪, 写板,摄像头,网卡,磁盘等。

输入设备:

输出单元:显示器,打印机,显示器,磁盘,网卡等。

可以发现有些设备即是输出又是输入设备。

储存器:

  1. 这里的存储器指的是内存
  2. 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备),外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
  3. 一句话,所有设备都只能直接和内存打交道。

CPU:
这里的运算器和控制器我们按中央处理器CPU理解:其具有算术运算功能、逻辑运算功能以及控制功能

基于冯诺依曼体系数据的高效流转

以计算机高效处理能力的角度来看待这个体系

计算机的作用就是为了解决人的问题,而要解决问题,首先需要将数据或是问题输入到计算机当中,当CPU处理完后再输出到输出设备上完成应答。所以,要高效处理一个问题,就必须保证数据在冯诺依曼体系中高速流转。
内存金字塔
计算机中数据一般会在内存或者硬盘中,这两者的优缺点如上。

  • 内存:存储容量小,但读写时间快。
  • 硬盘:存储容量大,但读写时间慢。

CPU的计算速度是很快的,这就要求数据的输入输出必须也能够跟得上CPU的运算速度,所以基于这一要求CPU注定了不能从外设直接读取数据,否则将造成木桶效应,使得计算机运行速度大大降低。
木桶效应
试想一下当CPU从外设读入数据,但是由于外设的读写速度太慢,导致将数据读入的时间比CPU计算的时间长得多,当多个外设都直接向CPU写入数据时就需要等一个数据读完再读另一个数据,这就造成CPU资源的严重浪费,所以,这就是CPU从内存对数据进行读写的原因。

内存有个特点就是,比输入设备和输出设备要快很多,但是比CPU又要慢。现在内存就处于慢设备和快设备之间,是一个不快也不慢的设备,能够在该体系结构当中就起到一个缓冲的作用。这个缓冲作用一定程度上解决了木桶效应。使得整体速度得到提升,使CPU资源得到充分利用。

现在该体系的运行流程就是:用户输入的数据先放到内存当中,CPU读取数据的时候就直接从内存当中读取,CPU处理完数据后又写回内存当中,然后内存再将数据输出到输出设备当中,最后由输出设备进行输出显示。于是就形成了最终的冯诺依曼体系结构。
冯诺依曼
可能有人会疑惑从外设将数据交给CPU,再由CPU将数据交给外设真的比外设将数据交给内存再给CPU再给内存,最后才到外设这个流转路径快吗?

局部性原理的应用:根据局部性原理,当一个数据正在被访问时,其周围的数据有很大可能性也会被访问。因此,内存会将正在被访问的数据及其周围的数据一同加载进来,而CPU处理数据和内存加载数据是可以同时进行的。这样,当CPU需要获取某一行数据时,它可以直接从内存中获取,从而提高了数据传输的效率

数据流转示例

我们以日常与朋友的微信聊天做示例:
在这个示例中,键盘作为我们的输入设备将要传递的信息交给内存,再经CPU处理打包后交回给内存,再由内存将处理好的数据输出到我们电脑的显示器,以及网卡上,这样我们就看到了自己输出的信息显示在显示器上,而我们要向朋友发送的信息从网卡经由网络传输到朋友电脑的网卡上;朋友的电脑此时从网卡中将数据读入到内存中,再经CPU处理后交给内存,最终输出到显示器上,此时朋友便能看到我们发送的消息了。
数据流转

操作系统(Operator System)

都知道操作系统很重要,那么操作系统是什么呢?

概念

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

  • 内核(进程管理,内存管理,文件管理,驱动管理)
  • 其他程序(例如函数库,shell程序等等)

作用

设计OS的目的就是为了帮助用户管理软硬件资源

  • 与硬件交互,管理所有的软硬件资源(手段)
  • 为用户程序(应用程序)提供一个良好的执行环境(目的)

定位

在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件。目的就是为了帮助用户管理好软硬件资源。也是计算机开机后第一个被加载到内存的软件。

操作系统(Operator System)层次结构

先观察一整个操作系统的层次体系,主要可以分为三个部分:用户部分,系统软件部分,硬件部分。

操作系统层次体系

硬件部分

硬件部分就是我们实际接触到的设备,是计算机相关实体,如常使用的键盘,鼠标,显示器;也有不常见被封装起来的芯片,网卡,磁盘。这些硬件作为计算机运行的基础。通过这些硬件,用户可以方便的使用计算机。

系统软件部分

驱动程序:
对于以上介绍的硬件是为了确保计算机的运行或者方便用户的使用,当用户使用键盘与朋友聊天时,数据的流转就需要依靠上述提到的冯诺依曼体系了,但是,输入的键盘信息是如何给计算机获取的呢?

这就是驱动程序的使命任务了
当新买的鼠标第一次与电脑连接时,大概率都会看到安装xxx驱动程序的字样,这便是硬件与操作系统构建联系的时候。

驱动程序一般指的是设备驱动程序(Device Driver),是一种可以使计算机和设备进行相互通信的特殊程序。相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。因此,驱动程序被比作“ 硬件的灵魂”、“硬件的主宰”、“硬件和系统之间的桥梁”等。

由于操作系统是不和硬件直接打交道的,于是我们又在操作系统与底层硬件之间增加了一层驱动层,驱动层的主要工作就是单独去控制底层硬件的。
例如,键盘有键盘驱动,网卡有网卡驱动,硬盘有硬盘驱动,磁盘有磁盘驱动。驱动简单来说就是去访问某个硬件,访问这个硬件的读、写以及硬件当前的状态等等,驱动层就是直接和硬件打交道的。而驱动一般是由硬件制造厂商提供的,或是由操作系统相关的模块进行开发的(例如网卡)。
此时操作系统就只需关心何时读取数据,而不用关心数据是如何读取的了,也就是完成了操作系统与硬件之间的解耦

操作系统:
操作系统的定位就是帮助用户管理好计算机的软硬件资源;其作用就是管理,包括:内存管理,进程管理,文件管理,驱动管理。

  • 内存管理:内存分配、内存共享、内存保护以及内存扩张等等。
  • 驱动管理:对计算机设备驱动驱动程序的分类、更新、删除等操作。
  • 文件管理:文件存储空间的管理、目录管理、文件操作管理以及文件保护等等。
  • 进程管理:其工作主要是进程的调度。

系统调用
在操作系统之上是系统调用层,也叫用户层,在这里我们就可以用命令行或是图形化界面进行各种操作。那这一层的作用是什么呢?

在这里,我们就开始远离操作系统了,操作系统里会有各种数据,因此操作系统是不相信任何人的,但是操作系统的目的就是帮助用户管理软硬件资源的,所以,操作系统必须提供一些接口供上层调用,达到管理的目的;这就是系统调用层的作用。这就像你去银行取钱都是去窗口取钱的,而不是让你去金库里取,因为银行是不信任你的,但它又要为你提供存取钱服务,所以它就为你提供了一个窗口。

用户部分

这里的用户分两种。

用户操作接口:
这部分可以理解为是程序员部分,例如我们C语言或者其他语言要输出一段话,以printf为例:我们使用printf实际上也是去调用了操作系统对应的输出接口,而这个printf就是程序员写好封装好的,其本质也是去调用操作系统的输出接口。

用户:
这里就是我们实打实的普通用户了,使用程序员写好的系统调用接口。

所以这里也可以看到语言层面的库函数的使用是去调用系统对应接口实现的,两者属于上下层关系的

系统调用和库函数概念

  • 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。
  • 系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。

管理——先描述,再组织

在大概了解操作系统的层状体系后,再来研究操作系统是如何进行管理的;毕竟操作系统的定位就是一款管理软硬件资源的软件,所以必然涉及管理。

我们以大学校园为例:
对于管理,肯定有管理者——校长,被管理的人——学生;由于学生人数太多,校长一个人肯定不会自己亲自管理,而且都是分院而治,所以还需要一个人来执行校长的管理工作——辅导员。
再从操作系统的层次体系来看,校长毫无疑问就是——操作系统,学生就是软硬件资源,而辅导员就是驱动程序。
管理示例

学校大大小小的事都可能由作为管理者的校长拍案,但是我们学生作为被管理者却很少能看见过校长,那么管理的本质是什么呢,为什么在不见面的情况下都能进行管理呢?

从学生的角度上看这个问题,为什么学生会受到学校的管理约束呢?

答案是你的学生档案信息掌握在学校手里,这里面记录了你的有关学情信息,如:绩点,成绩,逃课记录,等等。校长也是通过这些信息来判定你的学习状况,他只需要获取这些信息就能对我们进行管理,根本不需要见面来完成管理工作。如:如果学生绩点很好,没有记过处分,大概率可以被校长评为好学生,如果你经常逃课,挂了很多科,那么校长就有可能开除你。这都是通过学情信息对学生进行管理的。
所以管理的本质是在对信息进行管理。

而当面庞大的学生信息时,可以分两个步骤完成管理
1:先描述
将所要获得的信息按照表格的形式描述好,再由学生完成信息的填写即可;这就是为什么在开学时大家要把信息填好交给学校的原因。
描述

2:再管理
再通过一些高效的数据结构如双向链表将学生的信息串联起来。这个时候校长就获取了所有学生的信息。有了这些信息校长就能进行管理工作了,而且将对学生的管理工作变为了对该链表的增删查改。如:查看信息不就是遍历链表找到对应信息的学生,开除学生不就是删除一个节点,增加学生不就是增加一个节点。将学生信息串联形成一个链表,不仅能完成管理任务,也能高效的管理。
管理
所以管理的精髓在:先描述,再管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/17267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频截图软件,这几款截图神器收好!

在数字化时代,视频内容已经成为我们获取信息、娱乐休闲的主要方式之一。而在观看视频的过程中,我们总会遇到一些想要定格下来的精彩瞬间。此时,一款高效的视频截图软件就显得尤为重要。今天,就为大家推荐几款功能强大、操作简便的…

OpenBayes 教程上新 |全球首个开源的文生视频 DiT 模型!对标 Sora,保姆级 Latte 文生视频使用指南

小朋友不爱背诗怎么办?《千秋诗颂》试试看。 2 月 26 日,中国首部文生视频 AI 系列动画《千秋诗颂》于 CCTV-1 频道正式播出,这部动画由上海人工智能实验室和「央妈」(中央广播电视总台)强强联手,借助「央视…

OrangePi Kunpeng Pro 开箱测评之一步到喂

前情提要:大家好,我是Samle。有幸接到 CSDN 发来的测评邀请,下面针对 OrangePi Kunpeng Pro 开发板进行一些实践操作,让大家能更好的上手这块板子。 以下内容来自 官方说明 OrangePi Kunpeng Pro采用4核64位处理器AI处理器&#…

JMeter性能测试:命令行执行

1. 环境准备 安装JMeter http://jmeter.apache.org/ 下载最新版本的JMeter 解压下载的压缩包 配置环境变量 为了更方便地从任何目录运行JMeter,将JMeter的bin目录添加到系统环境变量中。 2. 创建测试计划 在执行命令行测试之前,需要创建一个JMete…

宝塔部署纯Vue项目,无后端

1.打包项目 生成一个dist文件夹 2.创建云服务器根目录 3.创建站点 4.上传文件 5.访问

【quarkus系列】构建可执行文件native image

目录 序言为什么选择 Quarkus Native Image?性能优势便捷的云原生部署 搭建项目构建可执行文件方式一:配置GraalVM方式二:容器运行错误示例构建过程分析 创建docker镜像基于可执行文件命令式构建基于dockerfile构建方式一:构建mic…

M功能-open feign的使用-支付系统(四)

target:离开柬埔寨倒计时-219day 这张图片一直是我idea的背景图,分享出来啦… 前言 支付平台使用的是基于springcloud的微服务,服务之间的调用都是使用openfeign,而我们每个服务对外暴露的接口响应都会在外部封装一层code之类的信…

在Bash中解析命令行参数的两种样例脚本

文章目录 问题回答以空格分隔选项和参数以等号分隔选项和参数 参考 问题 假设,我有一个脚本,它会被这样一行调用: ./myscript -vfd ./foo/bar/someFile -o /fizz/someOtherFile或者这个: ./myscript -v -f -d -o /fizz/someOtherFile ./fo…

【NumPy】NumPy实战入门:索引与切片(sort、argsort、searchsorted)详解

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

[NOIP 2014] 寻找道路

[NOIP 2014] 寻找道路 在有向图 G 中,每条边的长度均为 11,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 路径上的所有点的出边所指向的点都直接或间接与终点连通。在满足条件 11 的情…

全局查询筛选器适用场景 以及各场景示例

EF Core中的全局查询筛选器(Global Query Filters)是一种强大的功能,可以在实体框架的DbContext级别为特定的EntityType设置默认的过滤条件。这些筛选器自动应用于所有涉及到相关实体的LINQ查询中,无论是直接查询还是通过Include或…

统计计算四|蒙特卡罗方法(Monte Carlo Method)

系列文章目录 统计计算一|非线性方程的求解 统计计算二|EM算法(Expectation-Maximization Algorithm,期望最大化算法) 统计计算三|Cases for EM 文章目录 系列文章目录一、基本概念(一)估算 π \pi π(二&…

【设计模式】JAVA Design Patterns——Commander(指挥官模式)

🔍目的 用于处理执行分布式事务时可能遇到的所有问题。 🔍解释 处理分布式事务很棘手,但如果我们不仔细处理,可能会带来不想要的后果。假设我们有一个电子商务网站,它有一个支付微服务和一个运输微服务。如果当前运输…

学习图形推理

学习图形推理 1.位置规律1.1平移1.2翻转、旋转2.样式规律2.1加减异同2.2黑白运算3.属性规律3.1对称性3.2曲直性3.3开闭性4.数量规律4.1面4.2线数量4.3笔画数4.4点数量4.5素数量5.空间重构5.1相对面5.2相邻面-公共边5.3相邻面-公共点5.4相邻面-画边法题型 一组图:从左往右找规律…

编程-辅助工具-Git下载

文章目录 1、前言2、Git官网地址3、迅雷下载 1、前言 采用Git能下载github上的代码,其下载是采用官网下载的,但是下载速度比较慢,网上也推荐了镜像的方式,但是有些链接失效了,突然有一天想起用迅雷是不是合适&#xf…

DDR基本原理

1. 简介 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory,双数据率同步动态随机存储器)通常被我们称为DDR,其中的“同步”是指内存工作需要同步时钟,内部命令的发送与数据传输都以它为基准。DDR…

【社会信用体系1003】 企业违规新解:社会信用环境改善的实证分析!

今天给大家分享的是来自于国内顶级期刊金融研究2023年发表论文——《社会信用环境改善降低了企业违规吗?——来自“中国社会信用体系建设”的证据》所用到的重要数据集,该文章从企业层面探讨了社会信用系统建设对企业违规行为的影响,更精准地…

牛客NC164 最长上升子序列(二)【困难 贪心+二分 Java/Go/PHP/C++】

题目 题目链接: https://www.nowcoder.com/practice/4af96fa010c44638a7e112abf65f7237 思路 贪心二分 所谓贪心,就是往死里贪,所以对于最大上升子序列,结尾元素越小,越有利于后面接上其他的数,也就可能变…

使用 Elasticsearch 作为 Azure OpenAI On Your Data 的向量数据库

作者:来自 Elastic Paul Oremland 背景介绍 最近,微软通过 Azure OpenAI 服务 "On Your Data" 将 Elasticsearch 直接集成到 Azure 中。"On Your Data" 使组织能够利用强大的 AI 模型(如 GPT-4 和 RAG 模型)…

想知道期权的交易方式有哪些吗?新手必看!

今天期权懂带你了解想知道期权的交易方式有哪些吗?新手必看!期权指投资者在支付了一定的权利金之后,将拥有未来某个时间协定价格买入或者卖出的权利。 期权的交易策略方式有哪些? 买入看涨期权: 使用场景&#xff1a…