Linux系统之----冯诺依曼结构

1.简要描述

冯·诺依曼体系结构是现代计算机的基本设计思想,其核心理念是将计算机的硬件和软件统一为一个整体,通过存储程序的方式实现计算。冯·诺依曼体系结构的核心思想是通过存储程序实现自动计算,其五大部件协同工作,奠定了现代计算机的基本框架。

2.基本组成部分

冯·诺依曼体系结构由以下五大部件组成:

输入设备:用于将外部数据输入到计算机中(如键盘、鼠标、摄像头等)。

存储器:用于存储程序和数据(包括内存和外存)。

运算器:负责执行算术运算和逻辑运算。

控制器:负责协调和控制计算机各部件的工作,执行程序指令。

输出设备:用于将计算结果输出到外部(如显示器、打印机、扬声器等)。

关于冯诺依曼,必须强调几点:
1、 这里的存储器指的是内存
2、 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
3、 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
4、  ⼀句话,所有设备都只能直接和内存打交道。

3.示例说明

例如我想和我女朋友发一条消息,并且我们都约好了只在微信或者QQ上面聊,假设我在广州,而她在长春,线下来回跑聊天是不可能的了,只能文字聊天,那么当我在微信上发送一条“早上好”的消息时,她是怎么收到的呢?为什么别人收不到我的消息呢?
首先我们要肯定一点,我的手机是一台冯诺依曼结构,我女朋友也是,而之所以微信和QQ可以传递消息就是因为当我们打开他们时,他们就会在我们的内存中启动,并且通过我这个内存,也就是冯诺依曼结构的核心传递消息。
首先我的消息(包括图像,声音文字等)要先进入输入设备,例如键盘等等,之后进入存储器,包括运算器以及控制器,在这里我的消息将进行加密运算,形成一种特定的编码,之后在返回存储器,并进入输出设备,同时通过网卡进行网络转播,由于不同的消息所占据的信道不一样,频率也不一样,具体的可以去学习一下信号与系统与现代通信原理这门课,这里我不是很了解就不在多说了。总之就是通过网络就传到了我对象的手机里,进入了她的冯诺依曼结构的输入设备,(此时还是加密的某种编码),在进入存储器后,通过CPU进行解密操作,并传到输出设备:显示器。如此我便将消息传到了我对象的手机里。
那文件又是如何传输的呢?道理很相似,我们的文件是存储在磁盘中的,一开始我的输入设备通过文件路径拿到了我的文件,之后还是在CPU中进行加密,之后通过输出设备传出,之后在接收端的输入设备被捕获,之后进行解密,存到磁盘中。
换句话说, 我们是在基于冯诺依曼结构,进行二者的磁盘文件数据的拷贝

     但是换句话讲,在Linux中一切皆是文件,发送消息的本质就是基于冯诺依曼结构,从我的键盘文件拷贝数据到对方的显示器文件!!!!!!!

4. 内存与外存

  • 内存:与CPU直接交互,速度快但容量有限。

  • 外存:如硬盘、SSD等,容量大但速度较慢。

  • 内存作为外存和CPU之间的缓存,确保数据能够快速传递。

5. 性能瓶颈

冯·诺依曼体系结构的一个主要问题是“冯·诺依曼瓶颈”,即数据在存储器和CPU之间的传输速度限制了整体性能。图片中提到的“木桶理论”形象地说明了这一点:系统的性能由最慢的环节(如存储器(内存)速度)决定。

6.操作系统

6.1 操作系统概述

操作系统是一种系统软件,处于计算机硬件和其他软件及用户之间的中间层,它对软硬件资源进行管理,为用户和应用软件提供良好的运行环境。

 从上图可以看到,操作系统是分为侠义和广义的,内核就是开发者所制造出来的(指的是祖师爷那帮人),外壳是给公司里的各种程序员使用的,诸位程序员在外壳上对操作系统进行开发,开发完成后形成广义的操作系统,也就是大家都在用的安卓苹果等等。


6.2 操作系统结构

用户部分 :包含指令操作、开发操作和管理操作等,用户通过这些操作与计算机系统进行交互。

用户操作接口 :有 shell 外壳、lib 和部分指令,方便用户进行各种操作,就像是用户与操作系统之间的一座桥梁,让用户能够按照自己的意图操控计算机系统。

