【Linux】冯诺伊曼体系结构|操作系统概念理解

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

【Linux】冯诺伊曼体系结构|操作系统概念理解,Linux,linux,运维,服务器,冯诺依曼体系结构,操作系统概念
【Linux】冯诺伊曼体系结构|操作系统概念理解,Linux,linux,运维,服务器,冯诺依曼体系结构,操作系统概念

个人主页:🍝在肯德基吃麻辣烫
我的gitee:Linux仓库
个人专栏:Linux专栏
分享一句喜欢的话:热烈的火焰,冰封在最沉默的火山深处


前言

本文进入Linux较为晦涩的概念——冯诺依曼体系结构和操作系统的理解。


一、先谈硬件——冯诺依曼体系结构

1.什么是冯诺依曼体系结构?

冯诺依曼体系结构是我们日常计算机都遵守的一个整体架构,计算机有很多硬件,比如硬盘,内存条,cpu等等。这些硬件通过冯诺依曼体系结构组装起来就是一台计算机。

【Linux】冯诺伊曼体系结构|操作系统概念理解,Linux,linux,运维,服务器,冯诺依曼体系结构,操作系统概念
这张图体现的就是冯诺依曼体系结构整体概览。

2.拆解冯诺依曼体系结构的硬件

  • (1)存储器指的是内存
  • 外设:
    • (2)输入设备:鼠标,键盘,摄像头,话筒,磁盘,网卡等等
    • (3)输出设备:显示器,播放器硬件,磁盘,网卡等等
  • CPU(中央处理器):
    • (4)运算器:对数据进行运算任务(算数运算,逻辑运算)
    • (5)控制器:对我们的计算硬件流程进行控制。

上面每一个硬件都是独立的个体。拆解任何一个硬件出来并不会影响其他硬件的正常运行。这些硬件具有独立性

但它们每个硬件直接都会用线连接起来。
CPU和内存之间交互的线叫做系统总线,内存和外设之间交互的线叫做IO总线

有些设备同时作为输入设备和输出设备:比如磁盘
假如我今天下载了一个抖音短视频并保存在磁盘上,这个过程相当于磁盘采集我的抖音数据,就是输入行为。
明天那个用户打开磁盘,播放他的抖音短视频,这个过程是磁盘将数据结果呈现给用户,就是输出行为。

像计算机的存储器,也是分有许多等级:
【Linux】冯诺伊曼体系结构|操作系统概念理解,Linux,linux,运维,服务器,冯诺依曼体系结构,操作系统概念
不同的等级造价不同,越往下造价越低,但是离CPU越来越远。
并且内存具有掉电易失性,也就是断电之后内存中的数据会丢失,反观磁盘则不会。

3.内存有多重要?


问题1:为什么冯诺依曼体系结构要有一个存储器(内存)?为什么不能让CPU和外设直接进行交互呢?

我们知道,CPU的运行速度是非常快的,是一个纳秒级别的硬件。而外设就显得非常慢,外设的运行速度通常只在毫秒级。你要知道,纳秒和毫秒是相差10的6次方,百万倍的差距。

这里有一个木桶原理:
【Linux】冯诺伊曼体系结构|操作系统概念理解,Linux,linux,运维,服务器,冯诺依曼体系结构,操作系统概念
一个木桶能盛水多少取决于木桶中最短的那块木板。

如果整机只采用CPU和外设进行交互的话,会极大拖慢CPU的运行效率,因为CPU实在
是太快了,只能等着输入设备缓慢地输入,CPU进行运算完成后,把数据交给输出设
备,输出设备又在缓慢地输出,CPU花费大量时间等待

这使得整机运行效率只取决于外设的运行速度。

这样的环境使得冯诺依曼想到了必须用一个内存来作为媒介,将输入的数据交给内存,CPU再从内存中读取数据运算后再交还给内存,内存再将数据输出到输出设备中。

由于内存的运行速度即不算快,也不算慢,在微秒级别。不至于让CPU过长时间等待,使得整机效率提升到以内存为核心的运行速度上


