高效计算的源泉:深入浅出冯诺依曼模型与操作系统的管理艺术 —— 构建稳定、高效的应用基石 【底层逻辑/性能优化】


♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥

♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥

♥♥♥我们一起努力成为更好的自己~♥♥♥

♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥

♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥

✨✨✨✨✨✨个人主页✨✨✨✨✨✨

        前面我们已经学习了Linux的基础指令和基础开发工具,这一篇博客我们从宏观上来看看计算机——冯诺依曼模型与操作系统的管理艺术 !准备好了吗~我们发车去探索计算机的奥秘啦~🚗🚗🚗🚗🚗🚗

目录

冯诺依曼体系结构😜

概念😀

🖥️ 五大组成部分

🔁 两大核心特点

⚡ 数据流动原则

实例说明:QQ聊天与文件发送🙃

操作系统😝

操作系统是什么?😁

操作系统的设计目的😄

操作系统的核心功能(内核负责)😋

操作系统如何实现“管理”?😍

操作系统如何提供服务?—— 系统调用与库函数☺

总结❤


冯诺依曼体系结构😜

概念😀

        冯诺依曼体系结构(Von Neumann Architecture)是现代计算机系统的理论基础,由数学家约翰·冯·诺依曼于1945年提出。我们常用的计算机如笔记本,我们不常用的计算机如服务器,大部分都遵守了冯诺依曼体系结构。该体系结构明确了计算机的基本组成和工作方式~

🖥️ 五大组成部分

    输入设备(Input Unit)

        例如:键盘、鼠标、扫描仪、摄像头、麦克风、网卡等。

        功能将外部数据或指令输入到计算机中

    存储器(Memory)

        特指内存(RAM),是CPU直接访问的存储区域

        所有输入/输出设备的数据必须通过内存进行中转

    运算器(Arithmetic Logic Unit, ALU)

        负责执行所有的算术运算(如加减乘除)和逻辑运算(如与或非)。

    控制器(Control Unit)

        指挥协调各部件工作,解析并执行指令(如程序代码),进行逻辑控制。 

运算器与控制器合称为中央处理器(CPU)

    输出设备(Output Unit)

        例如:显示器、打印机、音响、网卡等。

        功能将处理结果输出给用户或外部设备

🔁 两大核心特点

    1、存储程序原理

        程序和数据都以二进制形式存储在内存中,CPU按顺序读取并执行指令

    2、以运算器为中心

        所有设备通过内存与CPU交互,CPU不直接访问外设,外设也不和CPU直接打交道

数据流动原则

        所有设备只能直接与内存交换数据,CPU不直接操作外设~外设输入数据时,先写入内存;CPU从内存读取数据运算,结果写回内存;输出设备从内存读取结果并输出~

        换言之,内存的本质是CPU和外设的缓存,数据流动的本质就是拷贝,计算机整体效率本质上就是设备间拷贝的效率~

        内存是核心中转站,协调高速CPU与低速外设之间的速度差异~

        效率层次:CPU > 内存 > 外设(如硬盘、键盘等)~

        内存的引入使得计算机在成本和效率之间取得了良好的平衡,让用户能够以相对较低的成本获得一台性能不错的计算机,从而提升了计算机的“性价比”。

实例说明:QQ聊天与文件发送🙃

1. 发送文字消息:

    输入:键盘输入字符 → 数据存入内存。

    CPU处理:从内存读取数据,进行编码、打包等操作。

    输出:数据从内存经网卡发送到网络 → 对方接收后存入其内存 → 对方CPU处理 → 结果显示在对方屏幕上。

2. 发送文件:

    输入:文件从硬盘读入内存(外设→内存)。

    CPU处理:对文件数据分包、加密等。

    输出:数据包经网卡发送 → 对方接收后存入内存 → 写入硬盘(内存→外设)。

        冯诺依曼体系结构通过“存储程序”和“集中式内存访问”机制,奠定了现代计算机的基础。通过理解这一模型有助于深入理解软件与硬件的交互方式,尤其是数据流如何在不同设备间通过内存进行协调与传输。

操作系统😝

操作系统是什么?😁

操作系统是计算机系统中最基本、最核心的系统软件

