【Linux】 冯诺依曼体系与计算机系统架构全解

在这里插入图片描述

Linux相关知识点可以通过点击以下链接进行学习一起加油!
初识指令指令进阶权限管理yum包管理与vim编辑器GCC/G++编译器
make与Makefile自动化构建GDB调试器与Git版本控制工具Linux下进度条

冯诺依曼体系是现代计算机设计的基石,其统一存储和顺序执行理念推动了计算机的发展。结合操作系统、驱动层和系统调用的优化设计,计算机实现了高效的软硬件协作。

请添加图片描述
Alt
🌈个人主页:是店小二呀
🌈C语言专栏:C语言
🌈C++专栏: C++
🌈初阶数据结构专栏: 初阶数据结构
🌈高阶数据结构专栏: 高阶数据结构
🌈Linux专栏: Linux

🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅 请添加图片描述

文章目录

  • 一、冯诺依曼体系结构
  • 二、冯诺依曼系统结构设计意义
    • 2.1 计算机整体效率
    • 2.2 内存的核心作用
  • 三、冯诺依曼体系结构的历史意义
  • 四、数据流动与操作系统功能定位
  • 五、计算机层次结构分析
    • 5.1 操作系统(Operator System)
    • 5.2 驱动层的作用与意义
    • 5.3 系统调用接口(system call)
    • 5.4 用户操作接口
  • 六、操作系统管理
    • 6.1 管理者决策被管理者
    • 6.2 如何得到被管理者数据
    • 6.3 库函数与系统调用的关系

一、冯诺依曼体系结构

冯诺依曼体系(Von Neumann Architecture)是一种计算机体系结构,由数学家 约翰·冯·诺依曼 于1945年提出,是现代计算机设计的理论基础。其核心思想在于程序和数据以相同的形式存储在统一的存储器中,通过顺序执行指令完成计算任务。

在这里插入图片描述

冯诺依曼体系的计算机由以下五个部分组成

  • 输入设备】:鼠标、键盘,磁盘(文件读取)、网卡(网络接收)等,将外界信息输入计算机
  • 输出设备】:显示器、磁盘(写入文件)、网卡(网络发送)等,将计算机信息输出外界
  • 存储器】:内存,存储数据和程序
  • 运算器】:完成算术运算和逻辑运算
  • 控制器】:负责指令的解码和执行,控制各部分协调工作

每个硬件都是独立存在,想要建立硬件间关系需要借助"总线"进行连接,总线分为系统总线、IO总线

  • 系统总线】:存储区和运算器、控制器之间
  • IO总线】:存储区和输入设备、输出设备之间的线

关于冯诺依曼,其中需要注意

  • 计算机只能识别二进制,用户和计算机不能直接打交道,必须需要通过输入输出设备进行交流。关于设备,有纯的输入或输出,也有兼容输入输出设备。
  • 中央处理器(CPU):含有运算器和控制器等。
  • 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
  • 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取
  • 简单来说,所有设备都只能直接和内存打交道

二、冯诺依曼系统结构设计意义

2.1 计算机整体效率

以下为计算机存储的金字塔层次结构:存储金字塔这个离CPU越近的一些存储设备或者存储的小的单元,效率高,造价越贵。

查看源图像

问题】:冯诺依曼系统结构中需要内存存在,输入输出设备访问CPU不是更快?

计算机整体效率受多个因素影响,其中关键在于数据设备之间的数据拷贝速度CPU处理数据速度的协调。由于输入设备的效率较低(通常是毫秒级),而CPU的处理速度极高(通常是纳秒级),两者之间存在巨大的速度差距。这种差距导致CPU在绝大部分时间里处于等待资源准备的状态,而非实际执行计算。因此,真正影响计算机效率的关键在于数据设备之间的拷贝效率

2.2 内存的核心作用

  • 利用内存作为缓冲】:通过预先将大量数据加载到内存中,减少CPU直接等待输入输出设备的时间。内存的读取和写入速度远高于外设,能够更快地向CPU提供所需数据。加快数据传递速度,为CPU提供高效支持。
  • 分离操作,提升并行性】:CPU从内存中读取数据与外部设备向内存导入数据这两个过程可以同时进行。这种并行处理方式避免了串行执行所带来的效率低下。实现数据流动的并行化,大幅提升整体效率。

