【Linux系统化学习】冯诺依曼体系结构 | 操作系统

简介: 【Linux系统化学习】冯诺依曼体系结构 | 操作系统

冯诺依曼体系结构

随着世界上第一台计算机ENIAC(埃尼阿克)的诞生,人类顺利进入计算机时代。但是早期的计算机都是由各种电路和电路板组成非常的单一,只能解决一些简单的问题。用计算机来解决各种复杂的实际问题问题的需求越来越高级,时间的推移计算机伴随着人类技术的进步更加的高级。到现在我们常见的笔记本计算机,不常见的服务器计算机,大部分遵守冯诺伊曼体系结构

a5a6532c192a4cd78c41d3f1b571160d.jpg

组成介绍

输入设备

向计算机输入设备和信息的设备。是计算机与用户或其他设备通信的桥梁。输入设备是用户和计算机系统之间进行信息交换的主要装置之一。

键盘,鼠标,摄像头,扫描仪,光笔,手写输入板,游戏杆,语音输入装置等都属于输入设备


输出设备

输出设备是计算机硬件系统的终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表现出来。

常见的输出设备显示器、打印机、绘图仪、影像输出系统、语音输出系统、磁记录设备等。


存储器

存储器的主要功能是存储程序和各种数据,并且能够在计算机运行过程高速、自动地完成程序或者数据的存储,存储器是有记忆的设备,而且采用俩种稳定状态的物理器件来记录存储信息,所以计算机中的程序和数据都要转换为二进制代码才可以存储和操作。

就是我们常说的内存


运算器

计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件(ALU)。


控制器

控制器又称为控制单元(Control Unit),是计算机的神经中枢和指挥中心,只有在控制器的控制下,整个计算机才能够有条不紊地工作、自动执行程序。

控制器的工作流程为:从内存中取指令、翻译指令、分析指令,然后根据指令的内存向有关部件发送控制命令,控制相关部件执行指令所包含的操作。

控制器和运算器共同组成中央处理器(Central Processing Unit),CPU是一块超大规模集成电路,是计算机运算核心和控制核心,CPU的主要功能是解释计算机指令以及处理数据。


CPU和内存

根据上面图片我们可以观察到,只有CPU和内存之间的数据交换是双向的。像输入设备和输出设备只能接收CPU处理好的数据。我们又知道计算机里几乎所有的设备都有存储数据的能力!那为什么不直接将输入输出设备和CPU直接相关联,而是靠内存这一媒介呢?

 da761d1b5ba0424fb477a9810442515a.jpg


根据上面的存储分级图,越往上内存容量越小、响应时间越快,相应的造价就越贵。

从经济情况层面来考虑,如果都使用高级别的存储设备来组成计算机,成本过高计算机一定很贵不能造福人类;反之,如果都是用低级别的存储设备来组成计算机,成本虽然低,但是性能很差基本都用不了。


 

从木桶理论来考虑,152f75db618146d4b762a0d8a9067250.jpg如果将低级别的存储设备和CPU直接相关联,整体的效率会降低,高级别的存储设备CPU的性能无法完全释放,造成性能浪费

根据上面两点内容,我们先将数据写入到内存中,使用数据时CPU从内存中拿去数据进行处理,最后将处理好的数据交给我们的内存或者输入/输出设备。

以使用微信发消息为例理解冯诺依曼体系结构

我使用输入设备键盘输入”你好“,内存从键盘中读取我们写入的数据;这其中我们要发送的消息并不只是单单的”你好“两个字,还有你接收人的各种信息,内存将所有的数据交给CPU;CPU将我们的数据处理打包好交给输出设备;输出设备网卡将我们的消息发送过去。

作为接收方的你,网卡输入设备接受到我们的信息;内存读取数据交给CPU;CPU将数据处理好交给输出设备;这样就在的的输出设备显示器上可以看到我给你发的”你好“。


操作系统

上面是我们计算机底层的一个结构,我们在操作计算机时就是在对它们的操作,那是谁将它们组织起来供我们使用的呢?那就是操作系统。

概念

操作系统是一款软件,进行软硬件组员管理的软件。

·       内核(进程管理,内存管理,文件管理,驱动管理)(宏观层面

·       其他程序(例如函数库,shell程序等等)(微观层面


设计操作系统的目的

·       与硬件交互,管理所有的软硬件资源

·       给用户提供安全、稳定、高效的良好环境


操作系统管理的核心

·     进程管理

·     内存管理

·     IO管理

  • 驱动管理

 a707d8b2cc8e4e78bdfd516fe09aeca4.png


操作系统如何管理硬件?

·       先描述起来,用struct结构体

·       在组织起来,用链表或其他高效的数据结构

总结

·       在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统

·       调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。

·       一个用户如果想访问非常底层的数据或者硬件,必须贯穿上图整个计算机层状结构。也就意味着必定调用系统调用

·       库函数和系统调用之间是上下层的调用和被调用的关系,库函数在上,系统调用在下。

 

目录
打赏
0
0
0
0
7
分享
相关文章
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
67 27
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
93 30
|
8天前
|
Linux系统ext4磁盘扩容实践指南
这个过程就像是给你的房子建一个新的储物间。你需要先找到空地(创建新的分区),然后建造储物间(格式化为ext4文件系统),最后将储物间添加到你的房子中(将新的分区添加到文件系统中)。完成这些步骤后,你就有了一个更大的储物空间。
57 10
|
2月前
|
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
103 24
Linux系统之whereis命令的基本使用
操作系统控制台-健康守护我们的系统
阿里云操作系统控制平台作为新一代云端服务器中枢平台,通过创新交互模式重构主机管理体验。用户可通过API、SDK、CLI等方式进行系统管理,采用图形化控制替代传统命令行操作,集智能运维、集群协调、生态扩展于一体,显著提升企业级IT设施管理效能。通过此平台,用户可以轻松实现运维监控、智能助手、扩展插件管理及订阅服务等功能,大幅降低运维复杂度,提高管理效率。
50 11
|
20天前
|
Linux系统中如何查看CPU信息
本文介绍了查看CPU核心信息的方法,包括使用`lscpu`命令和读取`/proc/cpuinfo`文件。`lscpu`能快速提供逻辑CPU数量、物理核心数、插槽数等基本信息;而`/proc/cpuinfo`则包含更详细的配置数据,如核心ID和处理器编号。此外,还介绍了如何通过`lscpu`和`dmidecode`命令获取CPU型号、制造商及序列号,并解释了CPU频率与缓存大小的相关信息。最后,详细解析了`lscpu`命令输出的各项参数含义,帮助用户更好地理解CPU的具体配置。
59 8
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
82 5
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
|
10天前
|
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
41 0
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot 是阿里云推出的一款操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行和系统运维调优等功能。通过简单的命令行操作,用户可以快速获取所需信息并执行任务,极大提升了Linux系统的使用效率。安装步骤简单,只需在阿里云服务器上运行几条命令即可完成部署。使用过程中,OS Copilot不仅能帮助查找命令,还能处理文件和复杂场景,显著节省了查找资料的时间。体验中发现,部分输出格式和偶尔出现的英文提示有待优化,但整体非常实用,特别适合Linux初学者。
190 10
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等