当前位置: 首页 > news >正文

【Linux系统】冯诺依曼与操作系统

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

如图即为冯诺依曼大致的体系结构图,  我们知道这些都是由我们的计算机硬件组成

输入设备:键盘, 鼠标, 摄像头, 话筒, 磁盘, 网卡...

输出设备:显示器, 声卡, 磁盘, 网卡...

CPU:运算器和控制器

存储器:内存

在上图冯诺依曼体系结构图中我们可以看到红色箭头都代表的是数据的流动,那我们就要研究数据在我们的计算机的冯诺依曼体系结构中是怎么流动的呢?

这里给出结论:数据流动从一个设备到另一个设备,本质是一种拷贝!!!

而CPU处理数据是非常快的,那我们又可以得出一个结论:设备间的拷贝效率决定了计算机整机的效率。

 在我们的冯诺依曼结构中我们的输入输出设备是不能直接与CPU打交道的, 原因在于CPU的速度实在是太快了, 而输入输出设备又相对比较慢,这样与CPU打交道,就像木桶效应版,会拖慢整机速度。

所以我们的祖师爷冯诺依曼就想出了这么个解决办法,这就引出了内存, 让内存与CPU直接打交道,这样输入输出设备都无需与CPU交互,直接面向内存就可完成任务。

如何理解冯诺依曼的体系结构带来的意义?

 

 上图为存储金字塔。

存储:距离CPU越近,效率越高, 容量越小, 成本越高。

故冯诺依曼体系的结构不就是能够使现在的我们,家家户户都可买得起电脑。这不是大大的使计算机得到了大范围的普及,所以冯诺依曼体系结构对于我们的社会现实意义确实是重大的!

也就是说, 没有祖师爷冯诺依曼就没有现在的我们!!!

 在硬件数据流动角度, 在数据层面:

  1. CPU不和外设直接打交道,只和内存打交道
  2. 外设(输入和输出)不是直接把数据给CPU的,而是先要放入内存中

 能干什么?

1.程序运行为什么要加载到内存?

程序 = 代码 + 数据 程序“数据”都需要被CPU访问      -》CPU只会在内存中读取代码和数据

程序没有被加载到内存时, 是什么?答案是:磁盘中的二进制文件,即在外设中。

-》CPU只会在内存中读取代码和数据

这些都是冯诺依曼体系结构决定的!!!

 一种场景

 假设我通过qq这款应用程序要给小明发个消息为“你好”,数据是怎么传输的呢?

我们按照冯诺依曼体系结构来说, 即我们将通过输入设备即键盘输入数据,然后再写入内存,内存交给CPU进行加密操作, CPU还给内存, 内存再把加密后的数据交给输出设备即网卡,原因我们是在网络中传输数据, 所以需要网卡, 然后中间是一系列网络传输,由于尚未学习,略去, 经过网络传输的数据就来到接收方小明的输入设备即网卡, 然后写入到内存中, 内存交给CPU进行解密, 解密完成, 返还给内存, 内存把 数据再交给输出设备即显示器,显示到屏幕上, 这样一个在冯诺依曼体系结构下的数据传输的过程就完成了!!!

 操作系统

1.概念

操作系统本质是一款软件。

进行软硬件 资源 管理的软件

广义的理解:操作系统的内核 + 操作系统的外壳周边程序(给用户提供使用操作系统的方式)

狭义:操作系统的内核

2.结构示意图(不完整)

 如上图为体系结构的层状划分结构

操作系统的内核实质上就是操作系统,进行着各种资源的管理。

 为什么要有操作系统?

对软硬件资源进行管理(手段)。

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

3.尝试理解操作系统

 理解操作系统之前我们先要理解

什么是“管理”?

我们生活中的所有事情都要经过两步:1.决策 2.执行

那么举个栗子:我们学校的校长要管理这个学校的学生,他要怎么做?

我们是不是到了大学,我们可能就开学,毕业见过两次,但平常是完全没有接触的。

校长要想管理一个学校这么多人,不可能一个一个去接触吧,人这么多,怎么管理的过来呢?

假如校长是个程序员!!!

可以写个结构体将我们的各项属性写入结构体中去。

