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

news2024/11/11 4:47:21

目录

  • 冯诺依曼体系结构
  • 基于冯诺依曼体系数据的高效流转
  • 数据流转示例
  • 操作系统(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.coloradmin.cn/o/1703920.html

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

相关文章

jmeter发送webserver请求和上传请求

有时候在项目中会遇到webserver接口和上传接口的请求,大致参考如下 一、发送webserver请求 先获取登录接口的token,再使用cookie管理器进行关联获取商品(webserver接口),注意参数一般是写在消息体数据中,消息体有点像HTML格式 执…

调整GIF图大小的方法是什么?分享4个

调整GIF图大小的方法是什么?在数字化时代,GIF以其独特的动图魅力,成为了网络交流中不可或缺的一部分。无论是社交媒体、博客文章还是工作汇报,一个恰到好处的GIF图往往能有效吸引观众的注意,传递信息,但过大…

【typescript - tsc 编译后路径问题/路径别名问题】

这几天在写typescript,遇到个路径依赖问题,编写的.ts文件直接运行OK,但是编译成.js后,运行提示 Error: Cannot find module xxx,📝记录分析和解决过程 。 问题描述 原始文件,有index.ts 其会引…

中小学校活动怎样投稿给媒体报道宣传?

身为一名学校老师,同时承担起单位活动向媒体投稿的宣传重任,我深知每一次校园活动背后的故事,都承载着师生们的辛勤汗水与教育的无限可能。起初,我满怀着对教育的热情,希望通过文字传递校园的温暖与光芒,却在投稿的道路上遇到了前所未有的挑战。 最初,我选择了最传统的路径——…

【STM32】检测SD卡是否插入

【STM32】检测SD卡是否插入 开发环境原理图确定引脚的高低电平中断方式检测插入配置引脚打开引脚的中断编写代码显示SD卡信息引脚中断回调函数 实现的效果 开发环境 软件:STM32CubeIDE1.14.1 硬件:立创天空星STM32F407VE;SD卡 原理图 要确…

对未知程序所创建的带有折叠书签的 PDF 文件书签层级全展开导致丢失的一种解决方法

对需要经常查阅、或连续长时间阅读的带有折叠书签的 PDF 文档展开书签层级,提高阅览导航快捷是非常有必要的。 下面是两种常用书签层级全展开的方法 1、 FreePic2Pdf 1 - 2 - 3 - 4 - 5 - 6,先提取后回挂 2、PdgCntEditor 载入后,直接保存…

雷军-2022.8小米创业思考-8-和用户交朋友,非粉丝经济;性价比是最大的诚意;新媒体,直播离用户更近;用真诚打动朋友,脸皮厚点!

第八章 和用户交朋友 2005年,为了进一步推动金山的互联网转型,让金山的同事更好地理解互联网的精髓,我推动了一场向谷歌学习的运动,其中一个小要求就是要能背诵“谷歌十诫”。 十诫的第一条就令人印象深刻:以用户为中…

开发中的常用快捷键

开发中的常用快捷键 文章目录 开发中的常用快捷键一、window11快捷键二、WebStrom 快捷键三、IDEA快捷键四、vscode快捷键五、eclipse快捷键项目备注 一、window11快捷键 快捷切屏 、来回切屏alttab 二、WebStrom 快捷键 常规快捷键和idea差不多 ttab生成vue模版 htab生成ht…

衍生品赛道的 UniSwap:SynFutures 或将成为行业领军者

经过一个周期的发展,DeFi 已经成为基于区块链构建的最成功的去中心化应用,并彻底改变了加密市场的格局。加密货币交易开始逐步从链下转移到链上,并从最初简单的 Swap 到涵盖借贷、Staking、衍生品交易等广泛的生态系统。 在 DeFi 领域&#x…

Go程序出问题了?有pprof!

什么情况下会关注程序的问题? 一是没事儿的时候 二是真有问题的时候 哈哈哈,今天我们就来一起了解一下Go程序的排查工具,可以说即简单又优雅,它就是pprof。 在 Go 中,pprof 工具提供了一种强大而灵活的机制来分析 …

看潮成长日程表用户手册(上)

看潮成长日程表用户手册(上) 一、特色功能1、以每周日程表为主要形式2、全时管控的时间管理3、持续的日程管理4、分期间时间表5、按日排程,按周输出6、夏季作息时间处理7、年度假日处理8、休息日处理9、弹性日程10、完成记录11、多种输出形式…

Java 泛型 <? super T> 中 super 怎么 理解?与 extends 有何不同?

作者:zhang siege 链接:https://www.zhihu.com/question/20400700/answer/91106397 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 首先,泛型的出现时为了安全,所有与…

ai发展会不会带来企业的员工垄断呢

写代码写累了,写点个人不成熟的想法,作为记录 随着gpt-4o发布,可以预计的是,AI逐渐能够通过各种外接设备和传感器和真实世界实时交互。那么未来一个接上摄像头,键盘,音响,可移动身体的的AI还会…

改进rust代码的35种具体方法-类型(十九)-避免使用反射

上一篇文章 从其他语言来到Rust的程序员通常习惯于将反思作为工具箱中的工具。他们可能会浪费很多时间试图在Rust中实现基于反射的设计,却发现他们所尝试的事情只能做得不好,如果有的话。这个项目希望通过描述Rust在反思方面做什么和不做什么&#xff0c…

VS QT 里头文件的<>和““的区别

今天在跑项目的时候遇到这么个问题,在添加api宏定义的时候,不加显示无法识别的外部错误,加了显示找不到文件。反正就是怎么都是错的,但是我检查了CmakeLists、模块所在文件夹、项目路径都是没有问题的。非常奇怪。 然后就开始尝试…

Stable Diffusion WebUI能运行但无法调试,一直报错:TypeError: ‘Task‘ object is not callable

Stable Diffusion WebUI正常运行模式(Run)能运行,但是调试模式(Debug)无法运行,一直报错:TypeError: ‘Task‘ object is not callable ⚙️1.软件环境⚙️🔍2.问题描述&#x1f50d…

【vue/uniapp】ucharts 可以横向拖动查看数据(当图表数据过多时),避免叠加

效果参考: 实现: 需要在 opts 中配置:enableScroll: true 和 ontouch:true;在 opts 的 xAxis 中配置:itemCount: 5(值可以自定义,如图,为默认展示几个); …

theharvester一键收集域名信息(KALI工具系列十)

目录 1、KALI LINUX简介 2、theharvester工具简介 3、在KALI中使用theharvester 3.1 用搜索引擎扫描 3.2 扫描并输出结果 3.3 扫描某域名下的所有账号 3.4 使用所有的搜索引擎扫描 4、总结 1、KALI LINUX简介 Kali Linux 是一个功能强大、多才多艺的 Linux 发行版&…

vue koa post 请求代理失败问题总结

场景是在使用 koa 写接口时,客户端发送 post 请求,服务端会报下面这个错误,导致接口未能访问成功: 前端接口一直 Pending 状态, 解决方案:走的是本地 mock 数据,未访问服务端的接口 总结&#x…

AWR中的电磁仿真算法---特点与运用场景

AWR中的电磁仿真算法—特点与运用场景 在使用AWR软件进行射频电路、芯片设计时,发现其中有非常多的仿真器选项,这些电磁仿真器有什么特点呢?在此简单分析介绍。 算法名称运用场景特点AXIEM算法微带线、带状线、MMIC矩量法运算,…