系统调用接口 :是操作系统提供给用户程序调用的一组接口,用户程序可以通过这些接口请求操作系统提供的各种服务,如文件操作、进程控制等,它是操作系统内核与应用程序之间的桥梁,使得应用程序能够在受控的方式下访问操作系统提供的功能和服务。

系统软件部分 :包括内存管理、进程管理、文件管理和驱动管理等模块。内存管理负责计算机内存的分配、回收等操作,确保各个进程能够合理、高效地使用内存资源;进程管理则对进程的创建、撤销、调度等进行控制和协调,使得多个进程能够有序地运行,提高系统的并发执行能力;文件管理负责文件的存储、读取、写入等操作,为用户和应用程序提供方便的文件存储和访问服务;驱动管理则是对各类硬件设备的驱动程序进行管理和调度,使得硬件设备能够正常工作并被操作系统及应用程序所使用。

驱动程序 :如网卡驱动、硬盘驱动和其他驱动,它们是操作系统与硬件设备之间的接口软件,负责控制和管理特定的硬件设备,使得操作系统和应用程序能够通过驱动程序与硬件设备进行通信和交互,完成各种硬件操作。

硬件部分 :是计算机系统的基础,包括网卡、硬盘等硬件设备,它们为计算机系统的运行提供了物质基础和计算、存储、通信等能力。

6.3 操作系统的必要性

对下 :可以管理好软硬件资源,对计算机系统的各类资源进行统一的管理和调度,确保资源的合理分配和高效利用,避免资源的浪费和冲突。

对上 :能给用户提供便捷、稳定、安全、高效的运行环境,用户和应用程序无需直接与硬件打交道,而是通过操作系统提供的接口和功能来使用计算机资源,大大降低了使用计算机的难度,提高了计算机的可用性和可靠性。

6.4 操作系统与管理

管理的本质 :管理的本质是通过数据来进行管理。在操作系统中,各种资源和对象都可以通过相应的数据结构和信息来进行描述和管理,例如通过进程控制块来管理进程的状态、信息等。

结构化管理 :可以采用链表、数组等结构来对管理对象进行组织和管理。比如使用链表来管理进程列表,方便对进程的增删改查等操作,提高管理的效率和灵活性。

---------------------------------------------------------------------------------------------------------------------------------

上述内容看不懂没关系,这里我在详细解释一下:

例子一:

首先我们要搞明白什么叫做管理者?举个例子,学校里面有校长,老师和同学,同学自然而然便是被管理者那么老师是属于什么?管理者还是被管理者呢?都不是,老师是属于决策的执行者,而决策是由校长制定的,因此在这个例子中,校长是管理者。同理,对于我们的操作系统,驱动程序还有硬件,也符合这三者的关系,我们的操作系统就相当于是管理者,操作系统将命令下达后传达给驱动程序,再由驱动程序传递给硬件。

我们再回到上述例子,管理者是如何知道我的相关数据的呢?管理者要管理被我们管理者,但是他们并没有见过我的面,他是如何管理的我呢?

结论就是见面并不是本质,获取你身上的有效信息才是管理的必要条件。在上述例子中,校长通过辅导员协助收集我们的有效信息,进而可以实现对我们的管理。打个比方,以分宿舍为例,校委会通过老师来收集我们的生源地,将生源地比较靠近的学生分到一起,避免分歧。这便是管理执行的一个例子。

因此我们得出一个结论,管理的本质就是对数据进行管理,管理的做法也就是先描述再组织。

描述可以理解为收集到我们的个人信息,在我们编程语言中便是结构体,这里的组织便是通过一系列的操作方式完成目的,这也就是为什么c++,Python,JAVA等语言为什么要提供类,为什么要提供容器技术,比如stl的原因。

这也就恰恰的解释了我们当时在设计学生管理系统的时候,为什么要用一个结构体来封装每一个学生单元。本质上就是要对数据进行描述!!!

因此对于我们操作系统而言,其内部一定存在着大量的数据结构,匹配着对应的算法,用于我们对数据的管理进行描述与组织。换句话说,如果想学习好操作系统,必须要先了解操作系统内的各种数据结构

例子二:

