【Linux进阶之路】冯诺依曼体系结构与操作系统

news2024/11/27 0:39:21

前言

存储器与CPU

 在正式介绍今天的话题之前,博主先来带大家搞清楚一些硬件的概念,方便接下来的理解。

存储器,顾名思义就是用来存储的设备,那在计算机里,存储器包含什么呢

答:内存 + 外存(辅存)

内存与外存里面又有啥呢? 先来谈第一个内存,涉及到内存,可能不少小伙伴可能会想到主存,有人说内存和主存说是一个东西,这是基于现实的角度考虑的,其实严格从学术的角度的来说内存包含主存和高速缓存(Cache) ,那主存里面又有啥呢?

答:ROM和RAM

说明:
ROM,全名——read only memory(只读存储器),是内部存储器的一种,其特点是只能读取,用来存放不可更改的电脑的出厂信息。至于跟硬盘的区别,博主下面一块讲。
RAM,全名——random access memeory(随机存取存储器),一般叫做运行内存,是与CPU直接交换数据的内部存储器。其特点是断点数据丢失。

拓展知识:

RAM和ROM都采用的是半导体存储介质,使计算机的运行速度能够得到很大的提升。RAM还包括SRAM(static ~,全称动态随机存取存储器)和DRAM(dynamic ~,全称静态随机存取存储器),ROM后面又发展产生了EPROM与EEPROM(可以进行修改,不过命名方式沿用了ROM,所以光看意思有点不明白),后来又发展有了NAND FLASH闪存,这种技术应用于U盘和固态硬盘。所以ROM和固态硬盘是有关系的,但ROM不等于固态硬盘,只是固态硬盘采用的ROM发展产生的新技术,因此后来的商家又将这种采用这种技术的存储器称为ROM,所以才有了今天的概念混淆。

OK,我们再来谈第二个部分——外存,那外存包含啥呢?

答:光盘,U盘,磁盘,磁带。

磁带,以前英语听力想必都用过,光盘,想必小时候看电视也都用过,U盘,是采用NAND FLASH闪存技术,延伸出的应用。那我们重点来说说磁盘,磁盘分为两类——硬盘和软盘。那硬盘里面又包括机械硬盘(Hard Disk Drive,简称HDD),固态硬盘(Solid State Drive,简称SSD),混合硬盘(hybrid harddrive,简称HHD)——基于HDD诞生的新硬盘。软盘,由于基盘是软的所以被称为软盘,通常用于搬运数据

这里放几张图便于理解:

机械硬盘:
在这里插入图片描述
固态硬盘:
在这里插入图片描述
混合硬盘:
在这里插入图片描述
软盘:
在这里插入图片描述

再来谈谈CPU,这个概念,我们用一张图来说明。

在这里插入图片描述

铺垫了这么多概念,那么话不多说,正式进入今天的正题。

一、冯诺依曼体系结构

基本概念

 为了更好的理解冯诺依曼体系结构,我们点击先来了解一下约翰 · 冯诺依曼大佬,先来了解这个人,再来了解其思想效果会更好。

冯诺依曼体系结构源自一篇文章First Draft of a Report on the EDVAC,简称《第一份草案》。

要知道那时候还没有计算机,可谓这篇文章开辟计算机的先河,也为程序员职业的发展奠定了基石。

我们先来看看冯诺依曼体系结构长啥样子~

在这里插入图片描述
这里说明一下:冯诺依曼体系结构在当时只是一个抽象的概念,在当今这个时代我们可以用具体的概念代入进行理解,这也是下面我我们的讲解方式。

存储器

  • 存储器,在上面我们统一讲过,那在这里我们用什么理解比较合适呢?答案是内存。为啥是内存,而不是磁盘这样的存储器呢?答案也很简单,内存的数据的访问速度较快,能更好的适配CPU,更好地与CPU进行交换数据,而磁盘是外存,数据的读取和写入较慢,不适合与CPU进行交换数据。

在这里插入图片描述

说明:随着时代的发展,有的高速缓存会集成在CPU内部。
寄存器的速度:10ns
高速缓存的速度:20ns
内存的速度:200ns
硬盘的速度:1ms

拓展知识:

1.为了提高性价比,降低计算机的造价成本,所以采用了上面的金字塔型的存储结构,而如果全采用寄存器,这样造价会异常的昂贵,不利于计算机的传播。
2.计算机硬件的加载顺序为:先预加载数据到内存中,然后CPU从内存中拿数据,CPU拿的途中,内存中又可以放其它程序的数据,这样处理数据效率会提升许多,再结合分级缓存技术,这样就使计算机的成本大大降低,利于计算机的传播。