但校长是如何进行管理,然后进行资源分配呢?

所以说,校长管理我们不需要与我们直接接触!!!

即管理者与被管理者无需直接接触!!!

校长管理我们实际上是拿取我们的各项数据进行管理的。

而我们的数据哪里来的呢?

这些数据是由辅导员来与我们进行统计打包发给校长,校长再进行数据的管理。

这样校长对于学生的管理就变为对链表的增删查改!!!

这里我们就可以认为校长是操作系统, 辅导员即是驱动程序, 学生与学校的各种设施就是各种软硬件资源。

这样就进行了我们的一个完整的管理流程。

结论就是  管理:先描述,在组织

描述就是封装为一个一个对象,即用一个类或者对象进行封装,而组织就是在操作系统中用我们的各种数据结构进行组织。

完整结构示意图

 如上图为一个完整的结构示意图

我们知道操作系统是一个对下进行软硬件资源管理(手段),对上提供一个良好(稳定的,高效的,安全的)的运行环境(目的)。

但我们用户需要使用操作系统来管理软硬件,我们能直接接触操作系统吗?

答案是,不能,操作系统不允许你这样做,我们应该都去过银行取钱吧,我们去银行取钱,我们能自行到仓库去取钱吗?不能吧,那不是全乱套了,想取多少就取多少!!!

所以就有前台服务,只开一个小窗口与内部交互。

这在操作系统就叫做系统调用接口,操作系统为我们提供了一系列系统调用接口,

我们可以拿来用,但又有个问题发生了!!!

操作系统是由不同厂商进行生产的,系统调用接口就会有一些不同,那怎么办,这样就出现了跨平台问题,这就为上层又出现了一个外壳,各种库,即一些c/c++标准库的内容,这些库能够很好的解决跨平台问题!!!

所以我们在下载编译器实际是下载的什么? 对应的标准库和编译器

如我们之前学习的c语言就有printf/scanf都与硬件进行了交互,这些都是标准库提供的函数接口用到调用系统调用接口,因为不同厂商他们提供的操作系统的接口不同!!!

所以总的来说:还是下面两句话!!!

对软硬件资源进行管理(手段)。

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

相关文章:

【Linux系统】冯诺依曼与操作系统

什么是冯诺依曼体系结构? 如图即为冯诺依曼大致的体系结构图, 我们知道这些都是由我们的计算机硬件组成 输入设备:键盘, 鼠标, 摄像头, 话筒, 磁盘, 网卡... 输出设备&#xff1a…...

前端理论总结(html5)——form表单的新增特性/h5的新特性

form表单的新增特性 range:范围 color:取色器 url:对url进行验证 tel:对手机号格式验证 email:对邮箱格式验证 novalidate :提交表单时不验证 form 或 input 域 numbe…...

基于TensorFlow的花卉识别(算能杯)%%%

Anaconda Prompt 激活 TensorFlow CPU版本 conda activate tensorflow_cpu //配合PyCharm环境 直接使用TensorFlow1.数据分析 此次设计的主题为花卉识别,数据为TensorFlow的官方数据集flower_photos,包括5种花卉(雏菊、蒲公英、玫瑰、向日葵…...

Android实现一周时间早中晚排班表

我们要做一个可以动态添加,修改一周早中晚时间排班表,需求图如下: one two 过程具体在这里不描述了,具体查看,https://github.com/yangxiansheng123/WorkingSchedule 上传数据格式: {"friday_plan":"…...

【Java八股面试系列】中间件-Redis

目录 Redis 什么是Redis Redis解决了什么问题 Redis的实现原理 数据结构 String 常用命令 应用场景 List(列表) 常用命令 应用场景 Hash(哈希) 常用命令 应用场景 set(集合) 常见命令​编辑 应用场景 Sorted Set(有序集合) 常见命令​编辑 应用场景 数据持…...

目前国内体验最佳的AI问答助手:kimi.ai

文章目录 简介图片理解长文档解析 简介 kimi.ai是国内初创AI公司月之暗面推出的一款AI助手,终于不再是四字成语拼凑出来的了。这是一个非常存粹的文本分析和对话工具,没有那些东拼西凑花里胡哨的AIGC功能,实测表明,这种聚焦是对的…...

