【Linux】冯.诺依曼体系结构与操作系统

news2024/11/26 4:30:09
环境:centos7.6,腾讯云服务器
Linux文章都放在了专栏:【 Linux 】欢迎支持订阅 🌹

冯.诺依曼体系结构

什么是冯诺依曼体系结构?

我们如今的计算机比如笔记本,或者是服务器,基本上都遵循冯诺依曼体系结构,所谓冯诺依曼体系实际上就是我们的计算机是由以下这些硬件构成:输入设备存储器运算器控制器输出设备

输入设备:计算机的本质实际上就是 对数据进行计算,通过 输入设备来采集信息。常见的输入设备比如:键盘、鼠标、网卡、磁盘...
存储器:这里主要是指 内存,它的存在能 大大的提高计算机的运行效率
运算器+控制器:即 中央处理器CPU,对数据进行计算
输出设备将数据提供给用户,常见的比如:显示器、磁盘、网卡等

我们一般将输入设备与输出设备统称为外设。并且同一个设备既可以是输入设备,也可以是输出设备(比如磁盘、网卡等)

上面说了,正是因为存储器,也就是内存的存在,所以我们的计算机的整体效率才会整体得到提升,那么为何会这样呢?接下来我们谈一谈内存存在的意义。

为什么要有内存

假如没有内存的存在,实际上我们的外设的运行效率(比如磁盘)相较于cpu来说,是非常慢的,而此时计算机的整体效率并不是以cpu为主,而是以外设为主。举个例子来说,一桶水,最多能装多少水并不是由最长的那块木板所决定的,而是由最短的那块木板决定。

内存存在的意义

内存可以存储数据,正是因为内存的存在,使得OS可以对数据做预加载。这样CPU后面再进行计算时,就不需要访问外设,只需要伸手向内存要数据就可以了,这样计算机的整体运行效率就会以内存的运行效率为主。而内存的运行效率是大于外设的,因此,我们计算机的运行效率由于内存的存在,得到了很大的提升。因此,我们也可以这么说:内存的存在是为了适配外设与CPU的速度不匹配问题

得到结论:

  1. 在数据层面,一般CPU不会直接和外设进行直接沟通,而是直接只和内存打交道!也就是说,我们的程序在运行时,必须要将数据加载到内存中,这是由硬件体系结构决定的。(用硬件的方案来解释软件的行为)

  1. 在数据层面,外设只和内存打交道

了解冯诺依曼体系结构后,我们便可以回答这么一个问题:

在硬件层面,单机和跨主机之间数据流是如何流向的?

在单机方面很好理解,遵循 冯诺依曼体系,在跨主机之间,数据流又是如何流向的呢?就比如说,张三给李四通过qq,发送信息,不考虑网络的情况下,那么数据流的流向是什么?其实也是遵循冯诺依曼体系,两台计算机之间的数据流向,我们可以 将这两台计算机看作两个冯诺依曼体系
张三通过键盘(外设)输入信息,信息加载到内存,被cpu经过计算后再返回给内存,再从内存输出到显示器,此时张三自己的计算机上面就可以看到自己发送的信息。该信息通过网卡,被李四接收,再被加载到内存,然后cpu进行计算,再返回给内存,然后输出到李四的显示器上,此时李四就可以看到张三发送的信息。

跨主机之间数据流流向

我们知道,计算机的效率得到提升得益于数据会被预加载到内存,那么这个预加载是由谁来完成的呢?实际上就是我们的操作系统,接下来我们来谈一谈操作系统。

操作系统(os)

什么是操作系统?

任何计算机系统都包含一个基本的程序集合,即操作系统。笼统的说,操作系统包含:操作系统内核(进程管理、内存管理,文件管理,驱动管理)与其它程序(函数库、shell程序等)。

我们所知的常见的有Linux、Windows、unix、MAC等

操作系统的作用

操作系统是一款软件,为我们人服务的,OS对软硬件资源进行管理,从而为用户提供良好(安全、稳定、高校、功能丰富)的执行环境。

这里我们来谈一谈什么是管理?

先来说结论:管理的本质就是:先描述,再组织(这六个字将贯穿以后的学习)

