【Linux系统】冯诺依曼与操作系统

2024-03-26 09:20

本文主要是介绍【Linux系统】冯诺依曼与操作系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

如图即为冯诺依曼大致的体系结构图,  我们知道这些都是由我们的计算机硬件组成

输入设备:键盘, 鼠标, 摄像头, 话筒, 磁盘, 网卡...

输出设备:显示器, 声卡, 磁盘, 网卡...

CPU:运算器和控制器

存储器:内存

在上图冯诺依曼体系结构图中我们可以看到红色箭头都代表的是数据的流动,那我们就要研究数据在我们的计算机的冯诺依曼体系结构中是怎么流动的呢?

这里给出结论:数据流动从一个设备到另一个设备,本质是一种拷贝!!!

而CPU处理数据是非常快的,那我们又可以得出一个结论:设备间的拷贝效率决定了计算机整机的效率。

 在我们的冯诺依曼结构中我们的输入输出设备是不能直接与CPU打交道的, 原因在于CPU的速度实在是太快了, 而输入输出设备又相对比较慢,这样与CPU打交道,就像木桶效应版,会拖慢整机速度。

所以我们的祖师爷冯诺依曼就想出了这么个解决办法,这就引出了内存, 让内存与CPU直接打交道,这样输入输出设备都无需与CPU交互,直接面向内存就可完成任务。

如何理解冯诺依曼的体系结构带来的意义?

 

 上图为存储金字塔。

存储:距离CPU越近,效率越高, 容量越小, 成本越高。

故冯诺依曼体系的结构不就是能够使现在的我们,家家户户都可买得起电脑。这不是大大的使计算机得到了大范围的普及,所以冯诺依曼体系结构对于我们的社会现实意义确实是重大的!

也就是说, 没有祖师爷冯诺依曼就没有现在的我们!!!

 在硬件数据流动角度, 在数据层面:

  1. CPU不和外设直接打交道,只和内存打交道
  2. 外设(输入和输出)不是直接把数据给CPU的,而是先要放入内存中

 能干什么?

1.程序运行为什么要加载到内存?

程序 = 代码 + 数据 程序“数据”都需要被CPU访问      -》CPU只会在内存中读取代码和数据

程序没有被加载到内存时, 是什么?答案是:磁盘中的二进制文件,即在外设中。

-》CPU只会在内存中读取代码和数据

这些都是冯诺依曼体系结构决定的!!!

 一种场景

 假设我通过qq这款应用程序要给小明发个消息为“你好”,数据是怎么传输的呢?

我们按照冯诺依曼体系结构来说, 即我们将通过输入设备即键盘输入数据,然后再写入内存,内存交给CPU进行加密操作, CPU还给内存, 内存再把加密后的数据交给输出设备即网卡,原因我们是在网络中传输数据, 所以需要网卡, 然后中间是一系列网络传输,由于尚未学习,略去, 经过网络传输的数据就来到接收方小明的输入设备即网卡, 然后写入到内存中, 内存交给CPU进行解密, 解密完成, 返还给内存, 内存把 数据再交给输出设备即显示器,显示到屏幕上, 这样一个在冯诺依曼体系结构下的数据传输的过程就完成了!!!

 操作系统

1.概念

操作系统本质是一款软件。

进行软硬件 资源 管理的软件

广义的理解:操作系统的内核 + 操作系统的外壳周边程序(给用户提供使用操作系统的方式)

狭义:操作系统的内核

2.结构示意图(不完整)

 如上图为体系结构的层状划分结构

操作系统的内核实质上就是操作系统,进行着各种资源的管理。

 为什么要有操作系统?

对软硬件资源进行管理(手段)。

为用户提供一个良好(稳定的,高效的,安全的)的运行环境(目的)。

3.尝试理解操作系统

 理解操作系统之前我们先要理解

什么是“管理”?

我们生活中的所有事情都要经过两步:1.决策 2.执行

那么举个栗子:我们学校的校长要管理这个学校的学生,他要怎么做?

我们是不是到了大学,我们可能就开学,毕业见过两次,但平常是完全没有接触的。

校长要想管理一个学校这么多人,不可能一个一个去接触吧,人这么多,怎么管理的过来呢?

假如校长是个程序员!!!

可以写个结构体将我们的各项属性写入结构体中去。

但校长是如何进行管理,然后进行资源分配呢?

所以说,校长管理我们不需要与我们直接接触!!!

即管理者与被管理者无需直接接触!!!

校长管理我们实际上是拿取我们的各项数据进行管理的。

而我们的数据哪里来的呢?

这些数据是由辅导员来与我们进行统计打包发给校长,校长再进行数据的管理。

这样校长对于学生的管理就变为对链表的增删查改!!!

这里我们就可以认为校长是操作系统, 辅导员即是驱动程序, 学生与学校的各种设施就是各种软硬件资源。

这样就进行了我们的一个完整的管理流程。

结论就是  管理:先描述,在组织

描述就是封装为一个一个对象,即用一个类或者对象进行封装,而组织就是在操作系统中用我们的各种数据结构进行组织。

完整结构示意图

 如上图为一个完整的结构示意图

我们知道操作系统是一个对下进行软硬件资源管理(手段),对上提供一个良好(稳定的,高效的,安全的)的运行环境(目的)。

但我们用户需要使用操作系统来管理软硬件,我们能直接接触操作系统吗?

答案是,不能,操作系统不允许你这样做,我们应该都去过银行取钱吧,我们去银行取钱,我们能自行到仓库去取钱吗?不能吧,那不是全乱套了,想取多少就取多少!!!

所以就有前台服务,只开一个小窗口与内部交互。

这在操作系统就叫做系统调用接口,操作系统为我们提供了一系列系统调用接口,

我们可以拿来用,但又有个问题发生了!!!

操作系统是由不同厂商进行生产的,系统调用接口就会有一些不同,那怎么办,这样就出现了跨平台问题,这就为上层又出现了一个外壳,各种库,即一些c/c++标准库的内容,这些库能够很好的解决跨平台问题!!!

所以我们在下载编译器实际是下载的什么? 对应的标准库和编译器

如我们之前学习的c语言就有printf/scanf都与硬件进行了交互,这些都是标准库提供的函数接口用到调用系统调用接口,因为不同厂商他们提供的操作系统的接口不同!!!

所以总的来说:还是下面两句话!!!

对软硬件资源进行管理(手段)。

为用户提供一个良好(稳定的,高效的,安全的)的运行环境(目的)。

这篇关于【Linux系统】冯诺依曼与操作系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/848015

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、