问题2:既然你说内存不算快,那不也得让CPU在干等着吗?

在实际计算机体系中,输入数据会有一个预加载的过程,也就是把输入的数据提前加载到内存,这样CPU从内存中拿数据时,实现了数据一边加载到内存,CPU一边从内存中拿数据的并行实现方式,让整个体系没有正在等待中的硬件,这样能实现高效地输入,存储,计算,输出的过程。

实际上,在冯诺依曼体系结构中,输入设备和输出设备并不会直接与CPU进行交互,而是通过内存来实现几个硬件交互。

既然内存叫做存储器,它本身是没有运算能力而只有存储能力的。既然内存比CPU慢,那为什么不将内存全部用寄存器来做?

很简单,太贵了,寄存器虽然非常快,但同时它的造价非常高。我们现在用的笔记本内存通常是8G16G32G等等。如果一个8G的内存全部用装上寄存器,那它的造价会非常高,甚至几十万,几百万,这样的价格会让我们平民百姓难以用得起。

要知道,计算机能在这几十年飞速发展,一个很重要的原因在于计算机的价格不算特别贵,平民百姓有机会去接触计算机,大量的想象力和创造力才得以体现出来。


问题3:一个程序要运行,必须先加载到内存中运行,为什么?

程序中既有代码也有数据,既然有数据代码,就注定要进行运算,并且CPU和输入设备是不会直接交互的,那就注定代码和数据要加载到内存中,CPU才能从内存中拿数据进行计算,结果返回给内存,再输出到输出设备中。

所以,是冯诺依曼体系结构规定的!

4.数据在体系结构中的流动

假如今天我在qq上跟麻辣哥进行聊天。我通过qq对话框向麻辣哥发了一句在吗? 在这个过程数据是如何流动呢?

【Linux】冯诺伊曼体系结构|操作系统概念理解,Linux,linux,运维,服务器,冯诺依曼体系结构,操作系统概念

首先我会在键盘中输入在吗?,即我的输入设备是键盘,输入完成后,这个数据会被内存进行读取存储,由于计算机只认识二进制,不认识我们中华汉字,所以这个数据一定会被CPU读取进行计算转化等等操作,再将数据返回到内存中存储。这是一个对话框,当我点击发送后,信息会输出到网卡中。
在麻辣哥的冯诺依曼计算机里,我的那一句在吗? 会被麻辣哥的网卡进行读取,即麻辣哥的计算机的输入设备应该是网卡,然后这句话同样会被采集加载到内存中,CPU再拿走这句话进行解码读取等行为,再将数据返回到内存中,最后将在吗? 输出到显示器上。

所以这整个过程就是两台冯诺依曼计算机在进行交互!

关于冯诺依曼,总结几点:

  • 1.这里的存储器指的是内存
  • 2.不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
  • 3.外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。

一句话,所有设备都只能直接和内存打交道

二、再谈软件——操作系统

1.操作系统是什么

我们知道,前面讲的冯诺依曼体系结构都是一大堆硬件,它们虽然提供许多功能,但是它们本身并不聪明,需要有人对它们进行工作分配和资源管理。

简单来说,就是要有人管理好一大批硬件和软件,而这个人就是操作系统

操作系统是一款进行管理的软件!

其中操作系统会对硬件和软件都进行管理。

操作系统由几大块组成:内存管理,进程管理,文件管理,驱动管理。

在操作系统之下,有一些驱动程序和底层的硬件。

【Linux】冯诺伊曼体系结构|操作系统概念理解,Linux,linux,运维,服务器,冯诺依曼体系结构,操作系统概念

其中底层硬件就是我们上面所讲的冯诺依曼体系结构。
驱动程序就是让硬件动起来的程序,每个硬件都必须有自己对应的驱动程序,我们新买的电脑,大部分都是厂商帮我们安装好了各种驱动程序,有些则是让我们自己去安装的。

2. 为什么操作系统要把资源管理好

我们知道,银行有各种工作人员,有大堂经理,有前台服务人员,有安保等等。
还有各种业务,借贷系统,预约系统等等。

