[Linux]计算机软硬体系结构

[Linux]计算机软硬体系结构

文章目录

  • [Linux]计算机软硬体系结构
    • 冯诺依曼体系结构
      • 冯诺依曼体系结构的组成
      • 冯诺依曼体系结构中各部件的功能
      • 对存储器(内存)的理解
      • 对数据流的理解
    • 了解操作系统
      • 操作系统的概念
      • 管理的概念
      • 管理的本质
      • 管理的精髓“先描述,再组织”
      • 计算机软硬体系结构(部分)
      • 操作系统的管理策略
      • 编程语言和计算机体系结构的关系
      • 计算机软硬体系结构(整体)

冯诺依曼体系结构

冯诺依曼体系结构的组成

现代计算机大多都遵守冯诺依曼体系结构冯诺依曼体系结构的示意图如下:

image-20230803114138672

冯诺依曼体系结构计算机由五大部件组成:

  1. 输入设备

  2. 输出设备

  3. 存储器(内存)

  4. 运算器

  5. 控制器

    注:如今大多的计算机都将运算器和控制器集成到一起,被称作中央处理器,简称CPU。

冯诺依曼体系结构中各部件的功能

冯诺依曼体系结构中各部件的功能如下:

  1. 输入设备:接受外部传入的数据并传入计算机。常见的输入设备有:键盘、话筒、摄像头、网卡、磁盘。
  2. 输出设备:接受计算机的计算结果。常见的输出设备包括:显示器、音响、网卡、磁盘。
  3. 存储器:对数据进行预加载,提高整机的效率。
  4. 运算器:完成各种算数运算和逻辑运算。
  5. 控制器:控制整个计算机能够有条不紊地工作、自动执行程序。

对存储器(内存)的理解

在谈关于存储器的理解前,首先我们要知道如下概念:

  • 输入设备和输出设备统称为外设设备,简称为外设。
  • 外设和CPU的部件相比速度是非常慢的。

由于CPU和外设速度差异很大,因此计算机不能被设计成如下结构:

image-20230803122039339

由于CPU和外设速度差异很大,CPU很快就完成了数据的计算并将数据传到输出设备,然后CPU要等待输入设备的数据传入,CPU会存在很多不必要的空档期,这样大大的降低了CPU的效率,这就如同木桶原理:

image-20230803121556142

由于外设的速度太慢导致整机的速度降低。

为了提高整机的效率,冯诺依曼体系结构将存储器部件加入了进来,存储器的速度相比外设要快很多并且有着一定的容量,在CPU运算前,存储器会预先加载大量的数据,往后CPU要进行运算时只需要从存储器获取数据,由于存储器预先存储了大量的数据,CPU可以向存储器不断的获取数据,不存在空档期,因此CPU就感受不到速度的差异,从而提高整机效率。

总结:

  • 在数据传输层面,CPU只与存储器进行数据交互。

  • 在数据传输层面,外设只与存储器进行数据交互。

根据如上对体系结构的理解,可以得知计算机要执行一个程序,首先要从磁盘这种外设加载到存储器中,然后CPU通过存储器获取数据来执行程序。

对数据流的理解

两台计算机的数据传输示意图如下:

image-20230803131142796

两台计算机的数据传输流程:设备1的输入设备接收数据和请求然后传入存储器,CPU对存储器的数据和请求做处理,然后将数据和请求传回存储器,存储器将数据数据和请求传到输出设备中,输出设备将数据和请求传入到设备2的输入设备中,设备2同设备1将数据和请求经输入设备到存储器到CPU到存储区最后到数据设备输出。

了解操作系统

操作系统的概念

操作系统是一款进行软硬件资源管理的软件

管理的概念

为了更好理解管理的概念,我们来看如下场景:

一个学校中要举办编程大赛,学校中有校长,辅导员,学生三种角色。

image-20230803133656536

  • 校长决定编程大赛在下个月举办,要求全部学生必须参加,并且将全部学生的成绩进行统计。

  • 辅导员得到校长的决策后,就召集全部学生开启大会,告知学生学校编程大赛的消息,筹备大赛,并在后续完成成绩统计工作。

  • 学生得知校长的决策后,就开始着手准备编程大赛的准备工作。

在如上的场景中,校长所作的内容就是做决策,辅导员所作的内容是将决策落地,也就是执行决策,学生所作的内容是参与决策的执行。

image-20230803134622207

在学校举办编程大赛的场景下,校长作为管理者,所要做的主要工作就是对任务做决策。决策编程大赛的举办时间,参与大赛的对象以及大赛相关所需要做的工作。因此我们可以看出管理的核心就是对事情相关的部分做决策。

管理的本质

同样是学校的场景,学校中有校长,辅导员,学生三种角色。

image-20230803133656536

