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

冯诺依曼体系结构与操作系统(Linux)

文章目录

  • 前言
  • 冯诺依曼体系结构(硬件)
  • 操作系统(软件)
  • 总结


前言

冯诺依曼体系结构(硬件)

在这里插入图片描述
上图就是冯诺依曼体系结构图,主要包括输入设备,输出设备,存储器,运算器,控制器。
每一个模块都是独立的。

我们分别详细介绍一下这几个模块
CPU:运算器和控制器组成。
存储器:本质就是内存。
输入设备:主要用于输入,包括键盘,鼠标等等
输出设备:主要用于输出,包括显示器,话筒,声卡等等。
对于这些硬件设备来说,有的只做输入,有得只做输出,有得二者兼顾。

这几个模块是通过一个叫做总线的东西连接起来的
在这里插入图片描述
我们连接起来有什么用呢??
主要是为了数据的流动,也就是数据之间的来回拷贝。
数据之间拷贝的效率就成为计算机效率的一大指标

内存

我们详细看一下内存。
如果我们没有内存是否可以呢??
输入输出设备直接与CPU进行联系,在早期的时候就是这么做的。
我们都知道CPU运行是非常快的,但是输入输出输出设备是比较慢的,根据木桶效用。
这相关的速度就是按照输入输出的速度来的。

我们介绍一下CPU的缓存。
在这里插入图片描述

距离CPU越近,单体容量越小,造价越高,效率越高。
距离CPU越远,单体容量越大,造价越低,效率越低。

如果我们把电脑上配件都设计成寄存器的,那不就非常快了!!!
但是,这样造价确实十分贵的。

如果我们在二者之间加入一个内存呢??
输入输出设备与内存相连,内存与CPU相连。
内存的速度介于二者之间,使二者尽量达到一种平衡。
最终的效率就以内存的效率为主了。
一切设备都只和内存打交道

内存可以把输入的一些资源加载到内存,进行预先加载。CPU如果要用,就直接从内存读取就可以。
CPU将读取的数据放在内存中,进行缓存,最后交给输出设备。
内存可以看作一个非常大的缓存,介于设备和CPU之间

操作系统(软件)

我们在打开电脑的时候,首先需要进行加载一段时间,这个加载的软件就叫做操作系统。
操作系统是一款进行软硬件资源管理的软件。

我们首先理解一下管理
管理的人叫做决策者,被管理的人叫做执行者,

我们通过这张图片来理解一下相关概念。
在这里插入图片描述

我们首先看一下操作系统以及一下部分。
底层硬件就是我们上面介绍的冯诺依曼体系。

每一款硬件都包括对应的驱动程序,驱动程序是控制底层硬件的,我们通过驱动程序就可以知道这个硬件是读的还是写的,还有相关状态信息等等。驱动程序都是需要被安装到计算机上的,比如我们的鼠标,需要先插入到电脑上,等待几秒钟才可以被使用。
电脑上很多驱动程序都已经进行内置了,比如显示器,键盘等等。

相关系统会将驱动程序和底层硬件进行打包,交给操作系统,方便操作系统对硬件进行管理。

我们可以通过一个例子进一步理解一下这三层。
操作系统就是做决策的,学生就是进行执行的人。
我们在学校上学,我们几乎没有见过校长,但是校长却把我的大学生活安排的明明白白的。
校长并不是对你这个人进行管理,而是对相关的数据做管理,比如你是几年级的,学号是什么,上那些课程等等。
在相关计算机上也是同样的,操作系统和底层硬件不需要见面,操作系统只需要知道相关硬件的相关数据就可以对硬件进行管理。

驱动程序就相当于辅导员,辅导员的任务就是保证校长的任务顺利的执行。
但是学校有很多学生,就相当于计算机有很多硬件,校长如何快速,高效的管理好这些学生呢???
每个学生都有基本的属性信息,建立一个结构体,把相关的数据填充上,用链表进行连接,我们之后就方便对这些学生进行管理了。在新增一些关于链表增删查改的操作,我们对学生的管理就变成了对链表的增删查改。
对于相关的硬件,也要有一个结构体,里面存放着这个硬件的信息等等,还包括一个指向下一个硬件的指针,方便操作系统就行管理。

我们把上面的过程称为先描述,在组织

我们这种原理放到语言层面也是适用的,比如c++.
c++是面向对象的语言,每一个对象我们就要先进行描述它,再通过相关的STL容器进行管理。

先描述:struct结构体
在组织:相关的数据结构

我们再来看一下操作系统及以上

