『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.  组织起来,用链表或其他高效的数据结构

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


🎁结语: 

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

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

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

相关文章

虚函数的讲解

文章目录 虚函数的声明与定义代码演示基类Person派生类Man派生类Woman 测试代码动态绑定静态绑定访问私有虚函数总结一下通过成员函数指针调用函数的方式 虚函数的声明与定义 虚函数存在于C的类、结构体等中,不能存在于全局函数中,只能作为成员函数存在…

C# MVC +Layui侧边导航栏的收缩及展开

目录 1、头部代码 2、侧边栏&#xff08;例子只写了一级导航&#xff0c;需要多级可自行添加&#xff09; 3、body内容填充 4、 JS 1、头部代码 <div class"layui-layout layui-layout-admin"> <div class"layui-header"> …

MAVLINK生成自定义消息

git clone https://github.com/mavlink/mavlink.gitcd mavlinkgit submodule update --init --recursivepython -m mavgenerate出现以下界面 XML填写自定义xml路径&#xff0c;内容可以参考mavlink/message_definitions/v1.0 Out为输出路径 <?xml version"1.0"…

如何用Python批量计算Word中的算式

一、问题的提出 到了期末&#xff0c;大家都在忙着写总结、改试卷、算工作量&#xff0c;写总结可以借助于ChatGPT&#xff0c;改试卷可以用星火的自动批阅功能&#xff0c;算工作量就是一项比较棘手的问题&#xff0c;因为它涉及很多算式&#xff0c;有时需要老师用计算器算来…

Linux操作系统极速入门[常用指令](安装jdk,MySQL,nginx),以及在linux对项目进行部署。

linux概述&#xff1a; Linux是一套免费使用和自由传播的操作系统 我们为什么要学&#xff0c;Linux&#xff1f; 主流操作系统&#xff1a; linux系统版本&#xff1a; 内核版&#xff1a; 由linux核心团队开发&#xff0c;维护 免费&#xff0c;开源 负责控制硬件 发行版&…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之线性布局容器Row组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之线性布局容器Row组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Row组件 沿水平方向布局容器。 子组件 可以包含子组件。 接口 Row(…

机器学习深度学习面试笔记

机器学习&深度学习面试笔记 机器学习Q. 在线性回归中&#xff0c;如果自变量之间存在多重共线性&#xff0c;会导致什么问题&#xff1f;如何检测和处理多重共线性&#xff1f;Q. 什么是岭回归(Ridge Regression)和Lasso回归(Lasso Regression)&#xff1f;它们与普通线性回…

从0开始学前端day1

script setup 在script里写一个setup的作用 自动注册子组件属性和方法无需返回&#xff0c;执行完后自动更新支持props和context Vue 3中的props和context props是一种用于父子组件通信的机制。父组件可以通过props向子组件传递数据&#xff0c;子组件则可以通过props接收来…

Cucumber-JVM的示例和运行解析

Cucumber-JVM 是一个支持 Behavior-Driven Development (BDD) 的 Java 框架。在 BDD 中&#xff0c;可以编写可读的描述来表达软件功能的行为&#xff0c;而这些描述也可以作为自动化测试。 Cucumber-JVM 的最小化环境 Cucumber-JVM是BDD的框架&#xff0c; 提供了GWT语法的相…

云原生机器学习平台cube-studio开源项目及代码简要介绍

1. cube-studio介绍 云原生机器学习平台cube-studio介绍&#xff1a;https://juejin.cn/column/7084516480871563272 cube-studio是开源的云原生机器学习平台&#xff0c;目前包含特征平台&#xff0c;支持在/离线特征&#xff1b;数据源管理&#xff0c;支持结构数据和媒体标…

判断电话号码是否重复-excel

有时候重复的数据不需要或者很烦人&#xff0c;就需要采取措施&#xff0c;希望以下的方法能帮到你。 1.判断是否重复 方法一&#xff1a; 1&#xff09;针对第一个单元格输入等号&#xff0c;以及公式countif(查找记录数的范围&#xff0c;需要查找的单元格&#xff09; 2…

