冯·诺依曼体系结构和操作系统

目录

一、冯·诺依曼体系结构

1、初见结构

2、对体系结构的理解

3、总结

二、操作系统

1、概念

2、作用


一、冯·诺依曼体系结构

1、初见结构

数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。

冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。

如下图就是冯·诺依曼体系结构的基本结构。

我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。

2、对体系结构的理解

冯诺依曼体系结构看起来还是比较简单的。但是,在当时那个年代能够提出这样一个体系结构可是十分厉害的。在冯诺依曼体系结构之后,一些人也提出了其他的一些结构,但是直到现在,绝大多数的计算机制造商任然使用的是冯诺依曼体系结构。

冯诺依曼体系结构为什么能够被人们认可并且直到现在还在使用呢?为什么冯诺依曼体系结构是这样的呢? 下面我们就来一一解答。

~  输入设备、输出设备、运算器和控制器:

首先,计算机的作用就是为了解决问题,而要解决问题,首先需要将数据或是问题输入到计算机当中,所以计算机必须要有输入设备。输入设备:键盘、磁盘、网卡、鼠标、摄像头等。

然后,计算机通过输入设备得到数据,数据在计算机当中进行一系列的算术运算和逻辑运算后,通过输出设备进行输出。当然,光有运算器还是不够的,还需要有控制功能,控制何时从输入设备获取数据,何时输出数据到输出设备等。所以,计算机就必须要有(运算器&&控制器:CPU)。CPU可以响应外部事件。

接着,计算机解决完问题后还需要将计算结果输出显示出来,所以计算机必须要有输出设备。输出设备:显示器、磁盘、网卡、各种打印机等。

上面的输入设备、输出设备、运算器和控制器在结构中的作用我们是能够很好地理解的。但是为什么不让输入设备将数据直接交给CPU,CPU再直接将结构交给输出设备呢?为什么还需要存储器呢?而这也正是冯诺依曼体系结构的精妙之处,它在结构中添加了一个用来过渡的存储器。

~  存储器:

首先,我们要知道:存储器实际上就是内存。

一般来说,各种硬件的存储效率:CPU&&CPU内部的寄存器 > 内存 > 磁盘/SSD > 光盘 > 磁带。且它们之间的存储效率是数量级的差别。所以,即使是相邻的设备,效率的差别也是非常大的。

所以,在计算机的结构中,输入设备和输出设备相对于中央处理器来说是非常慢的,于是在当前这个体系整体呈现出来的就是,输入设备和输出设备很慢,而CPU很快,而且它们之间的差距不是只相差了几十或者几百,而是差了好几个数量级。根据木桶原理,那么最终整个体系所呈现出来的速度将会是很慢的。

所以我们就不能让输入设备和输出设备直接与CPU进行交互,而在这中间加入内存。内存在这个结构中的特点就是:它比输入设备和输出设备要快很多,但是比CPU又要慢。所以内存就处于慢设备和快设备之间的一个状态,是一个不快也不慢的设备,能够在该体系结构当中就起到一个缓冲过渡的作用。

根据木桶原理,现在的短板就是存储器了,但是CPU和存储器之间的交互效率可比CPU直接与输入输出设备交互的效率高了好几个数量级。这就大大提高了计算机的效率。

作用原理:我们可以预先将外设的数据加载到存储器中,这样CPU在读取数据时可以直接从存储器中读取。CPU处理完数据后又写回内存当中,然后内存再将数据输出到输出设备当中,最后由输出设备进行输出显示。

以上就是冯诺依曼体系结构的设计原理了。

3、总结

1、CPU读取数据(数据+代码)都是要从内存中读取。站在数据的角度,CPU不和外设直接交互。

2、CPU要处理数据,需要先将外设中的数据,加载到内存。站在数据的角度,外设只和内存直接交互。

3、不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)。


二、操作系统

1、概念

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。简单来说,操作系统就是一款进行软硬件资源管理的软件。

操作系统一般包括:1、内核(进程管理,内存管理,文件管理,驱动管理)2、其他程序(例如函数库,shell程序等等) 。

2、作用

1、与硬件交互,管理所有的软硬件资源。
2、为用户程序(应用程序)提供一个良好的执行环境。

操作系统对下通过合理的管理软硬件资源,对上为用户提供稳定的、高效的、安全的、的执行环境。

如下图,计算机体系结构图:

那操作系统是怎么进行管理的呢?

管理的本质是对被管理对象的数据做管理,操作系统并不是直接对计算机中的各种硬件进行决策管理,而是通过数据进行分析,最终做出决策,再由驱动执行,从而达到管理的效果。 

所有的管理,本质是对数据做管理,管理的方法是先描述再组织

说明:1、描述:如用struct、class对对象进行描述。2、组织:利用链表等数据结构将数据组织起来,统一管理。

那操作系统究竟管理些什么呢?操作系统主要进行以下四项管理:

1、内存管理:内存分配、内存共享、内存保护以及内存扩张等等。
2、驱动管理:对计算机设备驱动驱动程序的分类、更新、删除等操作。
3、文件管理:文件存储空间的管理、目录管理、文件操作管理以及文件保护等等。
4、进程管理:其工作主要是进程的调度。

而操作系统再往上就是我们所处的位置,在这里我们就可以用命令行或是图形化界面进行各种操作,这一层被称为用户层。但操作系统为了保护自己,对上只暴露了一些接口,而不会让用户直接访问操作系统,这一系列接口被称为系统调用接口。

