计算机体系结构图,冯诺依曼模型(控制器,运算器,指令集,存储器,cache),os(为什么要有os+如何管理举例,系统调用,用户操作接口)

news2024/11/26 14:35:08

目录

引入

硬件 -- 冯诺依曼模型

背景

早期 -- 硬件化

冯诺依曼结构

存储程序控制原理

核心思想

结构

cpu -- (运算器和控制器)

介绍

控制器

运算器

指令集

存储器

介绍

内部存储器

读写操作

高速缓冲存储器Cache

内存分类

RAM

ROM

外部存储器

软件 -- 操作系统

os是什么

为什么要有os

如何管理

先描述,再组织

举例

总结

调用接口

引入

系统调用

用户操作接口

引入

介绍 

lib(库)

总结 -- 计算机体系结构图


引入

计算机由硬件和软件构成

  • 硬件是计算机的物理组件,负责执行实际的计算和数据处理任务
  • 软件是计算机程序和数据的集合,它是在硬件上运行的指令的集合,负责管理硬件
  • 软件指定硬件应该执行的操作,硬件执行这些操作并返回结果

硬件 -- 冯诺依曼模型

背景

早期 -- 硬件化

  • 早期,计算机是由各种 门电路 组成的,这些门电路通过组装出一个固定的电路板,来执行一个特定的程序
  • 一旦需要修改程序功能,就要重新组装电路板
  • 它的数据存放在存储器中,而程序作为控制器的一部分
  • 这样的计算机计算效率低,灵活性较差,只能依靠 硬件 控制程序

冯诺依曼结构

  • 冯·诺依曼提出了一种计算机体系结构,被称为冯·诺依曼体系结构,也称为存储程序计算机
  • 这种体系结构将计算机的指令和数据存储在同一存储器中(也就是将指令编码为数据,这样就将程序由硬件实现转变为软件实现),然后允许计算机按顺序执行一系列指令
  • 这样计算机就不需要依赖硬件来完成对程序的控制,实现了可编程的计算机功能,实现了硬件设计和程序设计的分离,成为了现代计算机体系结构的基础
  • 由此,计算机的基本工作原理就是:存储程序控制原理

存储程序控制原理

  • 将计算机程序存储在内存中,并将其视为数据的一种形式,使计算机能够按照程序的顺序执行指令
  • 使用存储程序控制原理,计算机可以根据不同的程序需求执行不同的任务,而无需物理上改变计算机硬件
  • 通过改变存储器中的指令,可以轻松修改程序的行为,从而适应不同的应用需求,
  • 还使得编写和调试程序更加方便,因为程序可以作为数据进行处理和修改

核心思想

  • 程序、数据的最终形态都是二进制编码,程序和数据都是以二进制方式存储在存储器中的,二进制编码也是计算机能够所识别和执行的编码(可执行二进制文件:.bin文件)
  • 程序、数据和指令序列,都是事先存在主(内)存储器中,以便于计算机在工作时能够高速地从存储器中提取指令并加以分析和执行
  • 确定了计算机的五个基本组成部分:运算器、控制器、存储器、输入设备、输出设备

结构

cpu -- (运算器和控制器)

介绍

cpu由控制器和运算器组成

cpu通常从内存中拿到代码和数据,所以程序运行时,程序必须得加载到内存中

控制器

控制器的工作流程为:

  • 从内存中取指令、翻译指令、分析指令
  • 然后根据 指令的内存 向 有关部件发送控制命令,控制相关部件 执行 指令所包含的操作
运算器
  • 计算机运算时,运算器的 操作对象 , 操作种类 , 对内存数据的读写操作 控制器决定
  • 运算器操作的数据从内存中读取,处理的结果再写入内存(或者暂时存放在内部寄存器中)
指令集

cpu只能被动的接收别人的指令,拿到数据后,执行指令

而cpu接收指令的前提是 -- 得认识拿到的指令 ,所以cpu有自己的指令集

  • 分为精简指令集和复杂指令集,这两种体系结构在指令设计和执行方式上有显著的差异
  • 这些指令集可以用来执行各种操作
  • 基于不同的对计算机的需求,和不同的硬件平台,就有了多种多样的指令集体系结构

存储器

介绍

分为内部存储器和外部存储器

在计算机内部,程序和数据都是以二进制代码的形式存储的,它们均以字节为单位(8位)存储在存储器中,一个字节占用一个存储单元,并且每个存储单元都有唯一的地址号

内部存储器

也被称为称为内存或者主存,用来存放将要执行的程序和数据

读写操作