有的小伙伴可能产生疑问,既然CPU的速度那么快,为啥不采取下图的结构呢?
在这里插入图片描述
这就涉及到一个木桶原理~
在这里插入图片描述

  • 输入输出设备的访问速度很慢,会降低CPU处理数据的效率,就好比任务分工合作,有一个拖油瓶,导致等了好久,任务才做完。这里的输入输出设备就好比拖油瓶。

我们再提一个问题,就是我们之前实战写的进度条小程序,会不会缓存,在哪进行缓存呢?

答:我们写的进度条是可执行程序,需要预加载到内存中,在运行过程中,内存与CPU进行交换数据,CPU将处理的数据再写回内存,那内存里的某个区域就是缓冲区,只不过没有刷新,当刷新之后再进行输出,就显现出了我们看见的样子。

输入输出设备

为了与计算机进行交互,我们先得输入数据,如何输入数据呢?用输入设备。

  • 常见的输入设备 : 键盘,鼠标,话筒,摄像头,磁盘,网卡。

说明:获取文字可以从键盘读取,移动鼠标的动作的信息从鼠标读取,声音从麦克风中读取,头像信息从摄像头中获取,发送文件,文件在磁盘中,所以信息从磁盘中获取,接收朋友消息从网卡上获取。

为了得到计算机的反应,计算机得输出数据,如何输出数据呢?用输出设备。

  • 常见的输出设备:显示器,耳机,磁盘,网卡。

说明:将接收的文件需要写入磁盘,将信息需要通过网卡进行发送。

这里我们可以看到有的设备是纯的输入或者输出,有的设备既是输入也是输出

但这些设备都是独立的,那如何实现计算机的功能呢?这就需要将这些设备通过"线"连接起来,那我们又将这些线进行分类,进行输入输出的,我们叫做IO总线,进行数据交互的我们叫做系统总线

到这里我们为了更进一步的理解,提一个问题:你跟你的好朋友如何通过qq进行交互呢?(不考虑网络,只基于冯诺依曼体系结构来说明)

答:在这里插入图片描述

  • 总结:冯诺依曼体系结构,主要是从硬件的角度,抽象的解释了一台计算机的五大部件以及之间的运行逻辑,下面我们从软件的角度来继续理解操作系统的概念。

二、操作系统

操作系统是什么呢?

百度给出答案:

操作系统(英语:Operating System,缩写:OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。

  • 总结一句话:操作系统是一款管理软硬件的系统软件。

我们从两个问题来进行理解操作系统,为什么操作系统要进行管理?操作系统是如何实现管理的?

我们先来解决第一个问题,首先要解决这个问题,我们先从硬件的角度出发,操作系统能够更好的管理好硬件资源,那管理好硬件资源的目的肯定是为了给用户提供更好的运行环境,这里的更好指的是稳定,安全,高效

那这里的用户指的是谁呢?其实分为普通用户和程序员。普通用户使用的是程序员开发出来的软件,比如抖音和B站,王者荣耀,金铲铲等软件,而程序员使用的是开发语言比如C、C++等语言进行开发,那如何使用操作系统呢?这其实涉及到操作系统的结构,如下图。

在这里插入图片描述
 我们可以看出其实是使用操作系统的接口进行访问的。

那为啥不直接访问底层硬件呢?

  • 前提是你能看懂吗?由于太复杂了,难度呈指数型上升,所以不可直接访问。

 那能不能直接访问操作系统呢?

  • 答案:不能。这就好比开银行,你要让群众得到服务,在银行存钱和取钱,也要防止群众,从银行抢钱,因为群众里面有坏人啊!因此,银行的窗户都是防弹的,就是为了防止坏人,但会设置一个小窗口进行服务。操作系统也是如此,为了防止恶意用户篡改操作系统,但又考虑到为用户提供服务,因此操作系统保留了一些接口,供用户获取操作系统的数据,这些接口是由C编写的,任何访问操作系统的行为都必须通过系统调用接口进行实现!

比如:调用printf函数接口,底层上就是调用对应的系统调用接口,进而实现对硬件资源的使用,这里是显示器,实现的是在显示器上打印相应的内容。

我们接着讨论第二个问题——操作系统是如何实现管理的?

我们举一个实际的例子进行分析,小伙伴可能大多数都是学生,那么在学校里面有最典型的几种角色,学生(被管理者),校长(管理者),辅导员/老师(执行者)。

在这里插入图片描述

我们从常识可以知道,学生一般是见不到校长的,可能从开学到毕业只见过一两次,也就是说管理者是不需要见到被管理者的

那校长在不见面的情况下是如何管理学生呢?

比如,一个学生获得了一项全国比赛的第一名,这时校长从老师的传递的数据中,得到了这个消息,于是就让老师给这位学生进行颁奖。这样在不见面的情况下,是可以进行管理学生的。那这个过程其实是通过获取到的数据进行管理,那如何获取数据呢?通过执行者进行获取数据

那如果学生有几万个,校长该如何管理数据呢?

这时恰巧校长是一名程序员,学过数据结构,就会先用表格的方式进行管理,比如学生的属性有姓名,性别,身份证,学号等信息,然后派老师去统计这些信息,然后汇成表格,这时就可以比较方便的查找,但校长可是程序员!于是校长就利用自己的编程技术,将这些数据进行封装成一个结构体,通过链表的形式将每一个学生链接起来。这样更易进行管理。

这样将数据通过结构体进行封装的过程,我们叫做描述,将结构体形成链表的形式,我们一般叫做组织。

  • 那么这样先组织,再管理的过程。就是操作系统实现管理的方式。

总结

 今天的分享就到这里了,如果觉得文章不错,点个赞鼓励一下吧!我们下篇文章再见

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

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

相关文章

【C语言初阶(14)】扫雷游戏(优化:标记地雷+自动展开)

文章目录 Ⅰ游戏规则Ⅱ 游戏实现思路Ⅲ 游戏实现步骤⒈菜单界面⒉创建棋盘① 创建两个棋盘② 防止数组越界 ⒊棋盘初始化⒋棋盘的打印⒌布置地雷⒍玩家排查雷实现步骤⒎计算 x,y 周围有多少雷⒏展开非雷区⒐标记地雷⒑取消标记 Ⅳ 模块化代码实现⒈test.c⒉game.h⒊…

TCP协议下的三大协议的验证实验

系列文章目录 数通王国历险记(1) 前言 一,我们要先知道PDU是什么? 二、TCP协议下的三大协议的验证实验 1.FTP的验证实验 1,拓扑图 2.将lsw4配置一下 3,FTP服务器端开启FTP服务: 4&#x…

Jenkins的几种安装方式以及邮件配置

目录 Jenkins介绍 Jenkins下载、安装 一、通过war包安装 二、通过docker安装 jenkins 容器中添加 git, maven 等组件 jenkins 容器中的公钥私钥 在 jenkins 容器中调用 docker 简单的方式启动 Docker server REST API 一个 jenkins 示例 三、通过Homebrew安装 访问Je…

静态库 的制作与使用

文章目录 重要命令程序组成静态库制作流程静态库的使用 gcc main.c -o APP -I(i) 头文件路径 -l(L) 库名字(xxx) -L 库路径 重要命令 gcc -o -I(大写i) -l(小写L) -L cp:复制文件 -r 递归,用于复制文件夹所有文件 mv:移动文件 程…

代码随想录算法训练营第53天 | 动态规划 part14 ● 1143.最长公共子序列 ●1035.不相交的线 ● 53. 最大子序和

# 1143.最长公共子序列 和718最长公共子数组 对比 本题可以不连续 int longestCommonSubsequence(string text1, string text2) {vector<vector<int>> dp(text1.size() 1, vector<int>(text2.size() 1, 0));for (int i 1; i < text1.size(); i) {for…

陆地生态系统植被净初级生产力(NPP)—CASA模型

由于全球变暖、大气中温室气体浓度逐年增加等问题的出现&#xff0c;“双碳”行动特别是碳中和已经在世界范围形成广泛影响。碳中和可以从碳排放&#xff08;碳源&#xff09;和碳固定&#xff08;碳汇&#xff09;这两个侧面来理解。陆地生态系统在全球碳循环过程中有着重要作…

Swagger、knife4j简介

Swagger 简介 Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(API Documentation & Design Tools for Teams | Swagger)。 它的主要作用是&#xff1a; 使得前后端分离开发更加方便&#xff0c;有利于团队协作 接口的…

leetcode 1218. Longest Arithmetic Subsequence of Given Difference(给定差值的最长算术子序列)

给数组arr和一个差值difference, 不打乱arr中数字的顺序&#xff0c;抽取最长的子序列&#xff0c;使序列中每相邻两个元素的差值为difference. 求满足条件的最长子序列的长度。 思路&#xff1a; DP 因为差值difference是固定的&#xff0c;每抽取一个元素&#xff0c;它前…

帆软报表分页预览如何增加一种新的导出类型。

如图,这里要在 导出下拉菜单中新增一个签章PDF的导出。 通过分析源码,发现这个菜单的定义是再报表预览加载的html页面里面 咋们如何再这里面插入我们新加的菜单项呢。 首先该页面的内容是通过MemXPageActor的flushHtml方法产生的。所以我们需要继承MemXPageActor来重载flus…

ios h5底部安全区适配

相信在ios 移动端开发h5前端童鞋 肯定会知道 就是 很多ios款型的手机 底部有一条黑色的杠杠 或者白色哎 就是会遮挡一部分我们的元素 特别是底部需要悬浮一些按钮的时候 这个就是ios的底部安全区域 对应的还有顶部的哈 这里就说下 底部的 <meta name"viewport"…

在Linux中使用curl访问EasyCVR页面,返回报错Unauthorized是什么原因?

EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力&#xff0c;比如&#xff1a;视…

第四章 数学知识(四)——容斥原理与博弈论

文章目录 容斥原理博弈论SG函数 容斥原理练习题890. 能被整除的数 博弈论练习题891. Nim游戏893. 集合-Nim游戏892. 台阶-Nim游戏894. 拆分-Nim游戏 容斥原理 若干个相交集合&#xff0c;它们的并集中存在多少个元素&#xff1f; 假设n为所有集合的元素个数相加&#xff0c;因…

vue img 图片损坏时展示替图片

场景&#xff1a;图片地址找不到时&#xff0c;会展示如图一&#xff1b;虽然没什么大影响&#xff0c;但是有点丑&#xff0c;需求是想在图片损坏时展示替补图片&#xff0c;如图二。 代码实现&#xff1a;给img标签加error事件 <img :src"item.imageUrl" :alt&q…

android JSBridge的加载时机问题

https://github.com/lzyzsd/JsBridge 也算是比较悠久和使用了。 可供参考的android和IOS&#xff0c;以及前端的使用 https://segmentfault.com/a/1190000018208609 遇到的问题&#xff1a; 比如&#xff1a; 从前端在加载WebView的时候&#xff0c;执行了某些动作&#xff0c…

【Java/大数据】Kafka简介

Kafka简介 Kafka概念关键功能应用场景 Kafka的原理Kafka 的消息模型早期的队列模型发布-订阅模型Producer、Consumer、Broker、Topic、PartitionPartitionoffsetISR Consumer Groupleader选举Controller leaderPartition leader producer 的写入流程 多副本机制replicas的同步时…

介绍AI绘画课,让智能工具助力创作 释放无限想象力 助你成为绘画大师

演示地址&#xff1a; www.runruncode.com/portal/article/index/id/19458/cid/81.html 画画是一项有趣的活动&#xff0c;它让人充满无限可能。对许多人来说&#xff0c;画画既是一种放松的方式&#xff0c;也是一种与创意、文化和艺术联系的途径。如果你是一个初学者&#x…

《深度学习推荐系统》笔记

目录 一、推荐系统是什么1.作用和意义2.推荐系统的架构2.1 逻辑架构2.2 技术架构 二、传统的推荐系统方法1. 协同过滤算法1.1 userCF&&ItemCF1.3 矩阵分解算法 2. 逻辑回归算法3. 因子分解机3.1 POLY2模型3.2 FM模型3.3 FFM模型3.4 小结 4. 组合模型4.1 GBDTLR组合模型…

valle代码过程

github代码链接 https://github.com/lifeiteng/vall-e/tree/main1.PyTorch pytorch官网 https://pytorch.org/指令 conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidiapip install torchmetrics0.11.12.fbank pip install librosa0.8.1…

前端vue入门(纯代码)33_缓存路由组件

如果我一贫如洗&#xff0c;你将会是我最后一件行李。 【31.Vue Router--缓存路由组件】 背景&#xff1a;在Cartoon组件的input框&#xff0c;输入了一些数据的时候&#xff0c;但是&#xff0c;当我切换到Stars组件的时候&#xff0c;那么Cartoon组件就会被销毁&#xff0c…

易基因“多区域DNA甲基化检测探针设计及其检测方法”获专利授权!

大家好&#xff0c;这里是专注表观组学十余年领跑多组学科研服务的易基因。 DNA甲基化是表观遗传学研究中&#xff0c;修饰最为稳定&#xff0c;含量最为丰富&#xff0c;对基因调控最为活跃、途径最为广泛的一种修饰。不同基因区域或位点的修饰与胚胎发育、疾病发生和发展密切…