但是系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。

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

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

相关文章

sqli-labs(5)

23. 判断是注释符被过滤了我们用‘1’‘1来闭合后面的’ 这里不能使用order by来判断列数直接通过union select来判断 -1 union select 1,2,3 and 11 -1 union select 1,(select group_concat(table_name) from information_schema.tables where table_schemasecurity) ,3 an…

如何使用cpolar+Jellyfin自建私人影音平台【内网穿透】

🎥 个人主页:深鱼~ 🔥收录专栏:cpolar 🌄欢迎 👍点赞✍评论⭐收藏 文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpo…

SpringBoot参数校验@Validated和@Valid的使用

1、Validated和Valid区别 Validated:可以用在类、方法和方法参数上。但是不能用在成员属性(字段)上Valid:可以用在方法、构造函数、方法参数和成员属性(字段)上 2、引入依赖 Spring Boot 2.3 1 之前&…

Linux多线程基本概念

目录 ​编辑 1.什么是进程,线程,并发,并行 优点 缺点 什么资源是线程应该私有的呢 为什么线程切换成本更低呢 3.线程控制 pthread_create lpthread选项 makefile 代码实现 ps -aL 什么是LWP 轻量级进程ID与进程ID之间的区别 LWP与pthr…

软件测试行情堪忧,测试行业将迎来低谷?

前两天跟一个HR朋友聊天,她表示刚在boss上发布了一个普通测试岗位,不到一小时竟然收到了几百份简历。而且简历质量极高,这是往年不敢想象的。岗位少,竞争激烈,这是今年软件测试就业的真实写照,也是所有岗位…

SWT技巧

实现控件的刷新 问题可以简化如下,点击上方按钮,使下方按钮移动,但要求在监听事件里新建按钮对象,而不是使用原来的按钮(原来的按钮被移除了)。 解决代码如下: public class TestUI {protecte…

【高效开发工具系列】PlantUML入门使用

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

SpringBoot : ch07 整合websocket

前言 当涉及到在Spring Boot应用程序中整合WebSocket时,我们可以使用Spring框架提供的功能来实现实时双向通信。WebSocket是一种在Web浏览器和服务器之间进行全双工通信的协议,它允许服务器主动向客户端发送消息,而不需要客户端发起请求。 …

387. 字符串中的第一个唯一字符

387. 字符串中的第一个唯一字符 描述 : 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。 题目 : 387. 字符串中的第一个唯一字符 分析 : 我们可以对字符串进行两次遍历,在第一次遍…

Redis原理之五种数据类型笔记

目录 String List Set ZSet ​ Hash String List Set ZSet Hash

Shell脚本:Linux Shell脚本学习指南(第二部分Shell编程)四

第二部分:Shell编程(四) 三十一、Shell test命令(Shell [])详解,附带所有选项及说明 test 是 Shell 内置命令,用来检测某个条件是否成立。test 通常和 if 语句一起使用,并且大部分…

RHEL开发者授权注册

$ sudo subscription-manager register --usernameusername --passwordpassword$ sudo subscription-manager attach --auto查看是否注册 Red Hat 订阅管理,请运行以下命令: $ sudo subscription-manager list --installed

【数据库】执行计划中的两趟算法机制原理,基于排序算法来分析,算法的限制,执行代价以及优化

基于排序的两趟算法 ​专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定…

Java计算二叉树从根节点到叶子结点的最大路径和

要求从根节点到叶子结点的最大路径和,可以通过递归遍历二叉树来实现。对于二叉树中的每个节点,我们都可以考虑包含该节点的最大路径和。在递归的过程中,我们需要不断更新全局最大路径和。 具体的思路如下: 递归函数设计&#xff1…

服务化通信OPC实操

实操也是基于视频进行一些笔记,没得写就少写了 准备 Nuget包准备:OPCfoundation 一般都是使用Ua,当然也是有: 客户端链接服务器参数:IP Port 认证 登录用户名 Session 的实例化创建 进行使用: 因为Ses…

数据中台具体是怎么解决数据孤岛的?_光点科技

在数字化时代,数据已成为企业的核心资产。然而,由于历史遗留问题、部门壁垒等因素,很多企业面临着“数据孤岛”的问题。数据孤岛是指在一个组织内,数据被分散在不同的系统中,彼此隔离,不能有效整合和利用。…

【版本管理 | Git 】Git最佳实践系列(一) —— LFS .gitignore 最佳实践,确定不来看看?

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…

python subprocess

查看python官方文档:最全 p subprocess.Popen([rpng2bdf.exe,[r-o .\tst\myfont.bdf -f myfont -e 65 tst\*.png]],stdoutsubprocess.PIPE,stderr subprocess.PIPE) out,err p.communicate() print(out) 注意,如何将shell命令分解为参数序列可能并…

【文末送书】程序员如何化解35岁危机?

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…

报表生成器Stimulsoft用户手册:深入报告

Stimulsoft Reports 是一款报告编写器,主要用于在桌面和Web上从头开始创建任何复杂的报告。可以在大多数平台上轻松实现部署,如ASP.NET, WinForms, .NET Core, JavaScript, WPF, Angular, Blazor, PHP, Java等,在你的应用程序中嵌入报告设计器…