我们为什么要有操作系统呢??
操作系统要对软硬件资源做管理,这样就是为了向上提供良好的运行环境。
这个良好如何理解呢??高效,安全,稳定。

我们先看一下系统调用接口,我们为什么会存在这个呢??用户为什么不能对操作系统的数据直接进行访问呢??
我们出于安全的角度,不能让用户直接对操作系统数据进行访问,这很不安全。这就像在银行取钱,要取多少钱直接去金库拿就行,谁知道这个人会不会多拿呢!!!这个系统调用接口就相当于银行的柜台,要取钱,通过银行柜台,再通过相关人员进行取钱。
系统调用接口是操作系统提供的,如何设计也是有操作系统进行设置的。这个本质就是相关的函数。

用户操作接口
系统调用接口是不方便普通人进行使用的,所以为了方便用户。把系统调用接口进行再一次封装,方便使用,这也就是相关的库。这就相当于老年人去银行办业务,用户操作接口就相当于大堂经理,专门为这些人服务。我们可以认为每个人都是这个老年人,都不太熟悉流程。

我们也不能用户直接绕过操作系统去访问硬件资源,这样操作系统的管理工作就会很难受。

我们使用这个用户操作接口也可以屏蔽库函数底层差异。
只要涉及相关硬件的使用,必须经过系统调用,比如scanf,printf。
我们使用printf在linux和wins等等各种平台下都可以正常使用,这是因为在库层面就屏蔽了底层差异,这也就是我们常说的语言的跨平台性,可移植性。

在这里插入图片描述

总结

以上就是今天要讲的内容,本文仅仅详细介绍了冯诺依曼体系结构以及操作系统相关的知识。希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~ 😘 😘 😘

相关文章:

冯诺依曼体系结构与操作系统(Linux)

文章目录 前言冯诺依曼体系结构(硬件)操作系统(软件)总结 前言 冯诺依曼体系结构(硬件) 上图就是冯诺依曼体系结构图,主要包括输入设备,输出设备,存储器,运算…...

开源六轴协作机械臂myCobot280实现交互式乘法!让学习充满乐趣

本文经作者Fumitaka Kimizuka 授权我们翻译和转载。 原文链接:myCobotに「頷き」「首振り」「首傾げ」をしてもらう 🤖 - みかづきブログ・カスタム 引言 Fumitaka Kimizuka 创造了一个乘法表系统,帮助他的女儿享受学习乘法表的乐趣。她可以…...

[C++][CMake][嵌套的CMake]详细讲解

目录 0.前言 & 准备1.节点关系2.添加子目录3.解决问题1.根目录2.calc目录3.sort目录4.calc_test目录5.sort_test 4.注意 0.前言 & 准备 如果项目很大,或者项目中有很多的源码目录,在通过CMake管理项目的时候如果只使用一个CMakeLists.txt&#…...

尚品汇-(十三)

&#xff08;1&#xff09;查询sku列表 在ManageService 中添加 /*** SKU分页列表* param pageParam* return*/ IPage<SkuInfo> getPage(Page<SkuInfo> pageParam);接口实现类 Override public IPage<SkuInfo> getPage(Page<SkuInfo> pageParam) {Qu…...

python小练习04

三国演义词频统计与词云图绘制 import jieba import wordcloud def analysis():txt open("三国演义.txt",r,encodingutf-8).read()words jieba.lcut(txt)#精确模式counts {}for word in words:if len(word) 1:continueelif word "诸葛亮" or word &q…...

小试牛刀-Solana合约账户详解

目录 一.Solana 三.账户详解 3.1 程序账户 3.2 系统所有账户 3.3 程序派生账户(PDA) 3.4 Token账户 四、相关学习文档 五、在线编辑器 Welcome to Code Blocks blog 本篇文章主要介绍了 [Solana合约账户详解] ❤博主广交技术好友&#xff0c;喜欢文章的可以关注一下❤ …...

Spring Boot+Vue项目从零入手

Spring BootVue项目从零入手 一、前期准备 在搭建spring bootvue项目前&#xff0c;我们首先要准备好开发环境&#xff0c;所需相关环境和软件如下&#xff1a; 1、node.js 检测安装成功的方法&#xff1a;node -v 2、vue 检测安装成功的方法&#xff1a;vue -V 3、Visu…...

Vue+Xterm.js+WebSocket+JSch实现Web Shell终端

一、需求 在系统中使用Web Shell连接集群的登录节点 二、实现 前端使用Vue&#xff0c;WebSocket实现前后端通信&#xff0c;后端使用JSch ssh通讯包。 1. 前端核心代码 <template><div class"shell-container"><div id"shell"/>&l…...

