冯诺依曼体系结构与操作系统(Linux)

文章目录

  • 前言
  • 冯诺依曼体系结构(硬件)
  • 操作系统(软件)
  • 总结


前言

冯诺依曼体系结构(硬件)

在这里插入图片描述
上图就是冯诺依曼体系结构图,主要包括输入设备,输出设备,存储器,运算器,控制器。
每一个模块都是独立的。

我们分别详细介绍一下这几个模块
CPU:运算器和控制器组成。
存储器:本质就是内存。
输入设备:主要用于输入,包括键盘,鼠标等等
输出设备:主要用于输出,包括显示器,话筒,声卡等等。
对于这些硬件设备来说,有的只做输入,有得只做输出,有得二者兼顾。

这几个模块是通过一个叫做总线的东西连接起来的
在这里插入图片描述
我们连接起来有什么用呢??
主要是为了数据的流动,也就是数据之间的来回拷贝。
数据之间拷贝的效率就成为计算机效率的一大指标

内存

我们详细看一下内存。
如果我们没有内存是否可以呢??
输入输出设备直接与CPU进行联系,在早期的时候就是这么做的。
我们都知道CPU运行是非常快的,但是输入输出输出设备是比较慢的,根据木桶效用。
这相关的速度就是按照输入输出的速度来的。

我们介绍一下CPU的缓存。
在这里插入图片描述

距离CPU越近,单体容量越小,造价越高,效率越高。
距离CPU越远,单体容量越大,造价越低,效率越低。

如果我们把电脑上配件都设计成寄存器的,那不就非常快了!!!
但是,这样造价确实十分贵的。

如果我们在二者之间加入一个内存呢??
输入输出设备与内存相连,内存与CPU相连。
内存的速度介于二者之间,使二者尽量达到一种平衡。
最终的效率就以内存的效率为主了。
一切设备都只和内存打交道

内存可以把输入的一些资源加载到内存,进行预先加载。CPU如果要用,就直接从内存读取就可以。
CPU将读取的数据放在内存中,进行缓存,最后交给输出设备。
内存可以看作一个非常大的缓存,介于设备和CPU之间

操作系统(软件)

我们在打开电脑的时候,首先需要进行加载一段时间,这个加载的软件就叫做操作系统。
操作系统是一款进行软硬件资源管理的软件。

我们首先理解一下管理
管理的人叫做决策者,被管理的人叫做执行者,

我们通过这张图片来理解一下相关概念。
在这里插入图片描述

我们首先看一下操作系统以及一下部分。
底层硬件就是我们上面介绍的冯诺依曼体系。

每一款硬件都包括对应的驱动程序,驱动程序是控制底层硬件的,我们通过驱动程序就可以知道这个硬件是读的还是写的,还有相关状态信息等等。驱动程序都是需要被安装到计算机上的,比如我们的鼠标,需要先插入到电脑上,等待几秒钟才可以被使用。
电脑上很多驱动程序都已经进行内置了,比如显示器,键盘等等。

相关系统会将驱动程序和底层硬件进行打包,交给操作系统,方便操作系统对硬件进行管理。

我们可以通过一个例子进一步理解一下这三层。
操作系统就是做决策的,学生就是进行执行的人。
我们在学校上学,我们几乎没有见过校长,但是校长却把我的大学生活安排的明明白白的。
校长并不是对你这个人进行管理,而是对相关的数据做管理,比如你是几年级的,学号是什么,上那些课程等等。
在相关计算机上也是同样的,操作系统和底层硬件不需要见面,操作系统只需要知道相关硬件的相关数据就可以对硬件进行管理。

驱动程序就相当于辅导员,辅导员的任务就是保证校长的任务顺利的执行。
但是学校有很多学生,就相当于计算机有很多硬件,校长如何快速,高效的管理好这些学生呢???
每个学生都有基本的属性信息,建立一个结构体,把相关的数据填充上,用链表进行连接,我们之后就方便对这些学生进行管理了。在新增一些关于链表增删查改的操作,我们对学生的管理就变成了对链表的增删查改。
对于相关的硬件,也要有一个结构体,里面存放着这个硬件的信息等等,还包括一个指向下一个硬件的指针,方便操作系统就行管理。

我们把上面的过程称为先描述,在组织

我们这种原理放到语言层面也是适用的,比如c++.
c++是面向对象的语言,每一个对象我们就要先进行描述它,再通过相关的STL容器进行管理。

先描述:struct结构体
在组织:相关的数据结构

我们再来看一下操作系统及以上

我们为什么要有操作系统呢??
操作系统要对软硬件资源做管理,这样就是为了向上提供良好的运行环境。
这个良好如何理解呢??高效,安全,稳定。

