【Linux】冯诺依曼体系结构以及操作系统的初步认知

这篇具有很好参考价值的文章主要介绍了【Linux】冯诺依曼体系结构以及操作系统的初步认知。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🏖️作者:@malloc不出对象
⛺专栏:Linux的学习之路
👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈
【Linux】冯诺依曼体系结构以及操作系统的初步认知


前言

本篇文章讲解是冯诺依曼体系结构以及操作系统的初步认知。

一、冯诺依曼体系结构

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

【Linux】冯诺依曼体系结构以及操作系统的初步认知

截至目前,我们所认识的计算机,都是有一个个的硬件组件组成:

输入单元:包括键盘, 鼠标,扫描仪, 写板等
中央处理器(CPU):含有运算器和控制器等
存储器:根据冯诺依曼体系我们这里的存储器一般是指的内存,因为内存相对来说速度较磁盘快,价格适中。
输出单元:显示器,打印机等

输入设备:输入、输出设备被称之为外围设备,外设一般来说都会比较慢一些,以磁盘相对内存为例,磁盘是比较慢的。

接下来我有一个问题:为什么我们的外设不直接与CPU进行交互呢?我们的数据不就是要经过CPU进行计算之后,流入到输出设备吗??在中间加上一个内存不是更多此一举??

首先,我们要知道我们的外设的读取速度是非常慢并且存储着大量数据,如果将我们的外设直接与CPU进行交互,因为我们的CPU是读取速度是非常快的,如果仅仅只有外设与CPU进行沟通,那么效率会非常的低。这一点可以通过我们的木桶原理来解释,外设就决定了整体的效率!!也许你之前或许还听过"千万不要让CPU打盹",这是因为CPU资源是非常昂贵的,如果采用外设直接与CPU进行交互的话,那么CPU大部分的时间是空闲的,这简直就是暴殇天物,所以为了能充分利用CPU资源我们肯定会想出一系列办法让它发挥出它的最大价值!!挖空心思让计算机硬件发挥所有的潜能!!所以现在我们使用的PC就被打造成一款性价比极高的计算机了!!

为了解决这个问题,我们在外设和CPU之间引入了内存这种存储器系统,它的速度比外设要快的多,但是比CPU要慢,引入内存我们可以大大缓解木桶原理带给我们的效率低下问题!!内存临时存储数据并且它的读取速度还不慢,CPU在计算此时从内存中读取的数据时,同时我们可以将外设中的数据加载到内存中,这样CPU在计算完当前任务后,又可以持续从内存中读取数据进行计算,这样就充分利用了CPU的资源!!有了内存的存在我们可以对数据进行预加载,CPU以后在进行数据计算时,根本不需要访问外设,而是直接伸手向内存拿数据进行计算就可以了!!


Q:在简单的了解了冯诺依曼体系结构后,接下来我们继续来回答一个问题:为什么我们的程序在运行之前必须加载到内存中?

一个最经典的例子是我们的源文件在经过四个阶段形成可执行程序之后,在Linux中我们需要通过./可执行程序来运行这个程序,那么首先可执行程序是什么?它其实也就是一个普通文件,而为什么我们的程序在运行之前必须加载到内存中,经过上述问题的分析我们知道这是由冯诺依曼体系决定的!!

CPU在进行计算之前,磁盘中对应需要计算的数据需要提前加载到内存中,如果不提前将数据加载到内存中,那么我们的CPU此时就是空闲的,那么我们的整体效率就得不到提升!!例如,我们在开机时,磁盘的数据就会被提前加载到内存中,这样我们要进行计算时,我们的CPU就直接从内存中读取数据,不至于处于空闲状态!!

结论1:在数据层面,CPU一般不与外设直接沟通,而是直接只和内存打交道。


对冯诺依曼的理解不能停留在概念上,要深入到对软件数据流理解上,请解释从你登录上qq开始和某位朋友聊天开始数据的流动过程;从你打开窗口,开始给他发消息,到他的到消息之后的数据流动过程?
对于我们的用户来说,你可能觉得这是一个非常简单的过程,不就是发送一个消息嘛,然后对方就能看到消息。其实这个过程是非常复杂的,那么现在我们暂且只考虑在硬件层面进行数据的流动。