现在我们再举个例子来论述底层硬件驱动程序和操作系统的关系。假设我现在有一个银行系统,其分为了5个部分,分别为金库,桌椅,宿舍,食堂还有电脑。这5个部分就像我们计算机的操作系统里面的不同数据结构或者函数,你要干什么就调用相应的函数就可以了。比如我来到了银行想存钱,那我就去金库部门,假如我想到银行吃饭,那我就去食堂部门。但是林子大了什么鸟都有,人民群众中可能会有坏人,我们可以直接让人们直接把钱放到金库,然后再去电脑端自己手动输入去更新数据吗?这个是显然不现实的,因此我们的银行系统中会有一个一个的窗口,窗户里面有人来为我我们办理业务。不允许外部的人直接访问银行系统内部的相关数据。这个可以类比为我们计算机系统里面的驱动程序, 然而有些老年人可能不会存钱,有可能这些人不会写字,甚至不会整个操作流程,那如果让这些老年人直接去窗口办理业务的话会大大增加时间成本,因此大堂经理便发挥了重要作用。他们可以根据老年人的要求帮助老年人填写好单子,预约好窗口,减少窗口使用的成本,这也就是程序员存在的意义所在,需要将操作系统开发到普通群众可以拿来就能用!

倘若直接让一个小白去使用我们的操作系统,他是不会用底层的语言来操作系统进而完成他想操作的东西。此时就需要程序员在操作系统进行各种库的开发与调用,比如c标准库,c++标准库。那么在系统调用方面和库函数调用又有什么关系呢?实际上这些库和系统调用是属于上下层之间的关系,使用者通过操纵库函数来进行系统调用,而与操作系统进行交互的唯一方式也只能通过操作系统来调用!

想必到这里,读者应该对操作系统有了初步的理解与认识,下一篇文章中我们将继续讲解进程的概念!

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

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

相关文章

【八股】计算机网络

1 概述 1.1 网络的网络 网络把主机连接起来,而互连网(internet)是把多种不同的网络连接起来,因此互连网是网络的网络。而互联网(Internet)是全球范围的互连网。 1.2 ISP 互联网服务提供商 ISP 可以从互联网管理机构获得许多 IP 地址,同时拥有通信线路以及路由器等联…

基于VS Code 为核心平台的python语言智能体开发平台搭建

以下是基于 VS Code 为核心平台,整合 Node-RED、Gradio、Docker Desktop 的智能体可视化开发平台优化方案,聚焦工具链深度集成与开发效率提升: 一、核心架构设计 #mermaid-svg-f8l9kYPAlJ2TlpGF {font-family:"trebuchet ms",verd…

STM32G0单片机自带RTC

