【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结构体

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

总结

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

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

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

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

 

相关文章
|
16天前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
本文旨在探讨Linux操作系统中的进程管理机制,包括进程的创建、执行、调度和终止等环节。通过对Linux内核中相关模块的分析,揭示其高效的进程管理策略,为开发者提供优化程序性能和资源利用率的参考。
43 1
|
17天前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
18天前
|
搜索推荐 Linux
深入理解Linux操作系统的启动过程
本文旨在揭示Linux操作系统从开机到完全启动的神秘面纱,通过逐步解析BIOS、引导加载程序、内核初始化等关键步骤,帮助读者建立对Linux启动流程的清晰认识。我们将探讨如何自定义和优化这一过程,以实现更高效、更稳定的系统运行。
|
16天前
|
存储 缓存 网络协议
Linux操作系统的内核优化与性能调优####
本文深入探讨了Linux操作系统内核的优化策略与性能调优方法,旨在为系统管理员和高级用户提供一套实用的指南。通过分析内核参数调整、文件系统选择、内存管理及网络配置等关键方面,本文揭示了如何有效提升Linux系统的稳定性和运行效率。不同于常规摘要仅概述内容的做法,本摘要直接指出文章的核心价值——提供具体可行的优化措施,助力读者实现系统性能的飞跃。 ####
|
17天前
|
缓存 监控 网络协议
Linux操作系统的内核优化与实践####
本文旨在探讨Linux操作系统内核的优化策略与实际应用案例,深入分析内核参数调优、编译选项配置及实时性能监控的方法。通过具体实例讲解如何根据不同应用场景调整内核设置,以提升系统性能和稳定性,为系统管理员和技术爱好者提供实用的优化指南。 ####
|
Linux 开发工具 Shell
|
Shell Linux 数据安全/隐私保护
|
Linux 开发工具 安全
下一篇
DataWorks