首先我们的QQ程序会提前加载到内存中, 在我们与某位朋友聊天时,我们发送一个"你好",这其中会进行什么处理呢?我们的消息首先会被加载到内存中,然后CPU进行计算处理将结果返回到内存中,内存再将结果交给显示器和网卡,此时的显示器也就是在我们自己的对话框中可以看到我们的信息,网卡中保存着"你好"的信息,经过网络运输之后,朋友的网卡接收到了数据,然后此数据加载到内存中,CPU进行计算之后返回给内存,内存将结果最后交给我们的显示器,朋友就能在显示器看到我发送给他的消息了。

【Linux】冯诺依曼体系结构以及操作系统的初步认知

这是由于硬件决定了我们的数据在流向时必须遵守我们的冯诺依曼体系结构。

结论2:在数据层面,外设只会与内存打交道。


关于冯诺依曼体系结构的理解就到这里了,对于我们的输入设备和存储器来说,数据会预加载到我们的内存中,那么请问我们的文件数据那么多,你预加载哪一部分的数据?你预加载过程中内存不够了怎么办??CPU是如何快速找到预加载的文件??等等一系列问题,这些硬件能够处理吗?

答案是不能,硬件无法处理这些工作,此时我们就需要一款软件来进行管理了,而这款软件就是我们接下来要讲的操作系统!!

二、操作系统

Q:操作系统是什么?

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


由于操作系统这个概念非常的广泛,为了让大家更好的理解它,接下来我们将来感性谈谈操作系统。这里以学校为单位我们进行简化一下,一个学校有三类人,校长、辅导员、学生。

我们先来理解一下人的各种行为,首先我们人在行动之前有两步,第一步是决策,第二步是执行。就好比下课了我就在心里想着要吃什么,这是决策,我下课了之后去食堂吃我上课时想的,这是执行!!那么作为一个管理者它的主要行为是什么?决策or行为? 对于一个管理者来说,最关键的决策,他通常是充当一个出谋划策的角色,然后让下层去执行它的决策。那么对于一个学校来说,校长就是管理者。

Q:我们在日常生活中也知道我们一般听从的是辅导员的安排,校长可能并没有直接与学生进行沟通,甚至在学校你可能都没有见过校长,但是你不可否认校长把这个学校管理的井井有条!!why?

这也就说明了其实管理者与被管理者是不需要直接进行沟通的!!

Q:管理者与被管理者未进行直接的沟通,他是如何管理学生的呢?

校长知道你的成绩,学号,姓名,年龄等信息就可以对你进行管理!!校长下达指令给辅导员,辅导员将校长的命令传达下去,交由我们的学生去执行。
管理的本质:对被管理对象的数据做管理!!

Q:那么管理者是如何拿到被管理者的数据呢?

辅导员交给你的,辅导员把他所管辖范围的学生信息交给了校长,校长拿到你的数据,然后就可以对你进行管理了。

Q:校长要管理的学生对象这么多,那么他是如何进行数据管理的呢?

虽然校长要管理学生的数据很多,但是每个学生的属性都是一样的,都有学号、年龄、姓名、成绩等信息;这时候我们就能采用一个结构体来记录学生的各项信息,这个描述的过程就做好了,此时每个学生就是一个结构体对象。

那么如何对这么多学生进行组织?比如开除这个学生,开除的本质是什么?将这个学生的信息移除,如何移除? 首先我们要找到这个学生然后再将它的信息从我们的数据库中移除。

我们可以使用一种数据结构将所有的学生组织起来,例如我们可以使用链表,在结构体中多定义一个结构体指针next来指向下一个学生,每个学生就相当于一个节点。所以本质上校长对学生进行管理就是对链表进行增删查改的操作!!!

总结:管理的本质:先描述,再组织。 就像我们做任何事一样,首先我们要有一个大体的思路,然后再想办法完成这个特定功能。