任何一个庞大的系统,都需要有特定的人或事物进行管理。就比如说我们的学校系统,这里不考虑一些官方因素。整个学校是由我们的校长来进行管理,而我们作为学生,只是作为被管理的对象。我相信大家肯定没怎么见过校长,那么他是如何对我们进行管理呢?答案是 通过管理我们学生录入到教务系统的数据,从而达到管理我们学生。那么校长又是如何拿到我们的数据的呢?答案是通过 辅导员。
因从我们可以说,校长想要管理我们,并不需要与我们直接沟通,而是通过辅导员拿到我们的数据,从而通过管理这些数据来达到管理我们。这里,校长就相当于 操作系统,这些 学生就相当于软硬件资源

这里再来总结一下:

  1. 管理的本质:先描述,再组织。

  1. 管理与被管理者之间不需要直接沟通

  1. 操作系统如何管理软硬件资源?答案:先描述,再组织(获取软硬件资源的内容和属性到某种特定的结构体里,再通过某种数据结构进行组织。这样对软硬件资源的管理就变成了对数据结构的增删查改

系统调用

虽然 操作系统为我们提供功能丰富的服务,但是操作系统并不信任我们,也就是说 我们无法直接使用操作系统。就好比整个银行系统,银行为人类提供服务,但是银行并不信任人们,我们在存钱的时候银行总不能说:哎伙计,我信任你,你登录我们的系统自己修改一下数据吧。或者干脆你直接来我们金库,把你的二百元放在旁边人家的二百万附近。这肯定是不现实的。
那么银行是怎么供人使用的呢?答案 是通过一个个的窗口,不同的使用需求去不同的窗口。 操作系统也是如此,会往外提供各种接口,来供人们使用。这就是系统调用!

但是由于系统调用的使用成本过高,因为并不是人人都懂如何使用,所以那些大牛们就往上又设计出来了比如图形化界面、shell外壳等,然后再往上,就是程序员开发好的简洁高效的执行环境以提供群体用户使用。

计算机软硬件体系结构

系统调用的好处:保证了OS的封装性,使用户不能直接访问OS,但同时又保证了OS可以给人提供特定的功能!


end.

生活原本沉闷,但跑起来就会有风!🌹

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

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

相关文章

记一次web漏洞挖掘随笔

最近挖了一些漏洞。虽然重复了,但是有参考价值。这边给大家分享下。漏洞重复还是很难受的,转念一想,人生从不是事事如人意的,漏洞重复忽略,不代表失败。先来后到很重要,出场顺序很重要。1.某站rce 忽略理由…

Docker----------DockerFile解析

1. 是什么 Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。 官网:https://docs.docker.com/engine/reference/builder/ 1.编写Dockerfile文件 2.docker build命令构建镜像 3.docker run依镜像运行容器实例…

第47天|LeetCode392. 判断子序列、LeetCode392. 判断子序列

1.题目链接:392. 判断子序列 题目描述: 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如&…

Barra模型因子的构建及应用系列四之Residual Volatility因子

一、摘要 在前期的Barra模型系列文章中,我们构建了Size因子、Beta因子和Momentum因子,并分别创建了对应的单因子策略。本节文章将在该系列下进一步构建Residual Volatility因子,该策略在2022年以来跑赢大盘指数,且具有波动小的特…

Linux内核内存管理

目录 一、内核内存管理框架 二、内核中常用动态分配 2.1 kmalloc 2.2 vmalloc 2.3 kmalloc & vmalloc 的比较 2.4 分配选择原则: 三、IO访问-------访问外设控制器的寄存器 四、led驱动 1. 读原理图 2. 查阅SOC芯片手册 3. 编写驱动 一、内核内存管理…

Leetcode之消失的数字轮转数组

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、消失的数字一、消失的数字 二、旋转数组 提示:以下是本篇文章正文内容,下面案例可供参考 一、消失的数字 这题找出消失的一个数字&#…

自行车出口欧盟CE认证,新版自行车标准ISO 4210:2023与ISO 8098:2023发布

2023年1月,国际标准化组织ISO发布了新版“自行车以及儿童自行车的测试标准”,即ISO 4210:2023以及ISO 8098:2023,用于取代了SO 4210:2015以及ISO 8098:2015。新版标准一经发布,立即生效。欧盟标准化委员会C…

使用 Python 抓取和优化所有网站图像

,我发布了一个通过FTP自动优化新图像的教程。这次我们将抓取整个网站,并在本地优化我们遇到的图像,按URL组织。请注意,这个简短但中级的脚本不适用于大型站点。首先,所有图像都转储到一个文件夹中。为每个页面创建一个…

ASP.NET 网站开发(联合增,删,改,查)

联合多表查询查询: linqDBDataContext db new linqDBDataContext(); stu d db.stu.Where(p > p.sid 2).FirstOrDefault(); if (d ! null) { var Marks d.marks; GridView1.DataSource Marks; GridView1.DataBind(); db.Su…

理解B树及B+树、B*树

目录 一.B树概念 二.B树插入思路 二.B树分部实现 1.树节点类 2.B树成员结构 3.查找函数 4.插入函数(核心) 5.插入关键值 6.中序遍历(有序) 三.B树实现总代码 四.B树性能分析 五.B树和B*树 1.B树 2.B*树 3.总结 六…

Android上架构建KeyStore应用签名

Android上架构建KeyStore应用签名Android上架构建KeyStore应用签名构建签名生成密钥读取填写使用Android上架构建KeyStore应用签名 我们的应用在上架前需要构建应用签名,使用的是Java进行构建 构建签名 需要有Java环境,注意尽量使用JDK8!使…

CIMCAI super unmanned intelligent gate container damage detect

世界港航人工智能领军者企业CIMCAI中集飞瞳打造全球最先进超级智能闸口无人闸口ceaspectusG™视频流动态感知集装箱箱况残损检测箱况残损识别率99%以上,箱信息识别率99.95%以上World port shipping AI leader CIMCAIThe worlds most advanced super intelligent gat…

RK3588 PMIC/Power电路 PCB 设计指南

1、VDD_LOGIC,VDD_GPU,VDD_NPU,VDD_CPU电源的 DC-DC 远端反馈设计。100ohm反馈电阻需要靠近输出电容放置,电阻一端连接到 DC-DC 输出电容,另一端连接到PMIC 的VOUT 反馈脚上,并同时连接到 RK3588 电源管脚同…

网络信息安全(四)

IIS WEB服务器 服务器配置静态IP 安装WEB服务软件 打开软件 检查80端口是否打开 DNS解析不同域名站点 新建两个网页京东和淘宝 安装DNS组件并创建两个区域 新建主机 XP上指定DNS 正常情况下同一个服务器上一个端口只提供一个服务 添加主机头值 XP验证 IIS FTP服务器 FTP工作模式…

【20230221】【剑指1】排序(中等)II

1.最小的K个数sort直接用太无脑了,虽然底层实现也是快排,但是快排还是得会写啊快速排序快速排序算法有两个核心点,分别为 “哨兵划分” 和 “递归” 。哨兵划分操作: 以数组某个元素(一般选取首元素)为 基准…

教你编写SQLMap的Tamper脚本过狗

测试环境 最新版某狗 测试方法 安全狗其实是比较好绕的WAF,绕过方法很多,但这里我们就用一种:注释混淆 一招鲜吃遍天 注释混淆,其实就是在敏感位置添加垃圾字符注释,常用的垃圾字符有/、!、*、%等 这里再解释一下…

nodejs基于vue高校学报论文在线投稿系统

在新发展的时代,众多的软件被开发出来,给用户带来了很大的选择余地,而且人们越来越追求更个性的需求。在这种时代背景下,高校只能以工作人员为导向,以稿件的持续创新作为高校最重要的竞争手段。 可定制框架:ssm/Sprin…

铅酸蓄电池废水除铅项目,出水做到0.05mg/l

某集团公司铅酸蓄电池废水除铅项目 工艺选择 沉淀系统过滤系统螯合树脂除铅系统 工艺原理 铅离子沉淀后进入螯合树脂除铅树脂 项目背景 铅酸蓄电池具有可逆性、电压特性平稳、放电量大、造价低廉等优点,应用于国民经济各个领域,但在其生产过程中&…

vue3 布局样式的原理

style scoped <style scoped > 它的 CSS 只作用于当前组件中的元素&#xff0c;如果子组件只有一个根元素&#xff0c;也会被渗透 原理&#xff1a; 当我们再组建中使用scoped时&#xff0c;vue会自动为组件中所有元素生成一个随机的属性&#xff0c;形如&#xff1a;da…

01背包—动态规划

一、背包问题概述&#xff1a; 二、暴力解法&#xff1a; 重量价值物品0115物品1320物品2430 背包最大容量为4。 每一个物品有两个状态&#xff0c;“取”或者“不取”。利用回溯法可以暴力枚举所有物品的状态的排列组合状态&#xff0c;与背包最大容量比较就可以求得最大的价…