[Linux]冯诺依曼体系结构

news2024/11/20 1:36:37

🥁作者华丞臧.
📕​​​​专栏:【LINUX】
各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞+收藏+关注)。如果有错误的地方,欢迎在评论区指出。
推荐一款刷题网站 👉 LeetCode刷题网站


文章目录

  • 一、冯诺依曼提体系结构
    • 1.1 为什么要有内存
    • 1.2 操作系统的预加载
  • 二、操作系统
    • 2.1 概念
    • 2.2 设计OS目的
    • 2.3 如何理解管理
    • 2.4 系统调用和库函数概念
    • 2.5 总结


一、冯诺依曼提体系结构

我们常见的计算机,如笔记本、台式电脑、以及不常见的服务器,大部分都遵守冯诺依曼体系。
那么什么是冯诺依曼体系呢?如下图:
在这里插入图片描述

截至目前,我们所认识的计算机,都是一个个的硬件组成的:

  • 输入单元:包括键盘、鼠标、磁盘、网卡等;
  • 中央处理器(CPU):含有运算器和控制器等;
  • 输出单元:显示器、音响、磁盘、打印机等。
  • 存储器:内存

关于上面图中的冯诺依曼结构,有几点需要注意

  • 图中的存储器指内存;
  • 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能直接访问外设(输入设备或者输出设备);
  • 外设(输入设备或者输出设备)要输入或者输出数据,只能先写入到内存或者从内存中读取;
  • 所有设备都只能直接和内存打交道。
  • 中央处理器CPU只是具有运算和控制能力,被操作系统控制着计算和控制数据;几乎所有的硬件只能被动的完成某种功能,一般都是配和软件完成的。

1.1 为什么要有内存

  1. 技术角度:内存就是体系结构的一个大的缓存,用来适配外设和CPU速度不均的问题。

运算速度:cpu的运算速度 > 寄存器的速度 > L1~L3Cache > 内存 > 外设 > 光盘磁带。
因此相对于cpu来说磁盘的速度是非常低的,整个计算机性能由效率最低的那一块决定;从数据角度,外设几乎不和CPU交互,直接和内存交互,CPU也同样如此只和内存交互。引入存储器,当我们需要进行数据计算时,系统会预先将数据加载到存储器中,然后CPU再从存储器中读取,这样就能让计算机的性能和效率以存储器为主,提高了整机的性能和效率。

在这里插入图片描述

  1. 成本角度:使用较低的成本,获得较高的性能。

造价:寄存器 >> 内存 >> 磁盘(外设)
一个东西要在大众中蔓延直至蔓延全球必须满足有效并且便宜,而存储器能够让我们使用较低的成本,获得较高的性能。

1.2 操作系统的预加载

体系结构规定,当我们编写完一个程序并生成可执行文件时,可执行文件一定是存放在磁盘上的,而如果要运行这个程序一定要先将这个文件加载到内存中去;操作系统同样如此,一台电脑开机是需要等待一段时间的,等待的过程就是操作系统预加载到内存的过程,预加载还能让计算机把加载和运行并行起来
局部性原理:当访问某些数据时,操作系统会将该数据周边的数据一起加载到内存中。

二、操作系统

2.1 概念

任何计算机系统都包含一个基本的程序集合,称为操作系统(0S)。笼统的理解,操作系统包括一下两点:

  • 内核(进程管理、内存管理、文件管理、驱动管理)
  • 其他程序(例如函数库、shell程序等)

在这里插入图片描述

在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件

2.2 设计OS目的

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

  • 对上,与硬件交互,管理所有的软硬件资源;
  • 对下,为用户程序提供一个良好(稳定的、高效的、安全的)的执行环境。

2.3 如何理解管理

管理是日常生活中不可缺少的一部分,一个国家有政府部门管理,一个公司也有自己的管理层,一个学校有校长和老师进行管理;任何有序的地方都离不开管理,那么如何管理呢?

日常生活中可以分为两种人管理者和被管理者,大多数人都是被管理者;通常一个地方(国家、公司、学校)的最高管理者,比如说学校的校长,校长管理学生并不需要面对面的管理,而是通过汇总学生的信息然后根据信息做出决策,因此通过对管理对象数据的管理就可以实现对对象的管理。
对于信息的管理并不简单,当信息的数据量小时,可以直接对信息进行管理;但是当信息量很大时,直接人为地对信息进行管理,无疑是一个巨大工作量的任务;因此需要将数据进行结构化,使用数据结构对信息进行管理。

在这里插入图片描述

