『Linux升级路』冯诺依曼体系结构与操作系统

🔥博客主页:小王又困了

📚系列专栏:Linux

🌟人之为学,不日近则日退

❤️感谢大家点赞👍收藏⭐评论✍️

目录

一、冯诺依曼体系结构

📒1.1为什么要有体系结构

📒1.2硬件介绍

📝1.2.1中央处理器

📝1.2.2输入、输出设备 

📝1.2.3存储器 

📝1.24.总线概念 

📒1.3内存的重要性 

二、操作系统

📒2.1操作系统的概念

📒2.2设计操作系统的目的

📒2.3计算机的底层结构


一、冯诺依曼体系结构

📒1.1为什么要有体系结构

     我们现在常见的计算机,如笔记本,它们本质都是一堆硬件(如:cpu、内存、网卡、磁盘等)的集合。并不是把这些硬件毫无章法的放在一起就能够组成计算机,而是要让各个硬件和软件之间建立协同能力,让它们具有逻辑结构,这就要求硬件与硬件之间要组织好,构建成一个系统,这样才能对外提供计算输出服务,所以就要有体系结构将它们连接。计算机体系结构是计算机系统中的核心。

我们常见的计算机,大部分都遵守冯诺依曼体系。

📒1.2硬件介绍

📝1.2.1中央处理器

     中央处理器简称CPU,它由运算器和控制器共同组成。在不考虑缓存的情况下,CPU只能对存储器(内存)进行读写,不能访问外设(输入、输出设备)。它的主要功能就是解释计算机指令以及处理计算机软件中的数据。这意味着,电脑中所有操作都由CPU负责读取指令并进行处理。

  • 运算器是对用户输入的数据执行计算任务,分为算数运算逻辑运算,前者就是加减乘除,后者就是真假判断。
  • 控制器是对计算过程,即硬件流程进行控制,它控制着指令的执行和数据的传输,协调各组件与各单元间的工作。

📝1.2.2输入、输出设备 

     输入、输出设备,也被称为IO设备,是计算机的关键外部设备之一,它允许与计算机本体进行交互使用。这类设备使得用户可以向计算机输入数据和信息,同时也能从计算机获取处理结果。常见的输入设备包括键盘、鼠标、麦克风、摄像头、磁盘、网卡等。例如:键盘是字符输入设备,可以将文字信息输入到计算机中;而鼠标则是一种图形输入设备,用户可以通过移动鼠标来控制光标的移动,并与屏幕上的对象进行交互。 常见的输出设备包括:显示器、打印机、音响、磁盘、网卡等。例如:显示器,它可以将计算机处理后的信息以图像或文字的形式展示给用户。无论是输入还是输出设备,它们都对计算机系统的运行至关重要,并且极大地方便了用户的使用。

注意:磁盘、网卡等设备既时输入设备,也是输出设备。

📝1.2.3存储器 

      存储器是计算机系统中的记忆设备,主要用于存放程序和数据。它可以分为内存储器和外存储器两大类,这里的存储器指的是内存。在冯诺依曼体系结构中占据核心地位。

📝1.24.总线概念 

     总线是计算机中设备与设备之间传输信息的公共通道。它是一条由导线组成的传输线束,用于连接计算机硬件系统内的各种设备,实现它们之间的信息交换和通信。总线作为一种内部结构,是CPU与主存、I/O设备(输入、输出设备)各大部件之间进行信息交换的关键通道。它极大的方便了设备的连接和使用,提升了计算机整体的运行效率。

📒1.3内存的重要性 

     我们要先了解计算机中的存储数据的硬件,硬件有很多种,例如:寄存器、缓存、内存、硬盘、网盘等,它们按照访问速度的快慢形成了一个存储金字塔,如下图所示:

寄存器的读取速度更快,为什么体系结构不是下面这种情况呢?

     在我们的人之中,CPU直接与输入设备和输出设备直接进行交互,这样的效率更高。 但事实情况并不是这样,由于木桶原理:一只木桶能装多少水,并不取决于桶壁上最高的那块木块,而恰恰取决于桶壁上最短的那块。这样计算机的效率并没有提高,反而效率降低了。

     这时我们引入一种速度快于外设,慢于CPU的存储设备——内存。它起着第三方中转站的作用,我们可以把数据从输入设备先预加载到内存,CPU完成计算后存放到缓存中,当需要输出时,直接从缓存中读取。CPU的运算和内存从外设读取数据是可以同时进行的。合理利用预加载和缓存可以大大提高效率,引入内存也节省了成本。

总结:一个程序想要运行,就必须先加载到内存。 

二、操作系统

     操作系统是管理和控制计算机系统中各种硬件和软件资源、合理地组织计算机工作流程的系统软件,也是用户与计算机之间的接口。

 操作系统是一款纯正的“搞管理”的软件 

📒2.1操作系统的概念

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

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

📒2.2设计操作系统的目的

  • 与硬件交互,管理所有的软硬件资源
  • 为用户程序(应用程序)提供一个良好的执行环境

📒2.3计算机的底层结构

📝什么是驱动程序?

     驱动程序是一种特殊的程序,它的主要功能是让计算机和设备进行相互通信。我们可以将驱动程序视为硬件的接口,只有通过这个接口,操作系统才能控制硬件设备的工作。例如:当我们插入一个打印机到电脑上时,电脑并不能直接理解这个硬件是什么以及它能做什么,而只有在安装了驱动程序后,电脑才能理解这个硬件设备,因为驱动程序中包含了配置信息和描述。

📝操作系统为什么要对软硬件进行管理?

     操作系统是计算机系统的内核与基石,其关键作用之一就是管理计算机的硬件和软件资源。它的主要任务包括管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络以及管理文件系统等。操作系统位于底层硬件与用户之间,作为两者沟通的桥梁,它提供了一种让用户与系统交互的操作界面,如命令行或图形用户界面。这使得用户可以通过操作系统的用户界面,输入所需的命令。对计算机的软硬件资源进行管理对于提高计算机系统的效率和可用性至关重要。

📝操作系统是怎样进行管理的?

      我们以学校为例,校长作为学校的管理者,学生作为被管理对象,那校长是如何管理学生的呢?每个学校的教务系统中存储了学生的各种信息,如姓名、学号、年龄、考试成绩、挂科情况等等。要评选奖学金的时候,校长只需要在教务系统中依据每个学生的成绩排个名,根据排名就可以把奖学金发给对应的学生。因此我们可以得出下面的结论:

  • 管理者和被管理者并不需要见面。

  • 管理本质上是对信息(数据)进行维护。

那这些信息是哪里来的呢?这些信息就是我们入学时,辅导员让我们填写的个人信息,然后汇总在一起。辅导员也是执行者。

管理者和执行者的本质区别在于,管理者拥有决策权,而执行者是没有决策权的,执行者只能按照管理者的要求去执行任务。回到计算机,操作系统就相当于是校长,属于管理者;驱动程序就相当于是辅导员,属于执行者;硬件就相当于学生,属于被管理者。