操作系统就像是银行一样,可以帮助来银行办理业务的管理好各种工作。

  • 也就是操作系统可以帮助用户管理好下面的软硬件资源

假如一个银行的安保系统不行,或者我的卡里时不时就不见了几万块钱,或者我的银行每天又扣了点钱,这就是银行的管理没做好。

就相当于操作系统没有管理好它下面的软硬件资源。
所以我们在选择操作系统时,注重的是:

  • 为了给用户提供一个良好(稳定,高效,安全)的运行环境。

所以,操作系统通过管理好它底层的软硬件资源(手段),为用户提供一个良好的运行环境。(目的)

3.什么是系统调用接口?

我们知道,银行里面有大量资金,如果银行不将这些资金储存并封闭起来,这些资金对任何一个普通人来说无疑是巨大的诱惑。

此时这个银行就像是操作系统,里面有各种数据,可是操作系统,不相信任何用户!

操作系统为了保证数据安全,会把自己封闭起来。

那么,如果操作系统把数据封闭起来了,我又想访问这些数据,怎么办?
正如同银行把自己封闭起来,我又要去取钱,该怎么办?

我们只能通过银行开放的那几个小窗口来进行取存钱业务!
对操作系统也是这样,我们只能通过操作系统开放的接口,来获取内部的数据!

那么,什么是接口?

操作系统是c语言实现的,这个接口只能由操作系统提供,一般来讲,这些接口不难猜到,就是普通的函数。然而,函数需要传递参数,有返回值,就像我们去银行取钱,需要提供身份证等个人信息一样,待银行工作人员验证后,才把我需要的钱给我。
操作系统对我传递的函数参数等验证后,会把我需要的数据返回给我。
这个就是接口

所以接口是操作系统提供的c函数实现的,这个通过调用接口的过程,叫做系统调用!

所有访问操作系统的行为,都只能通过系统调用来实现。

【Linux】冯诺伊曼体系结构|操作系统概念理解,Linux,linux,运维,服务器,冯诺依曼体系结构,操作系统概念
所以,传说中的shell外壳程序,就是因为系统开放了调用接口,程序员通过系统调用接口访问数据的同时进一步对这些数据进行封装,从而实现了给用户小白提供的用户操作接口,比如xshell

而对系统调用接口函数进行进一步的封装 ,就成了我们日常中所见到的库函数也是这样来的。这些也叫做用户调用接口,对这些shell外壳,库进行再封装,就可以实现门槛极低,小白都能使用的各种软件了。

所以,我们所有对底层硬件的各种操作,都必须经过操作系统,而访问操作系统的数据,则必须通过操作系统开放的系统调用来进行访问。

在这个计算机世界,操作系统是少有的不变的东西,尽管其他东西一直在变,但是操作系统是不变的。

三、操作系统如何管理

1. 管理的本质

在大学生活中,可能管理者不是人人都参与过,但是被管理,我们全都知道。

因为我们每个人都是被管理者。

校长是最典型的管理者。

一个学期过去了,有些同学成绩优异,学分绩点高,有些同学挂科无数,差的不行。而这些数据,都是我们的辅导员获取的,辅导员可以知道我们什么时候上下课,我们每个人的成绩如何。

所以,校长可以通过拿到辅导员手上的数据,也就是我们每个同学的数据,就可以知道我们哪个同学成绩好,发奖学金的时候,直接发给那些成绩好的同学就行,这个过程,并不需要管理者和被管理者见面!

你没有听错,管理者和被管理者不需要见面!
【Linux】冯诺伊曼体系结构|操作系统概念理解,Linux,linux,运维,服务器,冯诺依曼体系结构,操作系统概念
可是,管理者和被管理者不见面,如何管好?

再细想一下,管理者和被管理者需要见面吗?校长如果知道我的姓名,学号,身份证,籍贯,照片,家庭电话,成绩,课堂表现等各种他想要的数据,就可以通过这些数据,在未来进行管理决策

那么,辅导员是管理者吗?

实际上,事情就分为两种:

  • 1.决策
  • 2.执行