我们先看一下系统调用接口,我们为什么会存在这个呢??用户为什么不能对操作系统的数据直接进行访问呢??
我们出于安全的角度,不能让用户直接对操作系统数据进行访问,这很不安全。这就像在银行取钱,要取多少钱直接去金库拿就行,谁知道这个人会不会多拿呢!!!这个系统调用接口就相当于银行的柜台,要取钱,通过银行柜台,再通过相关人员进行取钱。
系统调用接口是操作系统提供的,如何设计也是有操作系统进行设置的。这个本质就是相关的函数。

用户操作接口
系统调用接口是不方便普通人进行使用的,所以为了方便用户。把系统调用接口进行再一次封装,方便使用,这也就是相关的库。这就相当于老年人去银行办业务,用户操作接口就相当于大堂经理,专门为这些人服务。我们可以认为每个人都是这个老年人,都不太熟悉流程。

我们也不能用户直接绕过操作系统去访问硬件资源,这样操作系统的管理工作就会很难受。

我们使用这个用户操作接口也可以屏蔽库函数底层差异。
只要涉及相关硬件的使用,必须经过系统调用,比如scanf,printf。
我们使用printf在linux和wins等等各种平台下都可以正常使用,这是因为在库层面就屏蔽了底层差异,这也就是我们常说的语言的跨平台性,可移植性。

在这里插入图片描述

总结

以上就是今天要讲的内容,本文仅仅详细介绍了冯诺依曼体系结构以及操作系统相关的知识。希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~ 😘 😘 😘

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

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

相关文章

Go高级库存照片源码v5.3

GoStock – 免费和付费库存照片脚本这是一个免费和付费共享高质量库存照片的平台,用户可以上传照片与整个社区和访客分享,并可以通过 PayPal 接收捐款。此外,用户还可以点赞、评论、分享和收藏您最喜欢的照片。 下载 特征: 使用Laravel 10构建订阅系统Stripe 连接渐进式网页…

从零开始读RocketMq源码(一)生产者启动

目录 前言 获取源码 总概论 生产者实例 源码 A-01:设置生产者组名称 A-02:生产者服务启动 B-01:初始化状态 B-02:该方法再次对生产者组名称进行校验 B-03:判断是否为默认生产者组名称 B-04: 该方法是为了实例化MQClientInstance对…

白嫖A100-interLM大模型部署试用活动,亲测有效-2.Git

申明 以下部分内容来源于活动教学文档: Docs git 安装 是一个开源的分布式版本控制系统,被广泛用于软件协同开发。程序员的必备基础工具。 常用的 Git 操作 git init 初始化一个新的 Git 仓库,在当前目录创建一个 .git 隐藏文件夹来跟踪…

Windows系统下载安装ngnix

一 nginx下载安装 nginx是HTTP服务器和反向代理服务器,功能非常丰富,在nginx官网首页,点击download 在download页面下,可以选择Stable version稳定版本,点击下载 将下载完成的zip解压即可,然乎在nginx所在…

SpringBoot新手快速入门系列教程五:基于JPA的一个Mysql简单读写例子