STM32有个自带RTC外设,外接32.768KHz的晶振后可得到相对精确的计时功能。 实测了一个一小时快个1秒多。 1 cubeMX设置了RTC后自动生成的初始化代码如下 static void MX_RTC_Init(void) {/* USER CODE BEGIN RTC_Init 0 *//* USER CODE END RTC_Init 0 */RTC_TimeT…

细说STM32单片机FreeRTOS任务管理API函数及多任务编程的实现方法

目录 一、FreeRTOS任务管理API函数 1、任务管理API函数 2、获取任务的句柄 (1)函数xTaskGetCurrentTaskHandle() (2)函数xTaskGetIdleTaskHandle() (3)函数xTaskGetHandle() 3、单个任务的操作 &a…

星露谷物语 7000+ 大型MOD整合包

衣服美化、家具美化、地图美化、人物肖像美化 全地图装修存档、人物美化、扩展包、环境美化、家具、动植物、通用前置包、新增NPC、功能、服装发饰妆 帽子发型农场小镇美化大型玩法拓展实用功能mod 动漫人物形象MOD 地点/动物/地图/功能/机械/家具/建筑/界面美化/扩展/农场/食谱…

C++ `unique_ptr` 多线程使用

C unique_ptr 多线程使用 一、核心结论 操作同一个 unique_ptr:必须加锁(所有权转移是非原子操作)访问被管理对象:若对象非线程安全,仍需额外同步独立 unique_ptr 实例:不同线程操作不同实例时无需加锁 二…

Android audio系统六 AudioEffect音效加载

对于Android系统智能硬件设备,音效处理的实现方式有以下几种: AudioEffect – android系统音效处理 优点:纯软件实现,移植调试简单方便 缺点:cpu上运行,容易因为资源竞争而出现卡顿 DSP/ADSP – 数字信号处…

深度学习总结(21)

超越基于常识的基准 除了不同的评估方法,你还应该了解的是利用基于常识的基准。训练深度学习模型,你听不到也看不到。你无法观察流形学习过程,它发生在数千维空间中,即使投影到三维空间中,你也无法解释它。唯一的反馈…

接口自动化测试(二)

一、接口测试流程:接口文档、用例编写 拿到接口文档——编写接口用例以及评审——进行接口测试——工具/自动化框架进行自动化用例覆盖(70%)——输出测试报告 自动化的目的一般是为了回归 第一件事情:理解需求,学会看接口文档 只需要找到我…

Linux上位机开发实践(以MCU小系统入门嵌入式电路)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 一直都主张嵌入式软件工程师,也要会做一点电路设计的工作。哪怕自己做的是嵌入式linux上层开发,一个会硬件设计&#xff0c…

浏览器的存储机制 - Storage

浏览器的存储机制 - Storage 前言一、核心概念与区别二、常用 API1、存储数据(setItem(key, value))2、 获取数据(getItem(key))3、删除单个数据(removeItem(key))4、清空所有数据(clear()&…

考研单词笔记 2025.04.18

chance n机会,风险,冒险,可能性,巧合,意外a偶然的,意外的 opportunity n机会,时机 crisis n危机,危急关头 the economic crisis 经济危机 danger n危险,可能性&#…

第三方API——Spring Boot 集成阿里云短信发送功能

目录 一. 创建阿里云OSS服务并获取密钥,开通短信服务 1.1 注册阿里云服务器 1.2 开通短信服务 1.3 创建对象存储OSS服务 1.4 RAM用户授权短信权限 1.5 新增用户并授权用户短信权限 1.6 获取 AccessKey ID 和 AccessKey Secret 二. 创建项目集成短信发送 2.1…

b站PC网页版视频播放页油猴小插件制作

文章目录 前言需求分析实施观察页面起始渲染编码效果展示 总结 前言 新手上路,欢迎指导 需求分析 想要一个简约干净的界面,需要去除推荐栏和广告部分. 想要自由调节视频播放速率,需要在视频控制栏加一个输入框控制视频倍速 实施 观察页面起始渲染 因为要使用MutationObse…

畅游Diffusion数字人(27):解读字节跳动提出主题定制视频生成技术Phantom

畅游Diffusion数字人(0):专栏文章导航 前言:主题定制视频生成,特别是zero-shot主题定制视频生成,一直是当前领域的一个难点,之前的方法效果很差。字节跳动提出了一个技术主题定制视频生成技术Phantom,效果相比于之前的技术进步非常显著。这篇博客详细解读一下这一工作。 …

ESP8266简单介绍

ESP8266模块图如下 ESP8266的工作模式有三种 ESP8266支持STA、AP、STAAP三种工作模式 ①STA模式 (ESP充当设备与路由器相连) ②AP模式 (ESP充当路由器) ③APSTA(上述两种模式兼具) AT指令介绍 使用安…

DeepSeek-R3、GPT-4o 与 Claude-3.5-Sonnet 全面对比:性能、应用场景与技术解析

随着大模型技术的迅猛发展,国产模型正逐渐崭露头角,尤其是DeepSeek-R3的发布,更是在AI技术社区中引起广泛关注。而与此同时,国际领先的GPT-4o和Claude-3.5-Sonnet也在不断迭代升级,持续刷新业界对AI能力的认知。下文将…

城市街拍暗色电影胶片风格Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色介绍 城市街拍暗色电影胶片风格 Lr 调色,是借助 Adobe Lightroom 软件,为城市街拍的人像或场景照片赋予独特视觉风格的后期处理方式。旨在模拟电影胶片质感,营造出充满故事感与艺术感的暗色氛围,让照片仿佛截取于某部充满张力…

数字后端设计 (一):数字电路设计的「前后端」到底是什么?

—— 想象你在做一道菜——前端设计是写菜谱,后端设计是进厨房真正炒菜。这篇文章帮你搞懂「芯片设计」里这两个阶段到底在干嘛。 1. 前端设计——写一份「理想化」的菜谱 任务:用代码描述芯片的功能。例子:你要做一个自动计算“112”的芯片…

网站301搬家后谷歌一直不收录新页面怎么办?

当网站因更换域名或架构调整启用301重定向后,许多站长发现谷歌迟迟不收录新页面,甚至流量大幅下滑。 例如,301跳转设置错误可能导致权重传递失效,而新站内容与原站高度重复则可能被谷歌判定为“低价值页面”。 即使技术层面无误&a…