三、冯诺依曼体系结构的历史意义

其最大的历史意义在于:以较低的成本实现了高效的计算能力,为计算机的大规模普及奠定了基础。这一体系结构的推广不仅让计算机走向大众化,还为互联网的诞生和发展提供了技术支撑,推动了现代信息社会的形成。

四、数据流动与操作系统功能定位

对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上。

场景】:从你登录上qq开始和某位朋友聊天开始,数据的流动过程。 从你打开窗口,开始给他发消息,到他的到消息之后的数据流动过程。
在这里插入图片描述

我们从网络里面收到的所有信息,一定是先到你的电脑的网卡上,然后由网卡再到内存被CPU读取,到输出设备中。

对于内存是需要带电的,不带电会丢失。外存是不需要带电的,关机也不会丢失,所以别人把文件传给我们的时候,并不是直接传到显示器上,而是先下载到硬盘上,再通过读取硬盘的数据进行显示

五、计算机层次结构分析

5.1 操作系统(Operator System)

定位:一款纯正"搞管理"的软件

操作系统是一款管理计算机软硬件资源的软件,它向上为应用程序提供稳定的服务接口,向下为硬件提供统一的管理和调度,创造稳定可靠的运行环境。

每个硬件设备都有其特定的功能,并能够在冯诺依曼体系下高效运行。然而,仅具备硬件功能还远远不够,因为硬件的操作需要明确的调控和协调。也就是说,何时执行何种功能,必须通过一个统一的管理者来安排,这正是操作系统和程序设计的重要作用。

在这里插入图片描述

5.2 驱动层的作用与意义

在这里插入图片描述

上层的任何操作最终都会反馈到底层硬件,操作系统接收上层请求后,会调用相关的底层硬件。然而,由于硬件特性不同,可能会导致需要修改硬件或操作系统以适配新设备。为了解决这种问题,在软件和硬件之间引入了一层驱动层

驱动层是一种专门的软件,每种硬件都有对应的驱动层。它的主要作用不是直接管理软硬件资源,而是为操作系统提供统一的通信接口,让操作系统能够通过标准化的方法访问和控制硬件设备。例如,操作系统可以通过驱动层读取硬件信息或发送控制指令,而不需要关心硬件的具体实现细节。

不论硬件如何变化,只要硬件厂商提供了合适的驱动程序,操作系统就能够正常管理和使用该硬件。

5.3 系统调用接口(system call)

在这里插入图片描述

底层硬件的管理者是操作系统,任何涉及到访问硬盘的行为,必须通过操作系统进行访问。操作系统里面本身是对软硬件资源进行操作,所以操作系统内部会包含所有的软硬件资源。

问题】:如果出现用户想要访问某种软硬件资源数据,可不可以用户直接访问操作系统特定的数据呢?

在这里插入图片描述

操作系统内部资源是十分重要的,不允许其他用户直接进行访问,避免用户造成内部资源的损坏。然而,用户仍然需要通过操作系统向底层硬件提出请求并执行操作。

为此,操作系统设计者使用 C语言 编写了一系列内部函数接口,这些接口为用户程序提供了访问系统资源的标准服务。这些接口被称为 系统调用(System Call)

5.4 用户操作接口

在这里插入图片描述

由于系统调用本身的使用难度较高,普通用户直接使用系统调用可能面临复杂的操作流程和较高的技术门槛。因此,程序员通常会基于系统调用设计上层的软件或接口,通过封装特定的功能和逻辑,提供更简单、易用的服务。

六、操作系统管理

6.1 管理者决策被管理者

们可以举个例子方便理解:评选奖学金:

将评选奖学金的工作人员看成管理者,而参与评选的学生看成被管理者。如果管理者需要对于被管理者需要进行决策,决定奖学金分配。根据我们日常流程可以知道,管理者和被管理者间是不需要见面,管理者会根据被管理者数据进行相关决策。

这也说明管理的本质是通过对于数据进行管理,从而达到对于人的管理。

6.2 如何得到被管理者数据

管理者是负责对被管理者数据进行决策,而被管理者数据是需要通过执行者去执行收集数据。由于人数过多,精力有限,不可能一一去问,所以我们可以使用EXCEL表格进行管理,但是庞大的数据量也是十分的棘手。