上述对于硬件的管理的建模就已经完成了,校长就充当了管理者的身份 -->操作系统 ,辅导员充当执行决策的身份 --> 硬件驱动, 学生充当参与执行的身份 -->硬件 。

Q:操作系统为什么对软硬件资源进行管理呢??

操作系统对下通过管理好软硬件(手段),对上给用户提供良好(安全、稳定、高效、功能丰富等)的执行环境(目的)!!

既然操作系统为用户提供这么好的服务,但是它们真的相信我们吗??

下面我们通过一个场景来解释这个问题:

【Linux】冯诺依曼体系结构以及操作系统的初步认知

我们的银行操作系统为我们提供了更好的服务,但是这并不代表行长会相信我们,相反行长并不相信你,请问银行工作人员会带你到它们的现金仓库取钱吗?

当然不会,因为行长并不信任你,万一你是坏人呢;所以操作系统也是一样,为了自身的安全它会将内部实现细节全部封装起来,用户不能直接访问它!!

那么行长为了保证自身安全性和以及提供良好的服务,行长提供了窗口式服务,用户通过窗口来完成特定功能,在计算机体系结构中它被叫做系统调用接口。

【Linux】冯诺依曼体系结构以及操作系统的初步认知

系统调用在使用上功能比较基础,对用户的要求相对也比较高,它必须非常了解操作系统的内部实现细节,这对于开发者来说无疑增大了难度,所以有心的开发者就对部分系统调用进行适度封装,从而形成了库等,有了库就很有利于更上层用户或者开发者进行二次开发。

三、计算机软硬件体系结构

【Linux】冯诺依曼体系结构以及操作系统的初步认知

我们可以看到计算机软硬件体系结构是采用一种层状的结构来进行表示的,有人说过一句名言:“计算机科学领域的任何问题的可以通过增加一个间接的中间层来解决”。现在看来这句话真的是醍醐灌顶啊,这句话几乎概括了计算机软硬件体系结构的设计要点,整个体系结构从上到下都是按照严格的层次结构设计的。由于这些中间层的存在,使得应用程序与硬件之间保持相对的独立,我们要想实现某种功能只需增加一个间接的中间层,而不对其他中间层造成影响,这就是层次结构带来的好处。不仅是计算机软硬件体系结构是这样的,体系里面的每个组件比如操作系统本身,很多应用程序、软件系统甚至很多硬件结构都是按照这样的层次结构组织和设计的,

在我们初步了解了冯诺依曼体系结构以及操作系统之后,我们对于平常的某些操作这时候要有一个体系的认知了。例如:我们在Linux中执行了一条指令,你以为你仅仅只是执行了一条指令就完了吗?实际上它需要贯穿整个计算机软硬件体系结构才能完成特定的功能!!!这其中的内部细节是非常之复杂的,但操作系统作为计算机体系结构中的最强大脑,它确确实实做到了对用户提供良好的服务,我们不需要了解其中的具体细节就能完成我们所需的功能,对下很好的管理了软硬件资源!!


本篇文章的内容就讲到这里了,如果对于本文有任何疑问或者错处欢迎大家评论区相互交流orz~🙈🙈文章来源地址https://www.toymoban.com/news/detail-439198.html