计算机管理硬件:(先描述,在组织

  1.  描述起来,用struct结构体
  2.  组织起来,用链表或其他高效的数据结构

操作系统对硬件设备的管理最终都会转换成对某种数据结构的增删查改。这种管理方式就决定了操作系统中含有大量的数据结构。


🎁结语: 

     本次的内容到这里就结束啦。希望大家阅读完可以有所收获,同时也感谢各位读者三连支持。文章有问题可以在评论区留言,博主一定认真认真修改,以后写出更好的文章。你们的支持就是博主最大的动力。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端文件在虚拟机,后端在本机,两个如何通信

前端文件在虚拟机,后端在本机,两个如何通信 如果前端的文件放在虚拟机里面,但是调用接口的后端在本地调试,如何做到在虚拟机中也能访问到本地的接口内容。 其实这个问题很简单,只要讲本地的IP和虚拟机中的IP结合就可…

[SWPUCTF 2021 新生赛]finalrce

[SWPUCTF 2021 新生赛]finalrce wp 注&#xff1a;本文参考了 NSSCTF Leaderchen 师傅的题解&#xff0c;并修补了其中些许不足。 此外&#xff0c;参考了 命令执行(RCE)面对各种过滤&#xff0c;骚姿势绕过总结 题目代码&#xff1a; <?php highlight_file(__FILE__); …

Spring Boot笔记1

1. SpringBoot简介 1.1. 原有Spring优缺点分析 1.1.1. Spring的优点分析 Spring是Java企业版&#xff08;Java Enterprise Edition&#xff0c;javeEE&#xff09;的轻量级代替品。无需开发重量级的Enterprise JavaBean&#xff08;EJB&#xff09;&#xff0c;Spring为企业…

C++ 内联函数inline

内联函数是C为提高程序运行速度所做的一项改进。常规函数和内联函数之间的主要区别不在于编写方式&#xff0c;面在于C编译器如何将它们组合到程序中。要了解内联函数与常规函数之间的区别&#xff0c;必须深入到程序内部。 编译过程的最终产品是可执行程序一一由一组机器语言指…

C++ 文件操作篇

C 文件操作篇 文章目录 C 文件操作篇1 简介1.1 继承关系1.2 流1.3 缓冲区输入输出流中的缓冲streambuf 2 文件操作步骤2.1 头文件2.2 创建流对象2.3 打开文件2.4 读取数据第一种&#xff1a;**按元素直接读**第二种&#xff1a;**使用getline按行读**第三种&#xff1a;**使用*…

数据结构--查找

目录 1. 查找的基本概念 2. 线性表的查找 3. 树表的查找 3.1 二叉排序树 3.1.1 定义: 3.1.2 存储结构&#xff1a; 3.1.3 二叉排序树的查找 3.1.4 二叉排序树的插入 3.1.5 二叉排序树删除 3.2 平衡二叉树&#xff08;AVL 3.2.1 为什么要有平衡二叉树 3.2.2 定义 3.3 B-树 3.3.1…

如何安装T4显卡的驱动

文章目录 一、没有驱动的报错现象二、cuda版本与驱动的版本对应关系三、安装驱动方法1&#xff1a;方法2&#xff1a; 一、没有驱动的报错现象 ERROR: Unable to find the kernel source tree for the currently running kernel. Please make sure you have installed the ker…

uniapp-android原生插件如何打aar包 (避坑指南二)

1.打开android studio项目&#xff0c;找到module项目&#xff0c;打开右侧gradle&#xff0c;找到对应的module, 点击assemble&#xff0c;会打包生成aar&#xff0c;生成的aar在 [module]/build/outputs/aar/目录下 特殊情况&#xff0c;如果右侧的gradle&#xff0c;找到mo…

生存分析序章2——生存分析之Python篇:lifelines库入门

目录 写在开头1. 介绍 lifelines 库1.1 lifelines库简介1.2 安装与环境配置 2. 数据准备2.1 数据格式与结构2.2 处理缺失数据2.3 对异常值的处理 3. Kaplan-Meier 曲线3.1 使用 lifelines 绘制生存曲线3.2 曲线解读3.3 额外补充 4. Cox 比例风险模型4.1 lifelines 中的 Cox 模型…

RabbitMq知识概述

本文来说下RabbitMq相关的知识与概念 文章目录 概述AMQP协议Exchange 消息如何保证100&#xff05;投递什么是生产端的可靠性投递可靠性投递保障方案 消息幂等性高并发的情况下如何避免消息重复消费confirm 确认消息、Return返回消息如何实现confirm确认消息return消息机制 消费…

Flask 与微信小程序对接

Flask 与微信小程序的对接 在 web/controllers/api中增建py文件&#xff0c;主要是给微信小程序使用的。 web/controllers/init.py # -*- coding: utf-8 -*- from flask import Blueprint route_api Blueprint( api_page,__name__ )route_api.route("/") def ind…

数据的价值:隐藏在数字背后的巨大财富

在当今数字化的时代&#xff0c;数据已经成为了一种宝贵的资源&#xff0c;它的价值被越来越多的人所认识。数据不仅可以帮助企业更好地了解市场和消费者&#xff0c;提高决策的准确性&#xff0c;还可以为社会带来更多的便利和创新。企业、组织和个人可以利用数据来更好地了解…

编程笔记 html5cssjs 004 我的第一个页面

编程笔记 html5&css&js 004 我的第一个页面 一、基本结构二、HTML标签三、HTML元素四、HTML属性五、编写第一个网页六、使用VSCODE小结 开始编写网页&#xff0c;并且使用第一个网页成为一个母板&#xff0c;用于完成后续内容的学习。有一个基本要求&#xff0c;显示结…

linux cat命令增加-f显示文件名功能

在使用cat命令配合grep批量搜索文件内容时&#xff0c;我仅仅能知道是否搜索到&#xff0c;不知道是在哪个文件里找到的。比如cat ./src/*.c | grep full_write,在src目录下的所有.c文件里找full_write,能匹配到所有的full_write&#xff0c;但是不知道它们分别在哪些文件里。于…

Spring Boot+RocketMQ 实现多实例分布式环境下的事件驱动

为什么要使用MQ&#xff1f; 在Spring Boot Event这篇文章中已经通过Guava或者SpringBoot自身的Listener实现了事件驱动&#xff0c;已经做到了对业务的解耦。为什么还要用到MQ来进行业务解耦呢&#xff1f; 首先无论是通过Guava还是Spring Boot自身提供的监听注解来实现的事…

【动画视频生成】

转自&#xff1a;机器之心 动画视频生成这几天火了&#xff0c;这次 NUS、字节的新框架不仅效果自然流畅&#xff0c;还在视频保真度方面比其他方法强了一大截。 最近&#xff0c;阿里研究团队构建了一种名为 Animate Anyone 的方法&#xff0c;只需要一张人物照片&#xff0…

观察者模式概述

观察者模式,它用于建立一种对象与对象之间的依赖关系&#xff0c; 一个对象发生改变将自动通知其他对象&#xff0c; 其他对象将相应做出反应。在观察者模式种&#xff0c;发生改变的对象称为观察目标&#xff0c; 而被通知的对象称为观察者&#xff0c;一个观察目标可以对应多…

【SD】IP-Adapter 进阶 - 画风融合【3】

生成图片大小&#xff1a;1024x576 将图片一的画风转到图片2中。 测试一&#xff1a; control-1:IP-Adapter 导入图片1 仅调整大小&#xff08;拉伸&#xff09; control-2:canny 导入图片2 仅调整大小&#xff08;拉伸&#xff09; best qualit…

FPGA高端项目:SDI 视频+音频编解码,提供工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的 GT 高速接口解决方案我目前已有的SDI编解码方案 3、设计思路和框架设计框图GV8601A均衡EQGTX 时钟要求GTX 调用与控制SMPTE SD/HD/3G-SDISMPTE SD/HD/3G-SDI 接收SMPTE SD/HD/3G-SDI 发送 SDI 视频接收数据处理SDI 音频接收-…

Mysql实时数据同步工具Alibaba Canal 使用

目录 Mysql实时数据同步工具Alibaba Canal 使用Canal是什么&#xff1f;工作原理重要版本更新说明 环境准备安装Canalwindow Java : Canal Client 集成依赖编码 工作流程其他学习canal资料 个人主页: 【⭐️个人主页】 需要您的【&#x1f496; 点赞关注】支持 &#x1f4af; M…