Python Web --Django Web框架

场景 近日写了不少Python脚本&#xff0c;例如&#xff1a;爬虫、ocr、模型训练等。我认为可以更加了解python&#xff0c;因为近一个月使用Python给我的感觉比较好&#xff0c;代码比较简单&#xff0c;比java简单很多&#xff0c;而且python自己管理内存&#xff0c;更多依赖…

Modbus RTU转Modbus TCP模块,RS232/485转以太网模块,YL102 多功能串口服务器模块

特点&#xff1a; ● Modbus RTU协议自动转换成Mobus TCP协议 ● 100M高速网卡&#xff0c;10/100M 自适应以太网接口 ● 支持 AUTO MDI/MDIX&#xff0c;可使用交叉网线或平行网线连接 ● RS232波特率从300到256000可设置 ● 工作方式可选择TCP Server, TCP Client, U…

四川天蝶电子商务有限公司助力商家赢在起跑线

随着电商行业的迅猛发展&#xff0c;越来越多的人选择在抖店上开设自己的店铺。作为一家专业的电子商务公司&#xff0c;四川天蝶电子商务有限公司为商家提供了一站式的抖店开店服务&#xff0c;帮助商家轻松开启电商之旅。 首先&#xff0c;四川天蝶电子商务有限公司拥有丰富的…

leetcode贪心算法题总结(一)

此系列分三章来记录leetcode的有关贪心算法题解&#xff0c;题目我都会给出具体实现代码&#xff0c;如果看不懂的可以后台私信我。 本章目录 1.柠檬水找零2.将数组和减半的最少操作次数3.最大数4.摆动序列5.最长递增子序列6.递增的三元子序列7.最长连续递增序列8.买卖股票的最…

事务管理解析:掌握Spring事务的必备技能!

AOP事务管理 1.1 Spring事务简介1.1.1 相关概念介绍1.1.2 转账案例-需求分析1.1.3 转账案例-环境搭建步骤1:准备数据库表步骤2:创建项目导入jar包步骤3:根据表创建模型类步骤4:创建Dao接口步骤5:创建Service接口和实现类步骤6:添加jdbc.properties文件步骤7:创建JdbcConfig配置…

八股文打卡day12——计算机网络(12)

面试题&#xff1a;HTTPS的工作原理&#xff1f;HTTPS是怎么建立连接的&#xff1f; 我的回答&#xff1a; 1.客户端向服务器发起请求&#xff0c;请求建立连接。 2.服务器收到请求之后&#xff0c;向客户端发送其SSL证书&#xff0c;这个证书包含服务器的公钥和一些其他信息…

机器学习之人工神经网络(Artificial Neural Networks,ANN)

人工神经网络(Artificial Neural Networks,ANN)是机器学习中的一种模型,灵感来源于人脑的神经网络结构。它由神经元(或称为节点)构成的层级结构组成,每个神经元接收输入并生成输出,这些输入和输出通过权重进行连接。 人工神经网络(ANN)是一种模仿生物神经系统构建的…

【操作系统】探究驱动奥秘:驱动程序设计的解密与实战

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;Linux专栏&#xff1a;《探秘Linux | 操作系统解密》⏰诗赋清音&#xff1a;月悬苍穹泛清辉&#xff0c;梦随星河徜徉辉。情牵天际云千层&#xff0c;志立乘风意自飞。 目录 &…

数据库——LAMP的搭建及MySQL基操

1.实验内容及原理 1. 在 Windows 系统中安装 VMWare 虚拟机&#xff0c;在 VMWare 中安装 Ubuntu 系统,并在 Ubuntu 中搭建 LAMP 实验环境。 2. 使用 MySQL 进行一些基本操作&#xff1a; &#xff08;1&#xff09;登录 MySQL&#xff0c;在 MySQL 中创建用户&#xff0c;并对…