从组成上看

        狭义的操作系统:特指其内核(Kernel),这是操作系统的核心部分,直接负责管理硬件和核心资源。

        广义的操作系统:除了内核外,还包括一系列必要的程序集合,例如:外壳(Shell):提供用户与内核交互的界面(命令行或图形界面);函数库(如glibc):将复杂的系统调用封装成更易用的函数;其他系统级软件。

从定位上看

        它是一款纯正的 “搞管理”的软件【软硬件管理】。在整个计算机软硬件架构中,它处于承上启下的关键位置。

操作系统的设计目的😄

    对下(管理硬件)与硬件交互,统筹管理所有的软硬件资源(如CPU、内存、硬盘、网卡等),这是它实现的手段

    对上(服务应用/用户)为用户程序(应用程序)提供一个稳定、安全、高效的执行环境,这是它追求的目的

        用户通过应用程序使用计算机硬件,而这些资源是有限的。操作系统的必要性就在于它作为公正的“管理者”,避免了应用程序对资源的无序争抢,保证了整个系统的有序和高效。

操作系统的核心功能(内核负责)😋

内核主要包含四大管理功能

    进程管理:管理正在运行的程序(进程/任务/线程),负责CPU资源的分配和调度。

    内存管理:负责内存的分配、回收、以及虚拟内存等,保证各个进程能安全地使用内存。

    文件管理:管理硬盘上的文件和目录,提供文件系统供用户和程序读写数据。

    驱动管理:管理和控制所有的硬件设备(如键盘、显示器),为上层提供统一的接口。

操作系统如何实现“管理”?😍

操作系统管理方法可以概括为:“先描述,再组织”~管理本质上是对被管理对象有效数据的管理~

先描述(Description)

        做法:使用数据结构(在C语言中主要是 struct 结构体) 来抽象一个被管理对象的所有关键信息

        例子:

           管理进程?就定义一个 struct task_struct,包含进程ID、状态、优先级、内存指针等。

            管理文件?就定义一个 struct file,包含文件大小、路径、权限等。

            管理硬件?就定义一个 struct hard_device,包含设备类型、状态、容量等。

        结论:管理的本质不是管理实体本身,而是管理描述这些实体的数据操作系统内核中充满了大量的数据结构

再组织(Organization)

        做法:将这些描述好的结构体实例,通过高效的数据结构(如链表、树、队列等) 组织起来

        例子:所有进程的 task_struct 通过指针连接成各种队列(就绪队列、等待队列);所有设备结构体被链成一个 device_list。

        目的:管理者(OS)要执行操作(如分配CPU、查找文件),就变成了对这些数据结构进行增删改查,这就是为什么学习数据结构和算法对理解OS至关重要。

通俗类比:校长【操作系统】管理学生【硬件】,不需要认识每个学生,他只需要一份包含所有学生信息(学号、成绩、班级)的花名册【有效信息】(描述),并将这些信息按班级或成绩排序(组织)。管理学校,其实就是管理这份花名册,同时还有辅导员【驱动程序】的存在进行分学院管理~

操作系统如何提供服务?—— 系统调用与库函数☺

    系统调用(System Call):操作系统会将部分内核功能以接口形式暴露给上层开发者,这些接口称为系统调用,它们功能基础但强大,是用户程序访问硬件和内核服务的唯一入口

    库函数(Library Function):系统调用使用复杂,因此开发者会对它们进行封装,形成更易用的库(如C标准库)。我们日常编程使用的 printf()、fopen() 等函数,其底层最终都会调用相应的系统调用,所以库函数和系统调用也是上下层的关系

        

总结❤

        操作系统是计算机系统的“大管家”。它位于硬件之上,应用之下,通过“先描述(用struct),再组织(用链表等数据结构)”的科学方法,将对CPU、内存、磁盘、设备等物理资源的管理,转化为对数据的管理。它通过系统调用对外提供服务,并最终为用户提供一个稳定、高效、安全的计算环境。


♥♥♥本篇博客内容结束,期待与各位优秀程序员交流,有什么问题请私信♥♥♥

♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥

✨✨✨✨✨✨个人主页✨✨✨✨✨✨


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

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

相关文章