Visual Studio项目编译和运行依赖第三方库的项目

1.创建项目,这里创建的项目是依赖于.sln的项目,非CMake项目 2.添加第三方库依赖的头文件和库文件路劲 3.添加第三方依赖库文件 4.项目配置有2个,一个是Debug,一个是Release,如果你只配置了Debug,编译和运行…...

Rust 语言中 Vec 的元素的删除方法

在 Rust 中,Vec(向量)提供了多种删除元素的方法。以下是一些常用的删除方法: remove: 这是最常用的删除方法,它接受一个索引作为参数,并移除该索引处的元素,同时返回被移除的元素。所有后面的元…...

谈谈我对 AIGC 趋势下软件工程重塑的理解

作者:陈鑫 今天给大家带来的话题是 AIGC 趋势下的软件工程重塑。今天这个话题主要分为以下四大部分。 第一部分是 AI 是否已经成为软件研发的必选项;第二部分是 AI 对于软件研发的挑战及智能化机会,第三部分是企业落地软件研发智能化的策略…...

我在京东做数据分析,一位京东数据分析师的工作日常

有人说:“种下一棵树最好的时间是十年前,其次是现在”。任何时候,我们都应该抓住机遇,说不定就是改变你现状的一个机会。 2020年,我在疫情得到控制后,面试入职京东大数据组,截止目前&#xff0…...

数字乡村战略实施:科技引领农村经济社会全面发展

随着信息技术的快速发展,数字化已经成为推动经济社会发展的重要力量。在乡村振兴战略的大背景下,数字乡村战略的实施成为了引领农村经济社会全面发展的关键。本文将从数字乡村战略的内涵、实施现状、面临挑战及未来展望等方面,探讨科技如何引…...

人工智能 框架 paddlepaddle 飞桨 使用指南 使用例子 线性回归模型demo 1

安装过程&使用指南&线性回归模型 使用例子 本来预想 是安装 到 conda 版本的 11.7的 但是电脑没有gpu 所以 安装过程稍有变动,下面简单讲下 conda create -n paddle_env117 python=3.9 由于想安装11.7版本 py 是3.9 所以虚拟环境名称也是 paddle_env117 activa…...

在线学习电路网站推荐:www.falstad.com

https://www.falstad.com/circuit/ 我感觉也适合学生学习物理电路,图形界面方便理解些,不需要注册,打开即用。...

基于SpringBoot+Vue实现前后端交互功能(详解Vue框架机制)

目录 一、前言 Vue框架知多少? Vue框架的一些关键特点: Vue组件的声明周期 二、基于Spring Boot 和 Vue 实现前后端交互功能的技术组合 后端部分(Spring Boot): 前端部分(Vue): 前后…...

go的Job Scheduling

背景 司内线上服务有很多异步脚本,大量冗余代码,管理很不方便 急需一个美丽的框架,让代码变得美好 包 go get github.com/go-co-op/gocron/v2 介绍 gocron is a job scheduling package which lets you run Go functions at pre-determined intervals. 概念 Job Job封…...

[蓝桥杯 2020 省 AB1] 解码

题目描述 小明有一串很长的英文字母,可能包含大写和小写。 在这串字母中,有很多连续的是重复的。小明想了一个办法将这串字母表达得更短:将连续的几个相同字母写成字母 出现次数的形式。 例如,连续的 55 个 a,即 aa…...

开发npm上传发布

第一步:注册npm账号 首先去官网注册一个npm账号,npm官网 第二步:创建项目 新建文件夹,并执行npm init 填写对应的信息name就是插件名称。 文件夹下就会生成一个package.json文件。 你可以在项目编辑你的插件。 第三步&…...

c语音函数大全(U开头)

c语音函数大全(U开头) There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about being cheated should leave quickly. 函数名…...

飞天使-k8s知识点26-kubernetes温故知新1-pod

文章目录 创建一个podpod的启动命令和参数更改pod 镜像拉取策略 pod 的三种探针pod 探针的实现方式prestop 和 prestart 创建一个pod apiVersion: v1 # 必选,API 的版本号 kind: Pod # 必选,类型 Pod metadata: # 必选,元数据name: nginx # …...