用 adb 来模拟手机插上电源和拔掉电源的情形

实用的 ADB 命令 要模拟手机从 USB 充电器上拔掉的情形&#xff0c;你可以使用&#xff1a; adb shell dumpsys battery set usb 0或者&#xff0c;如果你使用的是 Android 6.0 或更高版本的设备&#xff0c;你可以使用&#xff1a; adb shell dumpsys battery unplug要重新…...

【SPIE独立出版】第四届智能交通系统与智慧城市国际学术会议(ITSSC 2024)

第四届智能交通系统与智慧城市国际学术会议&#xff08;ITSSC 2024&#xff09;将于2024年8月23-25日在中国西安举行。本次会议主要围绕智能交通、交通新能源、无人驾驶、智慧城市、智能家居、智能生活等研究领域展开讨论&#xff0c; 旨在为该研究领域的专家学者们提供一个分享…...

【Unity数据交互】如何Unity中读取Ecxel中的数据

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 专栏交流&#x1f9e7;&…...

基于深度学习LightWeight的人体姿态检测跌倒系统源码

一. LightWeight概述 light weight openpose是openpose的简化版本&#xff0c;使用了openpose的大体流程。 Light weight openpose和openpose的区别是&#xff1a; a 前者使用的是Mobilenet V1&#xff08;到conv5_5&#xff09;&#xff0c;后者使用的是Vgg19&#xff08;前10…...

SpringBoot 生产实践:没有父 starter 的打包问题

文章目录 前言一、搜索引擎二、Chat GPT三、官方文档四、小结推荐阅读 前言 今天刚准备写点文章&#xff0c;需要 SpringBoot 项目来演示效果。一时心血来潮&#xff0c;没有采用传统的方式&#xff08;即通过引入 spring-boot-starter-parent 父工程的方式&#xff09;。 &l…...

IDEA配Git

目录 前言 1.创建Git仓库&#xff0c;获得可提交渠道 2.选择本地提交的项目名 3.配置远程仓库的地址 4.新增远程仓库地址 5.开始进行commit操作 6.push由于邮箱问题被拒绝的解决方法&#xff1a; 后记 前言 以下操作都是基于你已经下载了Git的前提下进行的&#xff0c…...

51单片机STC89C52RC——14.1 直流电机调速

目录 目的/效果 1&#xff1a;电机转速同步LED呼吸灯 2 通过独立按键 控制直流电机转速。 一&#xff0c;STC单片机模块 二&#xff0c;直流电机 2.1 简介 2.2 驱动电路 2.2.1 大功率器件直接驱动 2.2.2 H桥驱动 正转 反转 2.2.3 ULN2003D 引脚、电路 2.3 PWM&…...

AI对于高考和IT行业的深远影响

目录 AI对IT行业的冲击及深远影响1. 工作自动化2. 新的就业机会3. 行业融合4. 技术升级和创新5. 数据的重要性 IT行业的冬天要持续多久&#xff1f;大学的软件开发类专业是否还值得报考&#xff1f;其他问题IT行业是否都是加班严重&#xff1f;35岁后就业困难是否普遍现象&…...

C语言下的文件详解

主要内容 文件概述文件指针文件的打开与关闭文件的读写 文件 把输入和输出的数据以文件的形式保存在计算机的外存储器上&#xff0c;可以确保数据能随时使用&#xff0c;避免反复输入和读取数据 文件概述 文件是指一组相关数据的有序集合 文件是存储数据的基本单位&#…...

Oracle PL / SQL块结构

在PL / SQL中&#xff0c;最小的有意义的代码分组被称为块。 块代码为变量声明和异常处理提供执行和作用域边界。 PL / SQL允许您创建匿名块和命名块。 命名块可以是包&#xff0c;过程&#xff0c;函数&#xff0c;触发器或对象类型。 PL / SQL是SQL的过程语言扩展&#x…...

MySQL的安装和启动

安装 版本 1&#xff0c;社区版&#xff1a;免费&#xff0c;不提供任何技术支持 2&#xff0c;商业版&#xff1a;可以试用30天&#xff0c;官方提供技术支持下载 1&#xff0c;下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/ 2&#xff0c;安装&#xff1a;傻…...

Prometheus概述

1.什么是prometheus Prometheus 是一个开源的服务监控系统和时序数据库&#xff0c;其提供了通用的数据模型和快捷数据采集、存储和查询接口。它的核心组件Prometheus server会定期从静态配置的监控目标或者基于服务发现自动配置的自标中进行拉取数据&#xff0c;当新拉取到的…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...