性能测试-jmeter9-逻辑控制器、定时器压力并发

课程:B站大学 记录软件测试-性能测试学习历程、掌握前端性能测试、后端性能测试、服务端性能测试的你才是一个专业的软件测试工程师 性能测试-jmeter逻辑控制器、定时器妙用IF控制器**IF 控制器的作用**循环控制器循环控制器的作用ForEach控制器ForEach 控制器的作用…

T:线段树入门(无区间更新)

线段树.线段树介绍.线段树框架.理解线段树.图式整个过程.线段树代码逐层解析.代码汇总.leetcode练习.线段树介绍 线段树(SegmentTree)\;\;\;\;\;\;\;\;线段树(SegmentTree)线段树(SegmentTree) is 用于高效处理区间查询和单点修改的数据结构,和树状数组很像&#xf…

【ISP】Charlite工具实操

实习一周了&#xff0c;参与了客观拍摄和测试&#xff0c;复习一下nv工具 BLACK LEVEL&#xff08;黑电平&#xff09; eg&#xff1a; $ nv_ob 0 in_dir <input directory> out_name <ob file> nv_ob 0 in_dir D:\study\nvraw\ob1 out_name D:\study\nvraw\my_out…

普蓝机器人 AutoTrack-IR-DR200 外设配置全指南

为什么外设配置对机器人研究如此重要&#xff1f;在当今机器人技术飞速发展的时代&#xff0c;高校学生研究团队正成为创新的重要力量。无论是参加机器人竞赛、开展毕业设计&#xff0c;还是进行学术研究&#xff0c;正确配置和使用外设设备都是成功的关键。尤其学生组装一个服…

8、Python性能优化与代码工程化

学习目标&#xff1a;掌握Python程序性能分析和优化的通用方法&#xff0c;建立工程化开发的规范意识&#xff0c;为后续AI项目开发奠定坚实的编程基础在数据科学和AI开发中&#xff0c;代码性能往往决定了项目的可行性。一个处理时间从几小时缩短到几分钟的优化&#xff0c;可…

【算法--链表】117.填充每个节点的下一个右侧节点指针Ⅱ--通俗讲解

通俗算法讲解推荐阅读: 【算法–链表】83.删除排序链表中的重复元素–通俗讲解 【算法–链表】删除排序链表中的重复元素 II–通俗讲解 【算法–链表】86.分割链表–通俗讲解 【算法】92.翻转链表Ⅱ–通俗讲解 【算法–链表】109.有序链表转换二叉搜索树–通俗讲解 【算法–链…

分词器(Tokenizer)总结(89)

分词器(Tokenizer)总结 分词器(Tokenizer) 分词器的词表(vocabulary)长度通常短于模型嵌入层(embedding layer)的长度。 结束标记(EOS token)应仅用于标记文本结尾,不可用于其他用途。 填充标记(PAD token)通常未预先定义,但你仍可能需要用到它: 对于生成式模型…

19 webUI应用中 Controlnet精讲(05)-图像修复与编辑

前面的篇章已经详细讲解了线条约束、三维关系与空间深度、人体姿态等几类controlnet的功能与应用&#xff0c;本节内容将对通过controlnet对图像修复与编辑进行讲解。 通过controlnet也可以对图片进行编辑、重绘及放大等操作&#xff0c;具体包括Recolor、Inpaint、Tile等&…

消息推送的三种常见方式:轮询、SSE、WebSocket

摘要&#xff1a;本文介绍消息推送的三种常见方式&#xff1a;轮询&#xff08;定时请求&#xff0c;易增负担&#xff09;与长轮询&#xff08;阻塞请求至有数据 / 超时&#xff0c;减少请求&#xff09;、SSE&#xff08;HTTP 单向实时传输&#xff0c;纯文本、自动重连&…

论文阅读:ACL 2024 Stealthy Attack on Large Language Model based Recommendation

总目录 大模型相关研究&#xff1a;https://blog.csdn.net/WhiffeYF/article/details/142132328 https://arxiv.org/pdf/2402.14836 https://www.doubao.com/chat/19815566713551106 文章目录速览攻击方法速览一、攻击核心目标与前提1. 核心目标2. 攻击前提二、模型无关的简单…