在学校中,校长要管理学生考入时入学处理,对成绩优异的学生进行奖励,成绩不合格的学生的退学处理等等,在管理每一个学生时校长不需要跟每一个学生都进行交流,但是校长却能管理好每一个学生,校长管理每一个学生的依据是学生信息,比如入学时将学生的信息记录到学校中,查看学生的成绩信息就成绩优异的学生进行奖励,查看学生的成绩信息对成绩较差的学生进行退学处理,以上这些学生信息都可以称作数据,因此管理的本质是对数据的管理。其中校长作为管理者,其数据的来源是辅导员进行统计学生的信息然后上交给的校长,校长做出决策后执行决策的也是辅导员。

管理的精髓“先描述,再组织”

由于管理的本质是对数据的管理,为了更好的对数据进行管理,需要对数据进行建模,比如对于一个学生来讲,可以创建一个结构体来描述学生,结构体里包含学生的各种属性,由于要管理的学生众多,因此,需要将描述学生的结构体组织起来方便管理,比如链表结构:

image-20230803142646876

以上对学生用结构体描述,然后用链表结构组织起来的方式就是**“先描述,再组织”**。

经过先描述,再组织后,校长要开除成绩最差的学生时,只需要遍历链表寻找成绩最差的学生的结点,然后将其结点删除,这样学生就不在学校管理范围内,也就是被开除了。

计算机软硬体系结构(部分)

上面的学校场景中,校长、辅导员、学生对应计算机中的就是操作系统、硬件驱动、硬件,这些部分参与了计算机软硬体系结构的组成:

image-20230803145358849

  • 操作系统 – 对硬件进行先描述,再组织,然后通过对硬件的这种数据建模进行管理。
  • 硬件驱动(软件) – 传达操作系统的决策给硬件,让硬件去执行,并获取硬件的数据信息和请求上交给操作系统。
  • 硬件 – 将操作系统下发的决策进行执行,上交请求给硬件驱动。

操作系统的管理策略

操作系统管理的目的: 为上层的用户提供安全、稳定、高效、功能丰富的执行环境。

用户可能会对计算机的硬件有各种各样的需求,比如让计算机的音响音量放大等,用户如果直接操作硬件可能会出现问题,因此操作系统作为硬件的管理者,不会让用户直接去访问硬件,而是提供了各种各样的系统接口,用户可以通过调用系统接口来实现想要的功能,通过这种方式,操作系统可以认为用户的行为是可控的,从而更好的提供良好的执行环境。

image-20230803155445513

编程语言和计算机体系结构的关系

编程语言的使用在计算机体系结构中处于操作系统的上层–用户层,编程语言为了降低用户使用系统接口的成本,将系统接口封装成了库函数供用户使用:

image-20230803161308352

计算机软硬体系结构(整体)

计算机软硬体系结构是层状的,包含用户层,用户操作接口层、系统调用接口层、操作系统层、硬件驱动层、硬件层:

image-20230803161202216
程序执行任何操作都需要由计算机软硬体系结构的上层不断向下层传递才能完成。

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

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

相关文章

SpringCloud之微服务API网关Gateway介绍

文章目录 1 微服务API网关Gateway1.1 网关1.1.1 简介1.1.2 相比于Zuul 1.2 Spring Cloud Gateway介绍1.3 Gateway特性1.4 Gateway工作流程1.5 Gateway核心概念1.5.1 路由1.5.1.1 定义1.4.1.2 动态路由 1.4.2 断言1.4.2.1 默认断言1.4.2.2 自定义Predicate 1.4.3 过滤器1.4.3.1 …

Llama 2 云端部署与API调用【AWS SageMaker】

Meta 刚刚发布了 Llama 2 大模型。如果你和我们一样,你一定会迫不及待地想要亲自动手并用它来构建。 推荐:用 NSDT设计器 快速搭建可编程3D场景。 使用任何类型的 LLM 进行构建的第一步是将其托管在某处并通过 API 使用它。 然后你的开发人员可以轻松地将…

决策树和随机森林对比

1.用accuracy来对比 # -*-coding:utf-8-*-""" accuracy来对比决策树和随机森林 """ from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_wine#(178, 13…

【Spring】使用注解存储Bean对象

目录 一、配置扫描路径(使用注解的方式存对象的前提) 二、使用类注解存储Bean对象 1、使用五大类注解存储Bean对象 2、为什么要这么多的类注解? 2.1、五大类注解之间的关系 3、获取Bean对象时的默认命名规则 三、使用方法注解来存储…

2023年新手如何学剪辑视频 想学视频剪辑如何入门

随着短视频、vlog等媒体形式的兴起,视频剪辑已经成为了热门技能。甚至有人说,不会修图可以,但不能不会剪视频。实际上,随着各种智能软件的发展,视频剪辑已经变得越来越简单。接下来,一起来看看新手如何学剪…

以指标驱动,保险、零售、制造企业开启精益敏捷运营的新范式