CPU可以直接使用指令对内部存储器按照地址进行读写操作

  • 读:将内存中某个存储单元的内容读出,送入CPU的某个寄存器中
  • 写:在控制器的控制下,将CPU中某寄存器内容传到某个存储单元中

内存的存取速度会直接影响计算机的运算速度

  • 由于CPU是高速器件,但是CPU的速度是 受制于内存的存取速度 的
  • 所以为了解决CPU和内存速度不匹配的问题,在CPU和内存之间直接设置了一种高速缓冲存储器Cache
高速缓冲存储器Cache
  • Cache是计算机中的一个高速小容量存储器
  • 里面存放的是CPU近期要执行的指令和数据,其存取速度可以和CPU的速度匹配
  • Cache的目标是减少CPU访问主内存的次数

  • 当CPU需要读取数据时,首先检查缓存中是否已经包含了所需数据
  • 如果数据在缓存中找到(命中),CPU可以快速获取数据,从而提高访问速度
  • 如果数据不在缓存中(未命中),CPU必须从主内存中获取数据,并将其加载到缓存中,以备将来的使用

  • 通常包括多个级别的缓存,如L1、L2和L3缓存
  • L1缓存最接近CPU,最小而最快,但容量有限
  • L2和L3缓存通常更大一些,但速度较慢
  • 这些级别的缓存依次处理缓存命中和未命中,以平衡性能和成本

  • 一般采用静态RAM充当Cache
内存分类

内存按工作方式的不同又可以分为RAM和ROM:

RAM
  • 随机存储器,可以被CPU随机读取
  • 一般存放CPU将要执行的程序、数据
  • 断电丢失数据
ROM
  • 只读存储器,只能被CPU读,不能轻易被CPU写
  • 用来存放永久性的程序和数据
  • 比如:系统引导程序、监控程序等
  • 具有掉电非易失性
外部存储器

主要来存放”暂时“用不着的程序和数据,可以和内存交换数据

一般是磁盘、光盘、U盘、硬盘等

cpu在访问数据时,一般只会和内存打交道,就是因为内存较外存速度快,这样可以提高整机效率

来源--三分钟带你了解冯.诺依曼结构 - 知乎 (zhihu.com) 

软件 -- 操作系统

os是什么

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

是计算机能够正常运行最基本的系统软件,任何软件都需要OS来支持

为什么要有os

  • 首先,从它是什么就可以知道,它可以管理软硬件资源,毕竟如果不管理它,又该如何使用计算机呢?
  • 那么对软硬件资源进行管理是为了什么呢?
  • os最终目的还是 : 为了用户能更好的使用计算机
  • 所以要进行管理,为用户提供更好的(高效的,安全的,稳定的)执行环境

os就是这样一个承上启下的环节

如何管理

先描述,再组织

这句话非常重要,是管理的本质

对任何东西进行管理,都是按照这句话进行!!!

举例

比如说,我们有一串数字,该如何使用他们呢

  • 在计算机中,这些数字被存放在内存中,然后我们通过内存中的地址访问
  • 但我们直接使用地址访问实在太麻烦了,而且并不实际
  • 取到这些数字的地址,不考虑任何数据结构的情况下,那得需要将他们每一个都放在变量中
  • 这样进行管理实在效率太低

  • 我们停下来想一想,一串数字,他们本身并无实际意义,只是一个一个的数字
  • 并且,在逻辑上他们是连续的("一串数字"奥),我们可以连续取到他们
  • 所以可以把他们按照存入的顺序进行编号,通过编号访问他们
  • 并且,他们如果在物理上也连续的话,就可以通过第一个元素的地址,访问到后面每一个元素了
  • 这其实就是数组,可以通过数组名+下标访问元素
  • 也就是用 他们本身  描述他们,通过 数组 组织这些数字(所以实际上,数据结构就是对数据进行组织的一种形式)

按照现实中的例子:校长管理学生,想想他是怎么管理这么多的学生的呢

  • 难道校长能记住每个人的信息吗
  • 每次他想对学生采取一些决策的时候,难道是一个一个找到学生来说明吗
  • 当然不可能,校长是借助他与学生的中间人来管理的,比如主任,辅导员,老师等等
  • 并且,校长进行管理,实际上是管理学生的信息(比如看学生档案/询问老师情况),并不会和学生实际见面(至少我到现在都还没见过校长)
  • 这些信息包括了一个学生的所有基本信息 (这样就可以将 抽象的概念(一个人) 具体为 数据 ,这些数据可以描述学生的属性)
  • 通过查看这些信息 (这些信息必须得被组织起来,不然无法清楚的查看,比如以链表的形式) ,校长进行决策,然后决策被传达给执行者,让他们去执行,比如导员
  • 这样被描述组织后,校长实际上就对链表(组织好了的数据)进行管理,而不是人/一堆数据

