【Linux】冯·诺依曼体系结构

news2024/11/24 19:38:00

要想谈进程,我们就不能只谈进程,我们如果想搞清楚什么是进程,就要从操作系统讲起。我们现在的不管是Linux或是Windows或是安卓等操作系统,它们都有一个相同点,那就是遵循冯·诺依曼体系结构,我们看一下冯·诺依曼体系结构

输入设备有:键盘、鼠标、磁盘、网卡等

输出设备有:声卡、网卡、显示器、打印机、磁盘等

这里的存储器就是内存运算器和控制器共同组成了CPU

你可能会认为,不就是个这个结构吗?这有什么值得学的呢?

这个体系的关键之处就是为什么要有内存这个东西?难道输入设备直接给CPU不好吗?CPU直接给输出设备不好吗?

我们可以看到各个设备之间是独立的,是通过主板(主板里面有总线)连接起来的连接不是目的,是手段目的是实现设备之间的数据流动,数据如何流动呢?就是靠拷贝,所以说:如果没有内存,那么计算机的速度几乎就由拷贝的整体速度决定了,因为我们的CPU可以做的非常快,而数据之间的拷贝是远不如CPU的处理速度快的。

所以我们引入内存,就将这里的效率问题转化为了软件问题,因为我们的操作系统就是一个软件,它可以用来管理内存,操作系统写的好不好,就决定了计算机的效率高不高。我们可以预先把输入加载到内存中,等着CPU去执行,这样CPU就不会太空闲,效率就高了上来;CPU直接把输出给内存,让内存再去做其他的事情。

我们还知道一个叫存储器金字塔的东西,像这样:

从上到下依次是寄存器,一二三级缓存,内存,本地硬盘和云存储越靠上,离CPU越近,就是直接和CPU交换数据,效率越高,但是造价越高,容量越小。

所以,也就是内存的存在,首先让我们的效率变的更高,让我们的计算机的价格可以被普通人接受,让我们更多人使用,这也是内存的意义。

可以看到:冯·诺依曼体系并不像我们想象的那么简单,它背后有着深刻的意义。所以它对于后来的计算机的发展的意义重大,造成了如今我们几乎所有的计算机都遵循冯·诺依曼体系。

于是,我们就可以解决一些问题,比如,为什么程序在运行的时候要先加载到内存中?因为冯·诺依曼体系是这么规定的。为什么要有冯·诺依曼体系,前面已经说了它的意义

比如你发送一条信息(我们可以认为是字符串)给你的朋友,请说明数据的信息流动过程

从你的键盘到内存再到CPU,CPU中要对信息进行一些处理,最简单的要加上发送的时间,人物等,然后在经过内存到网卡,通过网络到你朋友的网卡,再到内存到CPU,要对收到的信息进行分析,再到内存再到显示器上。

总之,上面的例子就是为了能够更好的理解内存的位置和意义,外设和内存打交道,内存和CPU打交道。

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

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

相关文章

Docker-harbor

一、搭建本地私有仓库 1.1 下载Registry镜像 1.2 添加本地私有仓库配置 1.3 重启服务并运行Registry容器 1.4.容器的操作 1.4.1 拉取Nginx镜像并为镜像打标签 1.4.2 上传到私有仓库 1.4.3 列出私有仓库所有镜像 1.4.4 列出私有仓库的镜像的所有标签 1.4.5 先删除原有…

leetcode-没有重复项的全排列-97

题目要求 思路 1.递归,如果num和n的元素个数一样就可以插入res中了,这个作为递归的结束条件 2.因为这个题是属于排列,并非组合,两者的区别是排列需要把之前插入的元素在回退会去,而组合不需要,因此会存在一…

5.Git

Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html文件等)。通过Git仓库来存储和管理这些文件,Git仓库分为两种 本地仓库:开发人员自己电脑上的Git仓库远程仓库:远程…

leetcode-有重复数字的全排列-98

题目要求 思路 1.同【没有重复项的全排列-97】这个题一样,都是递归的题,区别在于这个可能会包含重复的数字,因此,不能只是简单的通过两个值是否相等然后用标志位标记,而是新增了一个数组,这个数组专门用于…

Springboot工程创建

目录 一、步骤 二、遇到的问题及解决方案 一、步骤 打开idea,点击文件 ->新建 ->新模块 选择Spring Initializr,并设置相关信息。其中组为域名,如果没有公司,可以默认com.example。点击下一步 蓝色方框部分需要去掉,软件包…

Liunx磁盘管理(下)

中篇:https://blog.csdn.net/Lzcsfg/article/details/138355036 一.逻辑卷 逻辑卷(Logical Volume)是逻辑卷管理 (LVM) 中的一个概念,它为 Linux 系统中的存储管理提供了更大的灵活性和可扩展性。LVM 允许你将物理存储设备&…

Linux:进程概念(二.查看进程、父进程与子进程、进程状态详解)