管理的本质:对数据进行管理。
收集对象的信息首先要描述对象,人们是通过属性来认识世界,换句话说一切事物都可以通过抽取对象的属性,来达到描述对象的目的。 这也告诉我们面向对象语言的诞生是必然的,因为面向对象更符合人们认识世界的方式。
在这里插入图片描述

2.4 系统调用和库函数概念

  • 系统调用:在开发角度,操作系统为了保护自己,对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口;Linux中的系统调用是使用C语言编写完成的,因此又称为C式接口。
  • 系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。

在这里插入图片描述
操作系统四大基本功能如下

  1. 内存管理:分配内存空间,保证各作业占用的存储空间不发生矛盾,并使各作业在自己所属存储区中不互相干扰。
  2. 进程管理:进程调度,解决处理器的调度、 分配和回收等问题。
  3. 文件管理:文件存储空间的管理、目录管理 、文件操作管理、文件保护等。
  4. 驱动管理:当用户使用外部设备时,必须提出要求,待操作系统进行统一分配后方可使用。当用户的程序运行到要使用某外设时,由操作系统负责驱动外设。

底层硬件和操作系统并不是直接链接,而是以冯诺依曼体系结构相互链接的;驱动程序一般由硬件制造厂商提供,或是由操作系统相关的模块进行开发(如网卡)。
驱动程序本质上是软件代码,主要作用是计算机系统与硬件设备之间完成数据传送的功能,只有借助驱动程序,两者才能通信并完成特定的功能。 如果一个硬件设备没有驱动程序,只有操作系统是不能发挥特有功能的,也就是说驱动程序是介于操作系统与硬件之间的媒介,实现双向的传达,即将硬件设备本身具有的功能传达给操作系统,同时也将操作系统的标准指令传达给硬件设备,从而实现两者的无缝连接。

2.5 总结

计算机管理硬件的方式如下:

  1. 先描述,使用struct结构体;
  2. 再组织,用链表或者其他高效的数据结构。

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

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

相关文章

98家央企及下属上市企业全名单(2023版)

1月10日,央企专业化整合又有新动作。国家电网与国家电投生物质发电项目专业化整合项目在北京举行管理权交接仪式,中国电建与通用技术集团医疗资源专业化整合项目在京签约。经过整合,我国生物质发电领域龙头企业国能生物重组进入国家电投&…

springboot ssm招生管理系统java

招生管理系统是基于java编程语言,mysql数据库,springboot框架和idea工具开发,本系统分为学生和管理员两个角色,学生可以注册和登陆,查看招生公告信息,查看招生专业信息,在线申请专业&#xff0c…

Tapdata Cloud 场景通关系列:数据入湖仓之 MySQL → Doris,极简架构,更实时、更简便

【前言】作为中国的 “Fivetran/Airbyte”, Tapdata Cloud 自去年发布云版公测以来,吸引了近万名用户的注册使用。应社区用户上生产系统的要求,Tapdata Cloud 3.0 将正式推出商业版服务,提供对生产系统的 SLA 支撑。Tapdata 目前专注在实时数…

RNN从理论到实战【理论篇】

来源:投稿 作者:175 编辑:学姐 要深入理解深度学习,从零开始创建的经验非常重要,从自己可以理解的角度出发,尽量不使用外部完备的框架前提下,实现我们想要的模型。本系列文章的宗旨就是通过这样…

【JavaSE】数据类型与变量

数据类型与变量数据类型与变量1. 字面常量2. 数据类型3. 变量3.1 变量概念3.2 语法格式3.3.1 整型变量3.3.2 长整型变量3.3.3 短整型变量3.3.4 字节型变量3.3 浮点型变量3.4.1 双精度浮点型3.4.2 单精度浮点型3.4 字符型类型3.5 布尔型变量3.6 类型转换3.7.1 自动类型转换&…

TensorFlow 实战案例: ResNeXt 交通标志图像多分类,附Tensorflow完整代码

各位同学好,今天和大家分享一下如何使用 Tensorflow 构建 ResNeXt 神经网络模型,通过 案例实战 ResNeXt 的训练以及预测过程。每个小节的末尾有网络、训练、预测的完整代码。 ResNeXt 是 ResNet 的改进版,在 bottleneck卷积块 结构上进行了较…

阿里高级技术专家方法论:如何写复杂业务代码?

阿里妹导读:张建飞是阿里巴巴高级技术专家,一直在致力于应用架构和代码复杂度的治理。最近,他在看零售通商品域的代码。面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,是一个新课题。结合实际的业务场景…

ECM工业能耗管理云平台

