【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

相关文章

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

Linux在线解压jar包的实现方式

《Linux在线解压jar包的实现方式》:本文主要介绍Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux在线解压jar包解压 jar包的步骤总结Linux在线解压jar包在 Centos 中解压 jar 包可以使用 u

linux解压缩 xxx.jar文件进行内部操作过程

《linux解压缩xxx.jar文件进行内部操作过程》:本文主要介绍linux解压缩xxx.jar文件进行内部操作,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、解压文件二、压缩文件总结一、解压文件1、把 xxx.jar 文件放在服务器上,并进入当前目录#

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.