js获取cookie

js获取cookie 前言实现讲解特别注意: 前言 主要是通过document.cookie来进行实现的 实现讲解 首先通过document.cookie 来获取到所有的cookie 然后通过分号进行分割成list 然后循环list,将list中的字符串通过首个等号进行分割然后和指定的cookie名进行比对然后返…...

UE5 StateTree数据通信详解:告别黑板,在Task与Evaluator间高效传递参数

UE5 StateTree数据通信详解:告别黑板,在Task与Evaluator间高效传递参数当你在UE5中构建一个拥有复杂行为的AI角色时,数据如何在各个行为模块间高效传递是一个无法回避的核心问题。传统的"黑板"系统虽然广为人知,但在Sta…...

Unity Addressable本地HTTP托管实战:5分钟跑通远程加载

1. 为什么Addressable本地托管总卡在“5分钟”这个幻觉里?Unity Addressable Asset System(可寻址资源系统)上线这么多年,我见过太多团队在“本地HTTP服务器”这一步摔得最狠——不是不会写代码,而是根本没搞清Address…...

ros2_control 代码架构分析

ros2_control 代码架构分析 一、整体框架 1.1 代码框架 ├── ros2_control/ # ★ 框架本体(vendored,jazzy 分支) │ ├── controller_manager/ # 核心运行时:ros2_control_node │ ├── hardware_interface/ # 硬件抽象 +…...

OpenClaw强势推出V2026.5.20版本地部署最新教程来啦!3分钟一键安装中文版可视化操作指南

凌晨两点,我刚把 OpenClaw 跑通。看着屏幕上终于亮起来的 WebChat 界面,心里那叫一个舒坦。说实话,之前装了几次都没成功,不是端口冲突就是 API Key 配置不对,折腾了大半天。后来静下心来把文档从头到尾看了一遍&#…...

eClinMed 中国人民解放军总医院第五医学中心介入超声科:基于超声的可解释性机器学习模型用于≤3cm肝细胞癌分类的开发与验证

01文献信息本次分享的文献是由中国人民解放军总医院第五医学中心介入超声科联合厦门大学附属翔安医院、南开大学医学院和福州市第一总医院超声科等55家医院在2025年2月在柳叶刀子刊《eClinicalMedicine》(中科院1区,IF10.0)上的研究“Develop…...

DeepSeek总结的clickhousectl v0.2.0: Postgres, ClickPipes 等更多功能

来源:https://clickhouse.com/blog/clickhousectl-v0-2-0-postgres-clickpipes-more clickhousectl v0.2.0: Postgres, ClickPipes 等更多功能 作者: Al Brown 日期: 2026年5月20日 阅读时间: 7分钟 我们发布了 clickhousectl v0.2.0。此版本增加了对 Postgres&…...

MySQL JSON 类型操作:从入门到不踩坑

开场白 MySQL 5.7 加了 JSON 类型之后,很多人觉得终于可以在关系型数据库里存 JSON 了,不用再拆表了。但说实话,我一开始用 JSON 类型的时候也没少踩坑——查询语法记不住、索引不会建、JSON 路径表达式写错……后来用多了才发现&#xff0c…...

今天不用就过期:Gemini深度研究模式2024Q3权限变更预警——3类高价值功能即将对免费用户关闭

更多请点击: https://intelliparadigm.com 第一章:Gemini深度研究模式的核心价值与权限变更全景 Gemini深度研究模式(Deep Research Mode)是Google面向专业研究者与开发者推出的增强型推理能力范式,其核心价值在于将多…...

踩坑无数!终于捋顺Git基础核心工作流(新手必看)

我刚学Git那会,一直有个超级大的疑惑憋在心里:为什么保存代码非要分 git add 和 git commit 两步? 当时网上教程清一色直接甩命令,我照着敲了无数次,只会机械复制粘贴,完全不懂底层逻辑。自己本地瞎写代码还…...

忘记压缩包密码不用慌:3步自动化找回加密文件的终极方案

忘记压缩包密码不用慌:3步自动化找回加密文件的终极方案 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 你是否曾经面对一个加密…...