类比到计算机中:

总结

  • 管理的本质:对数据进行管理
  • 管理的方法:先描述,再组织

调用接口

引入

用于在程序中调用其他函数或方法,以执行特定任务

那为什么我们不能直接对对象进行操作呢,而是使用它提供的调用接口?

因为操作系统其实并不信任用户,但是它必须给用户提供服务(它就是因此而被创造的)

  • 类比于银行中,银行也并不信任它的客户
  • 因此它设立了窗口来使用户与它交涉,而不能直接与内部进行接触

在os中,类似提供窗口的方式也就是提供接口

  • 除此之外,使用调用接口,就不用在不同部分的程序中重复编写相同的代码
  • 将大型程序分解为较小的模块或函数,每个模块负责特定的任务
  • 当需要添加新功能或改进现有功能时,可以通过实现新的调用接口来扩展现有系统,而无需修改现有代码

系统调用

  • 是用户空间和内核空间之间的界面,它允许[用户空间的应用程序]请求操作[系统内核]执行特定任务,访问操作系统提供的服务和资源,同时保护操作系统的核心功能不受未经授权的访问
  • 系统调用通常是底层的编程接口,不同的操作系统提供了不同的系统调用接口
  • 系统调用的执行通常会触发上下文切换,将CPU从用户空间切换到内核空间,以便操作系统内核可以执行请求的任务

用户操作接口

引入
  • 开发人员使用系统接口还可以,但如果让用户也直接使用系统调用接口,还是挺麻烦的
  • 所以,为了让用户能够轻松理解和使用计算机系统,而不必了解底层系统的细节,就在系统接口的基础上进行封装,设计出了用户操作接口
  • (库函数实际上就是用户操作接口的一部分)
介绍 

在linux中,用户操作接口包括shell外壳,lib,部分指令,图形化界面

(不同的接口是为了实现不同的操作)

lib(库)
  • 库(library)的缩写
  • 分为静态库和动态库
  • 库可以是系统提供的标准库,也可以是第三方开发者创建的外部库
  • 库函数经常会使用系统调用来访问操作系统提供的底层功能

 

总结 -- 计算机体系结构图

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

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

相关文章

Windows ObjectType Hook 之 ParseProcedure

1、背景 Object Type Hook 是基于 Object Type的一种深入的 Hook,比起常用的 SSDT Hook 更为深入。 有关 Object Type 的分析见文章 《Windows驱动开发学习记录-ObjectType Hook之ObjectType结构相关分析》。 这里进行的 Hook 为 其中之一的 ParseProcedure。文章实…

【入门Flink】- 03Flink部署

集群角色 Flik提交作业和执行任务,需要几个关键组件: 客户端(Client):代码由客户端获取并做转换,之后提交给JobManger JobManager:就是Fink集群里的“管事人”,对作业进行中央调度管理;而它获…

2021上半年下午网络工程师试题

2021上半年下午网络工程师试题 试题一(共20分) 阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。 【说明】 某企业网络拓扑图如图1-1所示。该网络可以实现的网络功能有: 1.汇聚层交换机A与交换机B采用VRRP技术组网; 2.…

myabtis流式查询

1、流式查询简介 流式处理在大数据方面应用比较广泛。随着数据的爆发式增长,流式处理的方式也被应用到日常的工具中,如JDK的对于集合处理的Stream流、Redis5.0新增的数据结构Stream专门来处理消息等。 流式查询指的是查询成功后不是返回一个集合而是返回…

景联文科技:高质量数据采集清洗标注服务,助力大语言模型红蓝对抗更加精准高效

红蓝对抗是一种测试和评估大语言模型的方法。通过模拟真实世界测试AI模型的潜在漏洞、偏见和弱点,确保大型语言模型的可靠性和性能。 在红蓝对抗过程中,由主题专家组成的专业团队负责模拟攻击和提供反馈,他们试图诱导AI模型产生不当行为&…

电子商务平台对接电商供应链,不得不说的开放平台电商API接口

B2B电商开放平台的设计需要从以下几面去思考: 开放平台API接口的设计,主要是从功能需求的角度,设计满足业务需求的接口及对应的字段; 平台与商家之间信息的对接,对接的方法有哪些?对接过程中需要可能会遇到…