Linux:进程概念(二.查看进程、父进程与子进程、进程状态详解) 上次讲了一下:Linux:冯诺依曼体系结构、操作系统、初识进程 文章目录 1.查看进程1.1准备工作1.2 指令:ps—显示当前系统中运行的进程信息1.3查看进程属性…

Adobe Illustrator 2024 for Mac:矢量图形设计软件

Adobe Illustrator 2024 for Mac是一款专为Mac用户设计的行业标准矢量图形设计软件。该软件以其卓越的性能和丰富的功能,为设计师和艺术家们提供了一个全新的创意空间。 作为一款矢量图形软件,Adobe Illustrator 2024 for Mac支持创建高质量的矢量图形&a…

这是用VS写的一个tcp客户端和服务端的demo

服务端: 客户端: 其实这里面的核心代码就两行。 客户端的核心代码: //套接字连接服务端 m_tcpSocket->connectToHost(_ip,_port);//通过套接字发送数据m_tcpSocket->write(ui.textEditSend->toPlainText().toUtf8());//如果收到信…

代码本地化

目的 代码本地化(Localization)是指将软件应用程序中的文本、图形、声音和其他内容翻译成特定语言的过程,同时确保这些内容在目标文化中适当地呈现。本地化不仅仅是对文本进行翻译,还包括对日期、时间、数字、货币、排序顺序、文本…

Linux网络—PXE高效批量网络装机

目录 一、部署PXE远程安装服务 1、搭建PXE远程安装服务器 1)安装并启用 TFTP 服务 2)安装并启用 DHCP 服务 3)准备 Linux 内核、初始化镜像文件 4)准备 PXE 引导程序 5)安装FTP服务,准备CentOS 7 安…

学习笔记:【QC】Android Q telephony-data 模块

一、data init 流程图 主要分为3部分: 1.加载TelephonyProvider,解析apns-config.xml文件,调用loadApns将 xml中定义的数据,插入到TelephonyProvider底层的数据库中 2.初始化phone、DcTracker、TelephonyNetworkFactory、Conne…

用标准的Linux命令替换Alpine上的精简版命令

Alpine Linux 是一个基于 musl libc 和 busybox 的轻量级Linux发行版,busybox 实现了很多常用类Unix命令的精简版,特点是体积很小,舍弃了很多不常用参数,我们简单对比一下标准Linux自带的 ls命令 和Alpine下的 ls 命令便可略知一二…

服务智能化公共生活场景人员检测计数,基于YOLOv5全系列参数模型【n/s/m/l/x】开发构建公共生活场景下人员检测计数识别系统

在当今社会,随着科技的飞速发展,各种智能化系统已广泛应用于各个领域,特别是在人员密集、流动性大的场合,如商场、火车站、景区等,智能人员检测计数系统发挥着至关重要的作用。特别是在特殊时期,如节假日、…

04.1.添加多个监控同步其他主机

添加多个监控&同步其他主机 1.首先在agent配置文件中存在Include的,也就是说明,可以配置多个监控项并且同步到其他主机上的进行使用; 2.主机之间互相推送配置文件即可; 开始测试 我这里实在agent节点上直接在路径/etc/zabbi…

【iOS】多线程

文章目录 前言一、多线程的选择方案二、GCD和NSOperation的比较二、多线程相关概念任务队列 三、死锁情况主队列加同步任务 四、任务队列组合主队列异步并发队列异步 前言 这两天将iOS的多线程的使用都看了一遍,iOS的多线程方案有许多,本篇博客主要总结…

ctfshow web入门 php序列化 web260--web266

web260 正则看序列化之后的ctfshow有没有ctfshow_i_love_36D 直接传就行了 web261 code0x36d弱比较直接写877a或者877.php都行的<?php class ctfshowvip{public $username;public $password;public function __construct(){$this->username$u877.php;$this->pass…

安卓手机原生运行 ARM Ubuntu 24.04 桌面版(一)

本篇文章&#xff0c;聊一聊尝试让安卓手机原生运行 Ubuntu&#xff0c;尤其是运行官方未发布过的 ARM 架构的 Ubuntu 24.04 桌面版本。 写在前面 最近的几篇文章&#xff0c;都包含了比较多的实操内容、需要反复的复现验证&#xff0c;以及大量的调试过程&#xff0c;为了不…

【StarRocks系列】 Trino 方言支持

我们在之前的文章中&#xff0c;介绍了 Doris 官方提供的两种方言转换工具&#xff0c;分别是 sql convertor 和方言 plugin。StarRocks 目前同样也提供了类似的方言转换功能。本文我们就一起来看一下这个功能的实现与 Doris 相比有何不同。 一、Trino 方言验证 我们可以通过…

opencv图片的旋转-------c++

图片的旋转 /// <summary> /// 图片的旋转 /// </summary> /// <param name"img"></param> /// <param name"angle">旋转角度:正数&#xff0c;则表示逆时针旋转;负数&#xff0c;则表示顺时针旋转</param> /// <…