我们生活中的所有事情,就只有这两种,比如我和同学聊天:“你中午想吃点啥?” “中午吃个塔斯汀!” ——这个过程就是事情的决策过程
“好!现在就去!” ——这个过程就是执行过程

可以回答上面的问题了:辅导员也是被管理者,充当执行者

【Linux】冯诺伊曼体系结构|操作系统概念理解,Linux,linux,运维,服务器,冯诺依曼体系结构,操作系统概念
上面整个过程,就相当于校长是操作系统,辅导员是驱动程序,学生就是软硬件资源一样。

所以,这整个管理的过程,就体现出了管理的本质:

通过对数据的管理,达到对人的管理。

2.操作系统如何管理?

在学校虽然学生有很多,但是他们都有相同的属性:
姓名,年龄,性别,身份,籍贯,电话等等。假如我们的校长是一名程序员,这些各种信息不就可以被放在struct student结构体当中了吗?

上面说到,校长可以拿到辅导员手上我们这堆学生的数据,从而给成绩好的学生发奖学金,那校长怎么知道哪些学生成绩好呢?

很简单,我们需要通过排序,对每个学生的成绩都进行排序。而每个学生的信息那么多,校长又是一个程序员,此时校长有一个想法:把学生的各种数据看作是一个结构体。——这个过程就是描述的过程!

然后我们对这些结构体一一串联起来,就形成了我们熟悉的数据结构——链表

【Linux】冯诺伊曼体系结构|操作系统概念理解,Linux,linux,运维,服务器,冯诺依曼体系结构,操作系统概念

校长通过对链表按学分绩进行排序,就很容易知道哪些学生成绩最高,奖学金应该发给谁,哪些学生挂科,作弊等等,一目了然。

甚至新的学期来了,有同学从其他学校转学过来,校长从辅导员手里拿到学生信息后,就将该学生的信息定义成一个结构体,再将该结构体插入到链表即可!

如果哪个学生作弊,严重程度达到了勒令退学的程度,校长就将该学生的信息结构体从链表中删除,此后在学校的管理系统就不会再出现该同学了!

所以校长对学生数据的管理,转换成了对链表的增删查改

校长将每个学生的结构体串成一个链表,这个过程就是组织的过程!

从此以后,校长手里就拎着一个链表走天下!

至此我们知道,这整个管理的过程,总结起来就是:
先描述,再组织
同时,这句话将来会贯穿整个Linux,所以这里再提一遍。
如何进行管理?
先描述,再组织

总结管理的以下几点:

1.管理的本质是:先描述,再组织
2.事情分为两种:1)决策 2)组织
3.如何进行管理:先描述,再组织

总结

本篇文章讲述了两大概念:冯诺依曼体系结构和操作系统。文章来源地址https://www.toymoban.com/news/detail-628520.html

  • 冯诺依曼体系结构是每一台计算机都必须遵守的体系结构,再冯诺依曼体系结构中尤为重要的是存储器(内存),有了内存的存在,整机效率得到大幅度提升,核心效率转变成内存的运行效率。
  • 操作系统是少有的不变的东西,操作系统存在的意义是通过对软硬件资源进行管理,从而给用户提供一个良好的运行环境。操作系统之下管理者各种驱动程序和软硬件资源,对上来说,只开放一个系统调用接口来供外部访问数据,因为操作系统要保证安全性,必须要把自己封闭起来。程序员通过系统的接口进一步封装,实现了我们程序员常用的shell外壳程序,对函数进一步封装,实现了我们常见的库和库函数,而对这些shell外壳和库进一步封装,就可以给普通的小白用户使用了。

到了这里,关于【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日
    浏览(53)
  • 【Linux】冯诺依曼体系结构以及操作系统的初步认知

    🏖️作者:@malloc不出对象 ⛺专栏:Linux的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 本篇文章讲解是冯诺依曼体系结构以及操作系统的初步认知。 我们常见的计算机,如笔记本。我们不常见的计算机,如服

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

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

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

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

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

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

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

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

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

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

    2023年04月23日
    浏览(85)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包