管理者是老练的程序员,想到可以将自己手上的活交给编译器去做,那么将学生信息封装到结构体中,在每个结构体内部添加结构体指针用于连接其他包含学生信息的结构体,形成链表。

管理者只需要对链表进行管理,对于学生信息数据进行增删查改转变为了对链表的增删查改。相对于Excel表可以根据链表的特点添加一些方便的接口,比如找到这一堆学生中数学成绩最好的学生。

在这里插入图片描述

在计算机体系结构里,我们的OS就相当于管理者,我们的软硬件资源就相当于被管理者,而我们的驱动程序就相当于是执行者。

6.3 库函数与系统调用的关系

场景】:假如有A和B两个校长,A校长有一个学生数学特别厉害,但是B校长没有,于是B校长就想跟A校长商量借这个同学来打比赛,但是B校长肯定不能直接去找这个学生,因为这个学生是A校长的人,他得负责,所以他必须要通过A校长的同意才行。

库函数必须通过系统调用接口才能与操作系统进行交互,从而访问底层资源。因此,库函数与系统调用呈现出上下层关系,可以理解为:

  1. 系统调用是基础层
    系统调用是操作系统提供的接口,直接与操作系统内核交互,用于访问硬件资源或执行关键的系统操作(如文件管理、进程控制等)。
  2. 库函数是封装层
    库函数建立在系统调用之上,进行二次开发,通过封装复杂的系统调用逻辑,为开发者提供更加简单、统一的操作接口。例如:printf() 是C标准库函数,但它最终调用了系统调用 write()来实现数据输出。

在这里插入图片描述

以上就是本篇文章的所有内容,在此感谢大家的观看!这里是Linux笔记,希望对你在学习Linux旅途中有所帮助!

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

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

相关文章

定制Centos镜像

环境准备: 一台最小化安装的干净的系统,这里使用Centos7.9,一个Centos镜像,镜像也使用Centos7.9的。 [rootlocalhost ~]# cat /etc/system-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]# rpm -qa | wc -l 306 [rootloca…

【C++ 动态规划】1024. 视频拼接|1746

