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

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

一、认识设备

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

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

二、生活中的实例

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

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

三、内存的意义

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

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

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

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

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

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

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

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

相关文章

新峰商城之订单(一):确认页面开发

新峰商城订单从生成到处理结束,主要以下几个流程: (1)提交订单(商城用户发起) (2)订单入库(后台逻辑) (3)支付订单(商城…

C++_多态

C_多态 多态的概念 通俗来讲,就是多种形态。多态分为编译时多态(静态多态)和运行时多态(动态多态)。 编译时多态主要就是函数重载和函数模板,他们传不同类型的参数就可以调用不同的函数,通过…

简单有效关于msvcp140.dll丢失的解决方法,msvcp140.dll

这篇文章将和大家分享几种msvcp140.dll丢失的解决方法,分析解决方法为什么能够通过这种方法进行修复成功,有效的将丢失的msvcp140.dll文件进行修复完成。 msvcp140.dll丢失?简单有效的解决途径 一、重新安装相关软件 原理 许多应用程序在安…

研究生数学建模竞赛E题思路模型参考文献高速公路应急车道紧急启用模型——高速公路饱和路段动态应急车道开放决策模型研究

1 概述 动态应急车道 ( Hard Shoulder Running ) 作为 调整路段交通流运行现状的重要管理手段, 可以在短时间内提供道路供给, 有效提升瓶颈路段的通行 能力。 早在 21 世纪初 , 欧美国家就已经通过开放 应急车道缓解的方式来解决路段的交…

2024最受人追捧的电脑远程控制软件推荐!首选这五款!好用、连接稳定、安全性高!

在2024年,电脑远程控制软件市场上涌现了众多受欢迎且功能强大的选择。 以下是根据最新信息推荐的五款好用、连接稳定、安全性高的电脑远程控制软件: 1. 安企神 特点:它是全球知名的远程控制软件,以其稳定性和可靠性著称。 它支…

C++——初步认识C++和namespace的用法

1.编程语言排行榜 我们通过排行可以看出 C在变成语言中还是占据着重要的地位 2.C在工作领域中的应用 1.PC客户端开发。⼀般是开发Windows上的桌面软件,比如WPS之类的,技术栈的话⼀般是C和 QT,QT 是⼀个跨平台的 C图形用户界面(G…

sourceTree使用脚本一键push代码到gerrit

问题 在gerrit,我们无法直接把代码push到对应的分支。需要把代码push到 HEAD:refs/for/branch,review通过后再submit到分支。所以无法直接使用sourceTree上的推送按钮来push代码。但是可以通过自定义操作和脚本来实现这一功能。 脚本编写 新建文本文档写入以下内容&#xff…

fmql之ubuntu添加dhcp服务

按照官方指示:【在文末】 2024-08-22 buildroot linux 使用wpa_supplicant -B -i wlan0 切换WIFI 设备之后无法上网的问题。解决方法,使用udhcpc -i wlan0 命令-CSDN博客 网口连接路由器,然后发现路由器分配了ip,但是板卡没有配置…

VulnHub-Narak靶机笔记

Narak靶机笔记 概述 Narak是一台Vulnhub的靶机,其中有简单的tftp和webdav的利用,以及motd文件的一些知识 靶机地址: https://pan.baidu.com/s/1PbPrGJQHxsvGYrAN1k1New?pwda7kv 提取码: a7kv 当然你也可以去Vulnhub官网下载 一、nmap扫…

写作练习(一)

一、reply Z-Library The aim is to express gratitude and practice writing, and as a record. 二、Original letter As a college student of computer and a blogger, Z-Library is always a part of my study, which provide many books that I need pay a lost of time …

安捷伦Agilent/keysight 53220A参数资料 通用频率计 计数器

Agilent 53220A,Keysight 53220A,通用频率计数器/计时器,350 MHz,12 位,100 ps 53220A 350 MHz 通用频率计数器/计时器是一款双通道频率计数器,能够执行所需的全部频率和时间间隔测量。它可以添加可选的射…

突破常规:如何利用动态系统思维彻底变革你的团队!

引言 在现代社会中,变化是唯一不变的。面对快速发展的科技和瞬息万变的市场环境,企业和开发团队必须具备适应性和灵活性。动态系统思维作为一种理解和应对复杂系统中变化的方法,提供了有效的解决方案。本文将探讨动态系统思维在敏捷方法中的应…

load jsonl File with OpenAI API request results to pandas data.frame

题意:将包含 OpenAI API 请求结果的 jsonl 文件加载到 pandas DataFrame 中 问题背景: I have a large data set containing around 500k observation. It has a string variable that I want to create an embedding for. I used the OpenAI API to cr…

AI入门系列 | 如何优雅地下载最前沿的模型?

​简介 一片白云横谷口,几多归鸟尽迷巢。 小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖铁观音的小男孩。本系列主要基于过往经历,总结当时自身环境中实操经验。倘若能够顺便帮到他人,也是善莫大焉。 本文…

[已更新]2024数学建模研赛华为杯E题详细思路代码成品文章研究生数学建模数模辅导

截止2024.8.21 12点 已更新e全部小问的建模和问题一的代码 ####https://docs.qq.com/doc/DVU9YYUFLWlNOY3pyE题: 问题1:统计四个观测点的交通流参数随时间的变化规律 为了统计交通流参数(如车流密度、流量和速度),首先需要从视…

猫咪检测系统源码分享

猫咪检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

Easypoi模板导出

Easypoi模板导出 优点 快速导出:使用预定义的Excel模板,可以快速导出数据,特别是在数据量大的情况下。简化代码:通过模板导出,减少了编写大量POI代码的需要,使得代码更简洁易懂。灵活性:模板可…

Camunda如何共享流程定义但不共享流程实例?

文章目录 一、项目场景二、问题描述三、解决方案方案一:官方实例化共享定义的方法1. 部署共享定义2. 在查询中包含共享的定义3. 实例化共享定义 方案二:自定义TenantIdProvider方法,将租户id作为变量添加到启动的实例中1. 采用自定义的Tenant…

PHP API 框架:构建高效API的利器

在当今快速发展的互联网时代,API(应用程序编程接口)已成为连接不同应用程序和服务的关键。PHP,作为一种流行的服务器端脚本语言,提供了多种强大的框架来简化API的开发。本文将介绍PHP API框架的重要性,以及…

Linux笔记---简单指令

1. 使用的环境 博主使用的是华为云服务器xshell终端的方式学习的,因为据说这样的方式比较接近以后的工作环境。 其中云服务器安装的是Ubuntu操作系统(以Linux为内核,适合新手学习Linux的一个版本) 这里的云服务器不一定使用华为的,但是我在…