自动驾驶中的传感器技术43——Radar(4)

本文对目前毫米波雷达中的天线设计进行比较全面的罗列&#xff0c;并进行简单的设计评述 1、实际设计案例 图1 涵盖能宽窄覆盖的天线设计&#xff08;无俯仰分辨率&#xff09;图2 Bosch前雷达的天线设计&#xff08;有俯仰的分辨率但比较弱&#xff0c;也涵盖了扩展覆盖&…

使用反转法线材质球,实现切换天空盒相同的功能,优点:包体变小

切换天空盒第一步先把SKY 天空球资源导入到工程里&#xff0c; 第二步&#xff1a;天空球文件下的SKY预制件拖入到场景里 第三步 选着SKY材质球&#xff0c;拖入自己的全景图片(图片分辨率不能超过5000*5000&#xff0c;否则手机无法显示) 如果并没有效果&#xff0c;看看图…

真正有效的数据指标体系应该长什么样?

真正有效的数据指标体系应该长什么样&#xff1f;为什么大多数企业的指标体系都是"花架子"&#xff1f;真正有效的指标体系应该长什么样&#xff1f;从数据到洞察&#xff1a;让指标真正"活"起来结语在这个人人都在谈数字化转型的时代&#xff0c;企业就像…

分布式专题——6 Redis缓存设计与性能优化

1 多级缓存架构2 缓存设计 2.1 缓存穿透 2.1.1 简介缓存穿透是什么&#xff1f;当查询一个根本不存在的数据时&#xff0c;缓存层和存储层都不会命中。正常逻辑下&#xff0c;存储层查不到数据就不会写入缓存层。这会导致&#xff1a;每次请求这个不存在的数据&#xff0c;都要…

一文了解大模型压缩与部署

一文了解大模型压缩与部署&#xff1a;从 INT4 量化到 MoE&#xff0c;让大模型跑在手机、边缘设备和云端&#x1f3af; 为什么需要模型压缩与部署&#xff1f;你训练了一个强大的大模型&#xff08;如 Qwen-72B、LLaMA-3-70B&#xff09;&#xff0c;但在部署时发现&#xff1…

新手向:中文语言识别的进化之路

自然语言处理&#xff08;NLP&#xff09;技术正在以前所未有的速度改变我们与机器的交互方式。根据Gartner最新报告显示&#xff0c;全球NLP市场规模预计在2025年将达到430亿美元&#xff0c;年复合增长率高达21%。而中文作为世界上使用人数最多的语言&#xff08;全球约15亿使…

LeetCode100-206反转链表

本文基于各个大佬的文章上点关注下点赞&#xff0c;明天一定更灿烂&#xff01;前言Python基础好像会了又好像没会&#xff0c;所有我直接开始刷leetcode一边抄样例代码一边学习吧。本系列文章用来记录学习中的思考&#xff0c;写给自己看的&#xff0c;也欢迎大家在评论区指导…

uniapp开源多商户小程序商城平台源码 支持二次开发+永久免费升级

在电商行业竞争日益激烈的今天&#xff0c;拥有一个功能强大、灵活可拓展的多商户小程序商城至关重要。今天给大家分享一款 uniapp 开源多商户小程序商城平台源码&#xff0c;它不仅具备丰富的基础功能&#xff0c;还支持二次开发&#xff0c;更能享受永久免费升级服务&#xf…

使用脚本一键更新NTP服务器地址为自定义地址

【使用场景】 在银河麒麟桌面操作系统V10SP1-2303版本中使用脚本一键修改NTP服务器地址为自定义地址。 【操作步骤】 步骤1. 编写shell脚本 ```bash desktop2303@desktop2303-pc:~$ vim setntptimeserver.sh #!/bin/bashfunction modifykylinconf() { # 检查是否已存在目标配置…

linux内核 - 内核架构概览

当 Linux 系统启动时,内核会在启动过程的早期阶段接管控制——紧跟在固件(BIOS 或 UEFI)和引导加载程序完成任务之后。此时,压缩的 Linux 内核镜像会被加载到内存中,通常会附带一个称为 initramfs 的最小临时根文件系统,它用于在切换到真实根文件系统并继续系统初始化之前…