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

news2024/12/26 23:12:35

=========================================================================

个人主页点击直达:小白不是程序媛

Linux专栏:Linux系统化学习

=========================================================================

目录

冯诺依曼体系结构

组成介绍

CPU和内存

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

操作系统


冯诺依曼体系结构

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

组成介绍

输入设备

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

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

输出设备

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

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

存储器

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

就是我们常说的内存

运算器

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

控制器

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

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

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


CPU和内存

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

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

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

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

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

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

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

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


操作系统

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

概念

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

  • 内核(进程管理,内存管理,文件管理,驱动管理)(宏观层面
  • 其他程序(例如函数库,shell程序等等)(微观层面

设计操作系统的目的

  • 与硬件交互,管理所有的软硬件资源
  • 给用户提供安全、稳定、高效的良好环境

操作系统管理的核心

  • 进程管理
  • 内存管理
  • IO管理
  • 驱动管理

操作系统如何管理硬件?

  • 先描述起来,用struct结构体
  • 在组织起来,用链表或其他高效的数据结构

总结

  • 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统
  • 调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。
  • 一个用户如果想访问非常底层的数据或者硬件,必须贯穿上图整个计算机层状结构。也就意味着必定调用系统调用
  • 库函数和系统调用之间是上下层的调用和被调用的关系,库函数在上,系统调用在下。

今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,您的支持就是我前进的动力!

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

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

相关文章

2、鸿蒙开发工具首次运行时开发环境配置

请务必在第一次运行时配置好开发环境,如果取消了配置,后续再配置会比较麻烦 1、点击工具图标运行 2、在欢迎页中点击“Agree” 3、默认“Do not import setting”,点击“OK” 3、此片设置Nodejs和Ohpm的安装,其中, …

传来喜讯,优维又获奖了!!!

优维科技作为国内DevOps领域的行业领先企业,从诞生之日起,就一直致力于为中国企业提供一流的数字化运维服务,不断深耕核心技术,向客户提供专业强大的产品与服务。多年来,不仅获得了大量客户认可,更是屡次获…

Apache Airflow (三) :Airflow WebUI操作介绍

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹…

Android修行手册 - POI操作Excel常用样式(字体,背景,颜色,Style)

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&…

【媒体邀约】媒体宣传——企业成长的催化剂

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体宣传是企业成长的催化剂,它在各种方面对企业的成功和发展起到了关键作用。 1. 曝光和知名度: 媒体宣传可以将企业和其产品或服务推向广泛的受众,…

SQL第四次上机实验

1.查询借阅了计算机类或者文学类图书的读者的借书证号 USE TSGL GO SELECT DISTINCT Reader.Lno FROM Book,Lend,Reader WHERE Book.ISBNLend.ISBN AND Lend.LnoReader.Lno AND Class 计算机类 OR Class 文学类2.查询同时借阅了计算机类和文学类图书的读者的借书证号 USE T…

C语言之文件操作(剩余部分)

上篇博客字数到极限了,给大家把内容补充在这一篇,我们还剩下文件读取结束的判定和文件缓冲区的内容没有介绍,让我们开始下面的学习吧! 目录 1.文件读取结束的判定 1.1feof函数 1.2ferror函数 代码示例 2.文件缓冲区 2.1fflu…

制造行业怎么做?看低代码如何引领未来

随着科技的不断发展,制造行业正面临着巨大的变革和挑战。为了提高生产效率、降低成本并更好地适应快速变化的市场需求,越来越多的制造企业将目光投向了低代码开发平台。在众多低代码开发平台中,JNPF低代码快速开发平台凭借其卓越的性能和灵活…

“三门问题”解决方案:换不换?更换策略与贝叶斯策略?附 Java 验证代码

文章目录 前言一、什么是“三门问题”?二、“三门问题”解决策略详解2.1、错误策略:直觉策略与随机策略2.2、更换策略与事件分析计算2.3、贝叶斯策略及分析流程 三、Java 语言验证“三门问题”总结 前言 “三门问题”作为一道经典逻辑推理题,…

物联网AI MicroPython学习之语法 ustruct 打包和解压原始数据类型

学物联网,来万物简单IoT物联网!! ustruct 介绍 ustruct提供打包和解压原始数据类型的功能。 默认情况下,C类型以机器的本机格式和字节顺序表示,并在必要时通过跳过填充字节来正确对齐(根据C编译器使用的规…

使用Vite创建Vue3项目 配置路由+路径(包教包会)

使用Vite创建Vue3项目 配置路由路径 一、创建项目:二、配置路由1. vue3vitets路由配置2. vue3vitejs路由配置 三、配置路径 一、创建项目: 创建一个文件夹在文件夹上的 地址栏 或者是 winR 打开cmd命令窗口。 输入命令 npm create vitelatest 这里我们…

飞控硬件介绍及其主要传感器特性解析

飞行控制器是无人机的关键组件之一,它主要由主控单片机、IMU传感器、电源和输出IO等部分构成。这些硬件和传感器的特性对于无人机的二次开发至关重要,其性能和质量直接关系到无人机的稳定性、飞行性能和功能扩展能力。 本文将带领新手开发者深入了解飞行…

更安全的ssh协议与Gui图形化界面使用

目录 前言: 一.Gui图形化界面的使用 二.ssh协议 SSH的主要作用包括: 相比其他网络协议,SSH的优势包括: 三.idea集成Git 前言: 上一篇讲解了git的命令用法以及https协议,但是这个协议放在做团队项目的…

STM32-HAL库09-CAN通讯(loopback模式)

一、所用材料: STM32F103C6T6最小系统板 STM32CUBEMX(HAL库软件) MDK5 串口调试助手 二、所学内容: 初步学习如何使用STM32的CAN通讯功能,在本章节主要达到板内CAN通讯的效果,即32发送CAN信息再在CAN接收…

初识Linux:目录路径

目录 提示:以下指令均在Xshell 7 中进行 一、基本指令: 二、文件 文件内容文件属性 三、ls 指令拓展 1、 ls -l : 2、ls -la: 3、ls [目录名] : 4、ls -ld [目录名]: 四、Linux中的文件和…

windows下QZipReader和QZipWriter解压缩zip格式文件(只针对纯文件,递归目前暂不处理)

# 运行效果 ui设计文件 采用了网格布局,组件跟随窗口最大化最小化 # .pro项目文件 这段代码是一个项目文件(.pro文件)中的内容,用于配置一个Qt项目的构建和部署规则。它包含了一些指令和设置,用于指定项目中需要编译的源代码文件、头文件、UI表单文件以及项目所依赖的Qt…

点亮一个灯

.text .global _start _start: RCC时钟使能 GPIOE RCC_MP_AHB$ENSETR[4]->1 LDR R0,0x50000a28 LDR R1,[R0] ORR R1,R1,#(0x1<<4) ORR R1,R1,#(0x1<<5) STR R1,[R0]设置PE10为输出模式 GPIOE_MODER[21:20]->01 先清0 LDR R0,0x50006000 LDR R1,[R0] BI…

偶数科技携Skylab实时湖仓数据平台亮相2023全国中小企业数字化转型大会

2023全国中小企业数字化转型大会于10月28日至30日在安徽省合肥市举行&#xff0c;本次大会以“数实融合 赋能万企”为主题&#xff0c;由工业和信息化部、安徽省人民政府主办。会议期间&#xff0c;偶数科技等典型企业的数字化转型新技术、新产品、新应用、新模式集聚亮相&…

【微软技术栈】C#.NET 正则表达式源生成器

本文内容 已编译的正则表达式源生成在源生成的文件中何时使用 正则表达式 (regex) 是一个字符串&#xff0c;它使开发人员能够表达要搜索的模式&#xff0c;使其成为搜索文本和提取结果作为已搜索字符串子集的一种很常见的方法。 在 .NET 中&#xff0c;System.Text.RegularE…