现在我们来做一个简单的读写Mysql的项目 1,先新建一个项目,我们叫它“HelloJPA”并且添加依赖 2,引入以下依赖: Spring Boot DevTools (可选,但推荐,用于开发时热部署)Lombok(可选&#xff0c…

三相感应电机的建模仿真(2)基于ABC相坐标系S-Fun的仿真模型

1. 概述 2. 三相感应电动机状态方程式 3. 基于S-Function的仿真模型建立 4. 瞬态分析实例 5. 总结 6. 参考文献 1. 概述 前面建立的三相感应电机在ABC相坐标系下的数学模型是一组周期性变系数微分方程(其电感矩阵是转子位置角的函数,转子位置角随时…

qt 开发笔记堆栈布局的应用

1.概要 画面中有一处位置&#xff0c;有个按钮点击后&#xff0c;这片位置完全换成另一个画面&#xff0c;这中情况特别适合用堆栈布局。 //堆栈布局的应用 #include <QStackedLayout> QStackedLayout *layout new QStackedLayout(this); layout->setCurrentIndex(…

Unity Scrollview的Scrollbar控制方法

备忘&#xff1a;碰到用scrollview自带的scrollbar去控制滑动&#xff0c;结果发现用代码控制scrollbar.value无效&#xff0c;搜了一下都是说用scrollRect.verticalNormalizedPosition和scrollRect.horizontalNormalizedPosition来控制的。我寻思着有关联的scrollbar为什么用不…

Interview preparation--Https 工作流程

HTTP 传输的弊端 如上图&#xff0c;Http进行数据传输的时候是明文传输&#xff0c;导致任何人都有可能截获信息&#xff0c;篡改信息如果此时黑客冒充服务器&#xff0c;或者黑客窃取信息&#xff0c;则其可以返回任意信息给客户端&#xff0c;而且不被客户端察觉&#xff0c;…

2.3.2 主程序和外部IO交互 (文件映射方式)----C#调用范例

2.3.2 主程序和外部IO交互 &#xff08;文件映射方式&#xff09;----C#调用范例 效果显示 1 说明 1 .1 Test_IOServer是64bit 程序&#xff0c; BD_SharedIOServerd.dll 在 /Debug文件夹中 1 .2 Test_IOServer是32bit 程序&#xff0c; BD_SharedIOClientd.dll (32bit&#…

[FreeRTOS 内部实现] 事件组

文章目录 事件组结构体创建事件组事件组等待位事件组设置位 事件组结构体 // 路径&#xff1a;Source/event_groups.c typedef struct xEventGroupDefinition {EventBits_t uxEventBits;List_t xTasksWaitingForBits; } EventGroup_t;uxEventBits 中的每一位表示某个事件是否…

适用于Mac和Windows的最佳iPhone恢复软件

本文将指导您选择一款出色的iPhone数据恢复软件来检索您的宝贵数据。 市场上有许多所谓的iPhone恢复程序。各种程序很难选择并选择其中之一。一旦您做出了错误的选择&#xff0c;您的数据就会有风险。 最好的iPhone数据恢复软件应包含以下功能。 1.安全可靠。 2.恢复成功率高…

Windows下Visual Studio 中配置第一个CUDA工程

今天整NVIDIA 的CUDA 安装和第一个CUDA 代码&#xff0c;顺便添加一个有CUDA工程的空框架。 &#xff08;1&#xff09;首先确认自己的CUDA 已经安装成功 >>cmd 进入命令窗&#xff0c;在窗口输入查看cuda 是否安装成功&#xff0c;能查到CUDA的版本号&#xff0c;表示安…

基于python的数据分解-趋势-季节性-波动变化

系列文章目录 前言 时间序列数据的分解&#xff0c;一般分为趋势项&#xff0c;季节变化项和随机波动项。可以基于加法或者乘法模型。季节变化呈现出周期变化&#xff0c;因此也叫季节效应(周期&#xff09;。 一、数据分解步骤 &#xff08;1&#xff09;估计时间序列的长期…

仪器校准后出了校准证书后,是不是就代表仪器合格了?

仪器校准是一门技术活&#xff0c;对于从事生产制造的企业而言&#xff0c;是不可或缺的一环&#xff0c;因为这与产品质量密切相关。所以&#xff0c;了解仪器校准的相关知识也变得尤为重要。 在拿到校准证书后&#xff0c;是不是说明仪器合格了&#xff1f;相信不少企业品管人…

指针回顾.

指针的主要作用&#xff1a;提供一种间接访问数据的方法 1.地址:区分不同内存空间的编号 2.指针:指针就是地址,地址就是指针 3.指针变量:存放指针的变量称为指针变量,简称为指针 1.指针的定义 int *p NULL; int *q NULL; char *p NULL; double *p NUL…

PCDN技术如何提高内容分发效率?(贰)

PCDN技术通过以下方式提高内容分发效率: 1.利用用户设备作为分发节点:与传统的 CDN技术主要依赖中心化服务器不同&#xff0c; PCDN技术利用用户的设备作为内容分发的节点。当用户下载内容时&#xff0c;他们的设备也会成为内容分发的一部分&#xff0c;将已下载的内容传递给其…

STL--求交集,并集,差集(set_intersection,set_union,set_difference)

set_intersection(重要) 求两个有序的序列的交集. 函数声明如下: template<class InputIterator1, class InputIterator2, class OutputIterator>OutputIterator set_intersection(InputIterator1 _First1, //容器1开头InputIterator1 _Last1, //容器2结尾(不包含)Inp…

jenkins配置gitee源码地址连接不上

报错信息如下&#xff1a; 网上找了好多都没说具体原因&#xff0c;最后还是看jenkins控制台输出日志发现&#xff1a; ssh命令执行失败&#xff08;git环境有问题&#xff0c;可能插件没安装成功等其他问题&#xff09; 后面发现是jenkins配置git的地方git安装路径错了。新手…

加入新数据预测,基于黏菌优化算法SMA优化SVM支持向量机回归预测(多输入单输出)

加入新数据预测&#xff0c;基于黏菌优化算法SMA优化SVM支持向量机回归预测&#xff08;多输入单输出&#xff09; 1.数据均为Excel数据&#xff0c;直接替换数据就可以运行程序。 2.所有程序都经过验证&#xff0c;保证程序可以运行。 3.具有良好的编程习惯&#xff0c;程序…