近日,以“释放数智生产力”为主题的 Kyligence 用户大会在上海前滩香格里拉大酒店成功举行。大会包含上午的主论坛和下午的 4 场平行论坛,并举办了闭门会议、Open Day 等活动。来自金融、零售、制造、医药等行业的客户及合作伙伴带来了超过 23 场主题演讲…

VAE、 EM、KL散度

文章目录 VAEVAE额外的损失函数 EMKL散度 VAE 左图相当于变量x,右图相当于z 假如在AE中,一张满月的图片作为输入,模型得到的输出是一张满月的图片;一张弦月的图片作为输入,模型得到的是一张弦月的图片。当从满月的code…

瞅一眼nginx

目录 🦬什么是nginx? 🦬nginx配置官方yum源: 🦬nginx优点 🦬nginx 缺点 🦬查看nginx默认模块 🐌nginx新版本的配置文件: 🐌nginx目录索引 🐌nginx状态…

网络编程(JavaEE初阶系列10)

目录 前言: 1.网络编程的基础 1.1为什么需要网络编程 1.2什么是网络编程 1.3网络编程中的基本概念 1.3.1发送端和接收端 1.3.2请求和响应 1.3.3客户端和服务端 2.Socket套接字 2.1概念 2.2分类 3.UDP数据报套接字编程 3.1DataGramSocket API 3.2Datagr…

【游戏客户端】制作你玩我猜Like玩法

【游戏客户端】制作你玩我猜Like玩法 大家好,我是Lampard猿奋~~ “你画我猜”相信大家都不陌生,当初这款小游戏可谓茶余饭后必玩之选,风头一时无二。今天要和大家分享如何实现一个你玩我猜Like的玩法。 我们可以简单的把需求拆成两个个部分&…

python实现对图油画、卡通、梦幻、草图、水彩效果

本篇博客将介绍如何使用wxPython模块和OpenCV库来实现对图像进行灰度化、二值化、伽马校正、色彩空间转换和图像反转这5种效果的合并程序。程序可以通过wxPython提供的GUI界面来选择图片路径和效果类型,程序会将处理后的图像保存到指定路径并打开。 步骤一&#xf…

2021年12月 Python(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

一、单选题(共25题,每题2分,共50分) 第1题 昨天的温度是5摄氏度,今天降温7摄氏度,今天的温度是多少摄氏度? A:12 B:7 C:2 D:-2 正确的答案是 D:-2。 解析: 根据题目描述,昨天的温度是 5 摄氏度,今天降温了 7 摄氏度。降温意味着温度变低,所以今天的温度…

k8s之Pod控制器

目录 一、Pod控制器及其功用二、pod控制器的多种类型2.1 pod容器中的有状态和无状态的区别 三、Deployment 控制器四、SatefulSet 控制器4.1 StatefulSet由以下几个部分组成4.2 为什么要有headless?4.3 为什么要有volumeClaimTemplate?4.4 滚动更新4.5 扩…

解决MAC M1处理器运行Android protoc时出现的错误

Protobuf是Google开发的一种新的结构化数据存储格式,一般用于结构化数据的序列化,也就是我们常说的数据序列化。这个序列化协议非常轻量级和高效,并且是跨平台的。目前,它支持多种主流语言,比传统的XML、JSON等方法更具…

性能优化必知必会

系统性能调优 分为四个层次 基础设施网络编解码分布式系统性能整体提升 一:基础设施优化 从提升单机进程的性能入手,包括高效的使用主机的CPU、内存、磁盘等硬件,通过提高并发编程提升吞吐量,根据业务特性选择合适的算法 01 …

CSS—选择器

目录 一、CSS简介 二、HTML页面中常用的元素 三、CSS语法规则 四、常用的选择器 五、选择器参考 一、CSS简介 CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式…

如何把非1024的采样数放入aac编码器

一. aac对数据规格要求 二、代码实现 1.初始化 2.填入数据 3.取数据 三.图解 一. aac对放入的采样数要求 我们知道aac每次接受的字节数是固定的,在之前的文章里有介绍libfdk_aac音频采样数和编码字节数注意 它支持的采样数和编码字节数分别是: fdk_aac …

Go context.WithCancel()的使用

WithCancel可以将一个Context包装为cancelCtx,并提供一个取消函数,调用这个取消函数,可以Cancel对应的Context Go语言context包-cancelCtx 疑问 context.WithCancel()取消机制的理解 父母5s钟后出门,倒计时,父母在时要学习,父母一走就可以玩 …

【mock安装时报错】

node版本需要大于16 切换>16的版本即可 建议使用 nvm进行 node版本状态管理 可参考另一篇文章 nvm多版本管理方案

windows美化任务栏,不使用软件

1.任务栏透明: 效果图: (1).winr打开命令行 输入regedit回车打开注册表 regedit (2).在注册表中打开 \HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced 这个路径 \HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explore…