【操作系统】01.冯·诺伊曼体系结构

在这里插入图片描述
上面这张图就是我们经常能在各种教材中看到的冯·诺伊曼体系结构。我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。

一、认识设备

输入设备: 键盘、鼠标、网卡、磁盘、摄像头……
输出设备: 显示器、磁盘、网卡、打印机……
存储器: 内存
CPU: 运算器+控制器

CPU在数据层面,不会和外设直接打交道,只会和内存进行交互。
任何程序运行时都必须加载到内存,这是体系结构决定的。

二、生活中的实例

我们生活中也会遇到冯·诺伊曼体系结构的实例,如:你与朋友之间的通信

当你与朋友在电脑上进行微信聊天时,你们两个人的电脑都是遵循冯·诺依曼体系结构的。因此当你向他发送信息时,你的键盘充当输入设备,你的网卡和显示器充当输出设备,经过网络送达你朋友,你朋友的网卡充当输入设备,你朋友的显示器充当输出设备。
在这里插入图片描述
刚开始你在键盘当中输入消息,键盘将消息加载到内存,此时你的显示器就可以从内存获取消息进而显示在你自己的显示器上,此时你就能在你自己的电脑上看到你所发的消息了。
在键盘将消息加载到内存后,CPU从内存获取到消息后对消息进行各种封装,然后再将其写回内存,此时你的网卡就可以从内存获取已经封装好的消息,然后在网络当中经过一系列处理(这里忽略网络处理细节),之后你朋友的网卡从网络当中获取到你所发的消息后,将该消息加载到内存当中,你朋友的CPU再从内存当中获取消息并对消息进行解包操作,然后将解包好的消息写回内存,最后你朋友的显示器从内存当中获取消息并显示在他的电脑上。
在这里插入图片描述

三、内存的意义

下图是没有内存的情况:
在这里插入图片描述
这种情况下就会有一个问题:输入设备与输出设备的速度相比较CPU来说是很慢的,根据木桶原理,这就会导致计算机的整体效率取决于输入设备与输出设备。这样的话就会造成CPU会在有些时间段内是没有数据进行操作的,因此引入了内存。
内存有个特点就是,比输入设备和输出设备要快很多,但是比CPU又要慢。现在内存就处于慢设备和快设备之间,是一个不快也不慢的设备,能够在该体系结构当中就起到一个缓冲的作用。
现在该体系的运行流程就是:用户输入的数据先放到内存当中,CPU读取数据的时候就直接从内存当中读取,CPU处理完数据后又写回内存当中,然后内存再将数据输出到输出设备当中,最后由输出设备进行输出显示。
于是就形成了最终的冯诺依曼体系结构。
在这里插入图片描述
内存实际上就是CPU和外设之间的巨大缓冲区

四、内存提高冯•诺依曼体系结构效率的方法

在这里大多数人有一个疑惑就是,先将输入设备的数据交给内存,再由内存将数据交给CPU,这个过程真的比CPU直接从输入设备获取数据更快吗?

说明这个问题之前,我们首先需要知道:内存具有数据存储的能力。虽然内存的大小只有4G/8G,但是既然内存有大小,那么它就有预装数据的能力,而这就是提高该体系结构效率的秘诀。

这里不得不说到的就是局部性原理:根据统计学原理,当一个数据正在被访问时,那么下一次有很大可能会访问其周围的数据。所以当CPU需要获取某一行数据时,内存可以将该行数据之后的数据一同加载进来,而CPU处理数据和内存加载数据是可以同时进行的,这样下次CPU就可以直接从内存当中获取数据。

输出数据的时候也一样,CPU处理完数据后直接将数据放到内存当中,当输出设备需要时再在内存当中获取即可,这也就有了我们平常所说的缓冲区的概念。例如,缓冲区满了才将数据打印到屏幕上,使用fflush函数将缓冲区当中的数据直接输出之类的,都是将内存当中的数据直接拿到输出设备当中进行显示输出。


http://www.niftyadmin.cn/n/5669081.html

相关文章

用 JS 实现一个发布订阅模式

在JavaScript中,发布订阅模式(Pub/Sub)是一种常用的设计模式,用于实现不同组件之间的解耦通信。在这种模式中,发布者(Publisher)不直接给订阅者(Subscriber)发送消息&…

自制网络连接工具(支持tcpudp,客户端服务端)

自制网络连接工具&#xff08;支持tcp/udp,客户端/服务端&#xff09; 将网络连接工具制作成共享库 network.h #ifndef NETWORK_H #define NETWORK_H#include<netinet/in.h> #include<sys/socket.h> #include<stdbool.h> typedef struct Network {int type…

解决uniapp开发的app,手机预览,上下滑动页面,页面出现拉伸,抖动的效果问题,

在pages.json文件里“globalStyle”下面的"app-plus"里加入"bounce": "none"即可 "app-plus": { "bounce": "none", //关闭窗口回弹效果 }

[Linux] Linux操作系统 进程的状态

标题&#xff1a;[Linux] Linux操作系统 进程的状态 个人主页&#xff1a;水墨不写bug &#xff08;图片来源于网络&#xff09; 目录 一、前置概念的理解 1.并行和并发 2.时间片 3.进程间具有独立性 4.等待的本质 正文开始&#xff1a; 在校的时候&#xff0c;你一定学过《…

grep命令如何实现正则表达式搜索?

grep 命令支持使用正则表达式&#xff08;Regular Expression&#xff0c;简称 regex&#xff09;进行搜索 以下是一些使用正则表达式的基本示例&#xff1a; 搜索包含 “example” 的行&#xff1a; grep "example" file.txt搜索以 “abc” 开头的行&#xff1a; g…

Linux入门2

文章目录 一、Linux基本命令1.1 文件的创建和查看命令1.2 文件的复制移动删除等命令1.3 查找命令1.4 文件的筛选和管道的使用1.5 echo、tail和重定向符 二、via编辑器三、权限控制3.1 root用户&#xff08;超级管理员&#xff09;3.2 用户和用户组3.3 权限信息3.4 chmod命令 一…

解决最短路径问题

文章目录 1. 迷宫中离入口最近的出口&#xff08;1926&#xff09;2. 最小基因变化&#xff08;433&#xff09;3. 单词接龙&#xff08;127&#xff09;4. 为高尔夫比赛砍树&#xff08;675&#xff09; 1. 迷宫中离入口最近的出口&#xff08;1926&#xff09; 题目描述&…

技术美术百人计划 | 《4.5 DOF景深算法》笔记

1. 景深定义 景深&#xff08;Depth of Field&#xff0c;DOF&#xff09;&#xff0c;是指在摄影机镜头或其他成像器前沿能够取得清晰图像的成像所测定的被摄物体前后距离范围。镜头光圈、镜头焦距、及焦平面到拍摄物的距离是影响景深的重要因素。在聚焦完成后&#xff0c;焦点…