在我国的能源消耗中,工业企业是能源消耗的主要群体,能源消耗量占全国能源消耗总量的70%左右,传统方式进行各类工厂能耗的计量,造成能耗数据不完整、不准确、不全面,因而无法进行能耗分析与诊断,造成普遍在各…

DFS初入门

目录 一、前言 二、搜索与暴力法 1、概念 2、搜索的基本思路 3、BFS:一群老鼠走迷宫 4、DFS:一只老鼠走迷宫 三、DFS 1、DFS访问示例 2、DFS的常见操作 3、DFS基础:递归和记忆化搜索 4、DFS的代码框架(大量编码后回头体…

一个真正的鳗,他清楚自己每天都要刷《剑指offer》(第九天)

跟着博主一起刷题 这里使用的是题库: https://leetcode.cn/problem-list/xb9nqhhg/?page1 目录剑指 Offer 57 - II. 和为s的连续正数序列剑指 Offer 59 - I. 滑动窗口的最大值剑指 Offer 60. n个骰子的点数剑指 Offer 57 - II. 和为s的连续正数序列 剑指 Offer 57 …

文旅元宇宙热潮来袭,天下秀用“科技之钥”解锁三大价值

让未来照进现实,让现实走进虚拟,元宇宙正成为通往下个时代的船票。2018年上映的电影《头号玩家》,让大部分人首次感触到元宇宙里的沉浸式体验——男主角带上VR头盔后,瞬间就能进入另一个极其逼真的虚拟世界。随着VR、AR、区块链、…

系统回顾MyBatis体验这一优秀的持久层框架

文章目录1.MyBatis2.Mapper代理3.MyBatis配置升级4.配置文件CRUD5.多条件查询6.多条件动态查询7.单条件动态条件查询8.添加数据并主键返回9.更新数据10.删除数据11.参数传递12.注解开发1.MyBatis MyBatis基本上取消了所有的JDBC硬编码,对于单独使用这样的ORM框架&a…

1585_AURIX_TC275_SMU的部分内核寄存器

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com) 继续看SMU的资料,这次看一部分SMU的内核相关寄存器。这一次整理的内容比较少,而且优点断篇,因此按照序号来分没有保持10页的对齐。 调试相关的寄存器不…

详解外网访问内网DDNS作用 及ddns解析软件使用方法

导语:随着互联网的成熟,家庭宽带的提速,大家对外网访问家庭内网电脑,监控,服务器,存储NAS等设备的需求倍增。目前外网访问内网可以用DDNS动态域名解析的方式,以下本文就来介绍一下原理和实现工具…

ELK日志(3)

EFK日志收集 Elasticsearch: 数据库,存储数据 javalogstash: 日志收集,过滤数据 javakibana: 分析,过滤,展示 javafilebeat: 收集日志,传输到ES或logstash go redis:缓冲数据,等待logstash取数据…

高并发多级缓存架构解决方案 OpenResty、canal搭建及使用流程

高并发多级缓存架构解决方案1、缓存的常规使用方式2、请求流程拆分1、搭建tomcat集群2、搭建OpenRestyOpenResty的目录结构nginx的配置文件lua脚本的执行流程http请求反向代理到tomcat服务器3、OpenResty、Redis的单点故障问题4、防止缓存穿透java中通过redisson实现布隆过滤器…

Mac 下配置 go语言环境

Mac 下配置 go语言环境两种方法安装Go通过Homebrew安装(不太推荐)通过官网安装 (推荐)方法一安装Homebrew通过Homebrew安装Go方法二 通过官网进行安装配置go环境配置go环境国内镜像Vscode环境配置Helloworld.go两种方法安装Go 通…

LabVIEW中的VI脚本

LabVIEW中的VI脚本用户可使用VI脚本选板上的VI、函数和相关的属性、方法,通过程序创建、编辑和运行VI。通过VI脚本,可减少重复的VI编辑所需的时间,例如:创建若干类似VI对齐和分布控件显示或隐藏控件标签连接程序框图对象注: 必须先…

【13】Docker_DockerFile | 关键字

目录 1、DockerFile的定义 2、DockerFile内容基本知识 3、Docker执行DockerFile的大致流程 4、DockerFile的关键字 5、举例: 1、DockerFile的定义 Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。 2、Do…

[前端笔记——HTML介绍] 2.开始学习HTML

[前端笔记——HTML介绍] 2.开始学习HTML1什么是HTML?2剖析一个HTML元素3块级元素和内联元素4空元素5属性6为一个元素添加属性7布尔属性8省略包围属性值的引号9单引号或双引号?10剖析HTML文档11实体引用:在 HTML 中包含特殊字符1什么是HTML? …