本文涉及知识点 C动态规划 LeetCode1024. 视频拼接 你将会获得一系列视频片段,这些片段来自于一项持续时长为 time 秒的体育赛事。这些片段可能有所重叠,也可能长度不一。 使用数组 clips 描述所有的视频片段,其中 clips[i] [starti, end…

EasyExcel写入和读取多个sheet

最近在工作中,作者频频接触到Excel处理,因此也对EasyExcel进行了一定的研究和学习,也曾困扰过如何处理多个sheet,因此此处分享给大家,希望能有所帮助 目录 1.依赖 2. Excel类 3.处理Excel读取和写入多个sheet 4. 执…

字节iOS面试经验分享:HTTP与网络编程

字节iOS面试经验分享:HTTP与网络编程 🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 目录 字节iOS面试经验分享:HTT…

电力晶体管(GTR)全控性器件

电力晶体管(Giant Transistor,GTR)是一种全控性器件,以下是关于它的详细介绍:(模电普通晶体管三极管进行对比学习) 基本概念 GTR是一种耐高电压、大电流的双极结型晶体管(BJT&am…

装饰SpringMVC的适配器实现响应自动包装

文章目录 1.common-tool-starter1.目录结构2.ResultWrapper.java 2.common-web-starter1.目录结构2.IgnoredResultWrapper.java 自定义注解,忽略对返回结果的自动包装3.ReturnValueHandlersDecorator.java 对适配器进行扩展的装饰器4.WebAutoConfiguration.java 将装…

如何在Spring Boot项目中高效集成Spring Security

1 Spring Security 介绍 Spring Security 是一个功能强大且高度可定制的安全框架,专为保护基于Java的应用程序而设计。它不仅提供了认证(Authentication)和授权(Authorization)的功能,还支持防止各种常见的安全攻击模式。本文将详细介绍Spring Security的主要特点、功能…

代码随想录算法训练营第三十七天-动态规划-完全背包-377. 组合总和 Ⅳ

这是一道与上一题几乎一样的题目不同点是在上一题是组合,这道题是排列所以就要用先循环背包,内循环为物品来实现排列效果总结: 对纯完全背包,求装满这个背包的最大价值,或者问能不能装满这个背包,那么两层f…

Go优雅实现redis分布式锁

前言 高可用方案一般会部署多实例,会存在对共享资源并发读写的业务,为了保证读写的正确,通常会引入分布式锁,本文将介绍如何使用redis设计一个优雅的Go分布式锁。 设计 redis分布式锁是借助SETNX来实现,可能会遇到一…

HPO3:提升模型性能的高效超参数优化工具

引言 在当今快速发展的数据科学和机器学习领域中,超参数优化(Hyperparameter Optimization, HPO)是构建高性能模型不可或缺的一环。为了简化这一复杂过程,恒通网络科技团队推出了HPO3模块——一个专为Python开发者设计的强大库&a…

全球AI模型百科全书,亚马逊云科技Bedrock上的100多款AI模型

今天小李哥给大家介绍的是亚马逊云科技上的AI模型管理平台Amazon Bedrock上的Marketplace,这是亚马逊云科技在今年re:Invent发布的一个全新功能,将亚马逊的电商基因带到了其云计算平台,让我们能够通过Amazon Bedrock访问100多种流行、新兴和专…

CentOS7使用源码安装PHP8教程整理

CentOS7使用源码安装PHP8教程整理 下载安装包解压下载的php tar源码包安装所需的一些依赖扩展库安装前的配置修改配置文件1、进入php8的安装包 配置环境变量开机自启启动服务创建软连接常见问题1、checking for icu-uc > 50.1 icu-io icu-i18n... no2、configure: error: Pa…

Ubuntu二进制部署K8S 1.29.2

本机说明 本版本非高可用,单Master,以及一个Node 新装的 ubuntu 22.04k8s 1.29.3使用该文档请使用批量替换 192.168.44.141这个IP,其余照着复制粘贴就可以成功需要手动 设置一个 固定DNS,我这里设置的是 8.8.8.8不然coredns无法…

Jetson Xavier NX (ARM) 使用 PyTorch 安装 Open3D-ML 指南

由于 Jetson 为 ARM64 (aarch64) 的系统架构,所以不能用 pip install 直接安装,需要通过源码编译。 升级系统 JetPack 由于 Open3D-ML 目前只支持 CUDA 10.0 以及 CUDA 11.*,并且 JetPack 的 CUDA 开发环境只有10.2、11.4以及12.2&#xff0…

npm常见报错整理

npm install时报UNMET PEER DEPENDENCY 现象 npm install时报UNMET PEER DEPENDENCY,且执行npm install好几遍仍报这个。 原因 不是真的缺少某个包,而是安装的依赖版本不对,警告你应该安装某一个版本。 真的缺少某个包。 解决 看了下package.json文件,我的react是有的…

单片机-STM32 WIFI模块--ESP8266 (十二)

1.WIFI模块--ESP8266 名字由来: Wi-Fi这个术语被人们普遍误以为是指无线保真(Wireless Fidelity),并且即便是Wi-Fi联盟本身也经常在新闻稿和文件中使用“Wireless Fidelity”这个词,Wi-Fi还出现在ITAA的一个论文中。…

“AI质量评估系统:智能守护,让品质无忧

嘿,各位小伙伴们!今天咱们来聊聊一个在现代社会中越来越重要的角色——AI质量评估系统。你知道吗?在这个快速发展的时代,产品质量已经成为企业生存和发展的关键。而AI质量评估系统,就像是我们的智能守护神,…

sqlite3 学习笔记

文章目录 前言SQL的概念与表格相关的操作i.创建表格(增)ii 删除表格(删)iii 更改表格(改)iv 查询表格(查) 与记录相关的操作i 插入记录ii 删除记录iii 查询记录iv 修改记录 Linux中使…

Swing使用MVC模型架构

什么是MVC模式? MVC是一组英文的缩写,其全名是Model-View-Controller,也就是“模型-视图-控制器”这三个部分组成。这三个部分任意一个部分发生变化都会引起另外两个发生变化。三者之间的关系示意图如下所示: MVC分为三个部分,所以在MVC模型中将按照此三部分分成三…

壁纸设计过程中如何增加氛围感

在壁纸设计过程中,增加氛围感是提升整体视觉效果和情感传达的关键。以下是一些具体的方法和技巧,帮助你在设计中营造出强烈的氛围感: 一、色彩运用 选择主题色: 根据你想要传达的情感选择主色调。例如,温暖的色调&…