PaDiM 无监督异常检测和定位-论文和源码阅读

目录 1. 论文 1.1 检测效果 1.2 框架 1.2.1 特征提取embedding extraction 1.2.2 正样本学习Learning of the normality 1.2.3 计算异常图 inference: computation of the anomaly map 2. 源码 2.1 dataset 2.2 model 2.3 提取特征 1. 论文 https://arxiv.org/abs/…

Redis 6.0 新功能

1-支持 ACL 1.1-ACL 简介 官网:https://redis.io/topics/acl Redis ACL 是访问控制列表(Access Control List)的缩写,该功能允许根据可以执行的命令和可以访问的键来限制某些连接。 Redis 5 版本之前,Redis 安全规则只有密码控制&#xf…

Python元编程详细教程

嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 简单定义“元编程是一种编写计算机程序的技术,这些程序可以将自己看做数据, 因此你可以在运行时对它进行内审、生成和/或修改”&#xff…

SpringCloud篇---第三篇

系列文章目录 文章目录 系列文章目录一、负载平衡的意义什么?二、什么是Hystrix?它如何实现容错?三、什么是Hystrix断路器?我们需要它吗?一、负载平衡的意义什么? 在计算中,负载平衡可以改善跨计算机,计算机集群,网络链接,中央处理单元或磁盘驱动器等多 种计算资源的…

超高真空变温台的真空压力和气氛精密控制解决方案

摘要:针对目前国内外显微镜探针冷热台普遍缺乏真空压力和气氛环境精密控制装置这一问题,本文提出了解决方案。解决方案采用了电动针阀快速调节进气和排气流量的动态平衡法实现0.1~1000Torr范围的真空压力精密控制,采用了气体质量流量计实现多…

配置OpenCV

Open CV中包含很多图像处理的算法,因此学会正确使用Open CV也是人脸识别研究的一项重要工作。在 VS2017中应用Open CV,需要进行手动配置,下面给出在VS2017中配置Open CV的详细步骤。 1.下载并安装OpenCV3.4.1与VS2017的软件。 2.配置Open CV环…

纠结蓝桥杯参加嵌入式还是单片机组?

纠结蓝桥杯参加嵌入式还是单片机组? 单片机包含于嵌入式,嵌入式不只是单片机。. 你只有浅浅的的单片机基础,只能报单片机了。最近很多小伙伴找我,说想要一些单片机资料,然后我根据自己从业十年经验,熬夜搞了几个通宵…

Selenium安装WebDriver Chrome驱动(含 116/117/118/119/120/)

1、确认浏览器的版本 在浏览器的地址栏,输入chrome://version/,回车后即可查看到对应版本 2、找到对应的chromedriver版本 2.1 114及之前的版本可以通过点击下载chromedriver,根据版本号(只看大版本)下载对应文件 2.2 116版本…

1. eulerAngles函数

对线性代数库Eigen3中eulerAngles函数的理解_qingtian11112的博客-CSDN博客作用: 将旋转矩阵转换为欧拉角 Vector3f ea mat.eulerAngles(2, 0, 2); // 等价于 mat AngleAxisf(ea[0], Vector3f::UnitZ())* AngleAxisf(ea[1], Vector3f::UnitX())* AngleAxisf(ea[…

《Pytorch新手入门》第二节-动手搭建神经网络

《Pytorch新手入门》第二节-动手搭建神经网络 一、神经网络介绍二、使用torch.nn搭建神经网络2.1 定义网络2.2 torch.autograd.Variable2.3 损失函数与反向传播2.4 优化器torch.optim 三、实战-实现图像分类(CIFAR-10数据集)3.1 CIFAR-10数据集加载与预处理3.2 定义网络结构3.3…

99/年服务器测评,续费也99一年,真香,值得入手

每个帐号都有开通名额,开通99元一年,配置2核2G 40G 3M(不限流量),续费也是99一年 开通之后就可以直接续费,免除后顾之忧(一年一年的去续费,直接选择5年价格不太对) 地址:https://mur…

成为java高手的八个条件

成为java高手的八个条件 1、扎实的基础 数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握它们,很难写出高水平的程序。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不…

投资者如何保障个人利益?行业律师与欧科云链专家给出建议

香港作为全球加速拥抱Web3变革的引领之地,规定自今年6月起在香港经营虚拟资产服务业务需申领牌照。蜂拥而至的Web3创业公司,伺机而动的加密货币交易所,以及跃跃欲试的行业从业者,都让这座金融之都热闹非凡。但近期伴随JPEX诈骗案等…