到了这里,关于【Linux】冯诺依曼体系结构以及操作系统的初步认知的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux】冯诺依曼体系结构与操作系统及其进程

    作者简介:დ旧言~,目前大二,现在学习Java,c,c++,Python等 座右铭:松树千年终是朽,槿花一日自为荣。 目标:了解冯诺依曼体系结构与操作系统,掌握Linux的进程 毒鸡汤:一花凋零荒芜不了整个春天,一次挫折也荒废不了整个人生。 望小伙伴们点赞👍收藏✨加关注哟💕

    2024年02月04日
    浏览(44)
  • 【Linux】深入了解冯诺依曼体系结构与操作系统

    目录 导读 🌞专栏导读 🌞冯·诺依曼 🌞冯诺依曼体系结构 🌛木桶效应 🌞操作系统(Operator System) 🌛概念 🌛设计OS的目的 🌛系统调用和库函数概念  六一儿童节快到了,提前祝大家六一儿童节快乐哦!!! 六一儿童节的即将来到,祝愿我家宝🧡,愿你童心未泯,无忧无虑

    2024年02月06日
    浏览(65)
  • 【Linux】系统初识之冯诺依曼体系结构与操作系统

    👀 樊梓慕: 个人主页  🎥 个人专栏: 《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C++》《Linux》 🌝 每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.冯诺依曼体系结构 2.操作系统(OS) (1)用户到操作系统再到底层是如何组织的? (

    2024年02月05日
    浏览(55)
  • 【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解

    1、概念 (1)什么是冯诺伊曼体系结构? 数学家冯·诺伊曼于 1946 年提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。 冯·诺伊曼理论的要点是:计算机的数制采用二进制逻辑;计算机应该按照程序顺序执行。人们把冯·诺伊曼的

    2024年02月22日
    浏览(52)
  • 【Linux取经路】冯诺依曼结构体系与操作系统的碰撞

    我们现在常见的计算机,如笔记本,以及我们不常见的计算机,如服务器,它们本质都是一堆硬件(如:cpu、内存、网卡、磁盘等)的集合。并不是把这些硬件毫无章法的放在一起就能够组成计算机,各硬件之间首先要具备协同能力,这就要求硬件与硬件之间要组织好#x

    2024年02月14日
    浏览(47)
  • 【Linux】进程概念I --操作系统概念与冯诺依曼体系结构

    Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法…感兴趣就关注我吧!你定不会失望。 计算机是由两部分组成的: 硬件+软件 .与硬件相关的为 冯诺依曼体系结构 ,与软件相关的为: 操作系统 . 如今大多数计算机(笔记本,服务器等)大多数都遵守冯诺依曼体系结构.实际中

    2024年02月09日
    浏览(35)
  • 『Linux从入门到精通』第 ⑫ 期 - 深入了解冯诺依曼体系结构与操作系统(Operator System)

    🌸作者简介: 花想云 ,在读本科生一枚,C/C++领域新星创作者,新星计划导师,阿里云专家博主,CSDN内容合伙人…致力于 C/C++、Linux 学习。 🌸 专栏简介:本文收录于 Linux从入门到精通 ,本专栏主要内容为本专栏主要内容为Linux的系统性学习,专为小白打造的文章专栏。

    2024年02月10日
    浏览(49)
  • 『Linux从入门到精通』第 ⑫ 期 -深入了解冯诺依曼体系结构与操作系统(Operator System)

    🌸作者简介: 花想云 ,在读本科生一枚,C/C++领域新星创作者,新星计划导师,阿里云专家博主,CSDN内容合伙人…致力于 C/C++、Linux 学习。 🌸 专栏简介:本文收录于 Linux从入门到精通 ,本专栏主要内容为本专栏主要内容为Linux的系统性学习,专为小白打造的文章专栏。

    2023年04月23日
    浏览(84)
  • 【Linux】操作系统的基本概念 {冯诺依曼体系结构,操作系统的基本概念,系统调用及用户操作接口,shell程序}

    现代计算机设计大都遵守冯·诺依曼体系结构: 截至目前,我们所认识的计算机,都是由一个个的硬件组件组成 输入单元:包括键盘, 鼠标,扫描仪, 磁盘,网卡等 存储器: 内存(提高数据读写速度,降低硬件成本) 中央处理器(CPU):含有运算器(算数运算,逻辑运算)和控

    2024年02月11日
    浏览(52)
  • 【Linux】冯诺依曼体系结构思想

    🎉博客主页:小智_x0___0x_ 🎉欢迎关注:👍点赞🙌收藏✍️留言 🎉系列专栏:Linux入门到精通 🎉代码仓库:小智的代码仓库 我们常见的计算机,比如笔记本,还有我们不常见的计算机,比如服务器,大部分都遵守冯诺依曼体系。 当我们谈论计算机的体系结构时,冯·诺依

    2024年02月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包