冯诺依曼体系结构与操作系统简介

个人主页:C++忠实粉丝
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C++忠实粉丝 原创

冯诺依曼体系结构与操作系统简介

收录于专栏[Linux学习]
本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论💌

目录

1. 冯诺依曼结构体系介绍:

1.1 冯诺依曼体系结构图解 : 

1.2 冯诺依曼体系结构解释 : 

1.3 冯诺依曼体系结构的理解 : 

1.3.1 什么是内存?

1.3.2 为什么要有内存?

2. 操作系统的概念与定位:

2.1 操作系统的概念:

2.1.1 设计操作系统的目的?

2.2 操作系统的定位: 

2.2.1操作系统如何管理的? 


 

1. 冯诺依曼结构体系介绍:

1.1 冯诺依曼体系结构图解 : 

1.2 冯诺依曼体系结构解释 : 

截至目前,我们所认识的计算机,都是有一个个的硬件组件组成 

输入单元:包括键盘, 鼠标,扫描仪, 写板等

中央处理器(CPU):含有运算器和控制器等

输出单元:显示器,打印机等 

外设 : 外部装备

外设装备包括 : 输入设备和输出设备

输入设备 : 键盘, 鼠标, 网卡, 摄像头, 话筒...

输出设备: 显示器, 磁盘, 网卡, 打印机...

存储器 : 内存

运算器 + 控制器 ~= CPU

1.3 冯诺依曼体系结构的理解 : 

1. 这里的存储器指的是内存

2. 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备) 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。

3. 一句话,所有设备都只能直接和内存打交道

1.3.1 什么是内存?

内存是计算机的重要组成部分,负责数据和程序的存储与访问。 

 

1.3.2 为什么要有内存?

我们直接这样设计不行吗?而且CPU还比内存快

1. 数据存储和管理
内存的作用:内存用于临时存储运行程序所需的数据和指令。CPU在执行程序时需要快速访问这些数据,内存提供了一个高效的存储空间。
容量问题:CPU的寄存器(内存的一种)数量有限,通常只能存储少量的数据,而程序的规模和数据量往往超过这些寄存器的容量。因此,内存是必需的,以容纳更大的数据集和更复杂的程序。(而且CPU比内存贵的多,这样能让电脑价格更加平民)
2. 程序与数据分离
冯·诺依曼结构:根据冯·诺依曼结构,程序和数据是存储在同一存储器中的,这意味着CPU可以随时从内存中读取指令和数据。这个设计简化了计算机的架构,并使得程序可以动态变化。
灵活性和可变性:将程序和数据分开存储于内存,使得程序可以根据输入数据进行不同的处理,这样的设计灵活性更高。
3. CPU与内存的速度差异
速度差异:虽然CPU的速度比内存快,但CPU的速度过快导致直接与CPU进行交互会造成效率低下。(因为输入输出的IO操作较慢,根据木桶定律,效率取决于慢的一方)CPU在执行指令时,如果每次都从寄存器或内部存储器中获取数据,将使得资源使用不合理。
数据传输:内存虽然相对较慢,但它能够更有效地管理大量数据,并通过总线与CPU进行高效的数据传输。当数据在计算机内部流转的时候,本质是在不同设备间进行拷贝!设备的拷贝效率本质就是计算机的效率!
4. 输入 / 输出操作
I / O操作:计算机需要与外部设备(如硬盘、显示器、输入设备等)进行交互,这些设备的数据传输速度通常较慢。内存可以作为缓冲区,在CPU和外部设备之间进行数据传输,优化了I / O操作的效率。
5. 处理多任务和并行计算
支持多任务:内存可以同时存储多个程序和数据,CPU可以在它们之间快速切换,支持多任务处理。
并行处理:在现代计算机中,多个CPU核心可以同时从内存中读取数据,实现并行计算,这在复杂计算中显著提高了性能。
6. 简化设计
设计简化:通过将内存与CPU分开,冯·诺依曼体系结构简化了计算机设计,允许使用标准化的存储器接口来访问数据和指令。这种分层设计使得系统的扩展和升级变得更为容易。 

2. 操作系统的概念与定位:

2.1 操作系统的概念:

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:

内核(进程管理,内存管理,文件管理,驱动管理)

其他程序(例如函数库,shell程序等等) 

 

2.1.1 设计操作系统的目的?

 

为什么要有OS:
1. 操作系统对下软硬件资源的管理,是稳定的,高效的,安全的,能进行良好的工作(手段)

2. 操作系统对上要给用户提供一个稳定的,高效的,安全的运行环境(目的)

总结: 

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

2.2 操作系统的定位: 

在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件 

2.2.1操作系统如何管理的? 

"先描述在组织"

操作系统通过进程管理、内存管理、文件管理、设备管理、用户管理、安全性管理和网络管理等多个方面来管理计算机资源。它在硬件和用户、应用程序之间建立了一层抽象,使得计算机的操作更加简单、高效和安全。通过这些管理机制,操作系统能够确保计算机系统的稳定运行,并为用户和应用程序提供一个良好的运行环境。 

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

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

相关文章

使用TensorBoard可视化模型

目录 TensorBoard简介 神经网络模型 可视化 轮次-损失曲线 轮次-准确率曲线 轮次-学习率曲线 迭代-评估准确率曲线 迭代-评估损失曲线 TensorBoard简介 TensorBoard是一款出色的交互式的模型可视化工具。安装TensorFlow时,会自动安装TensorBoard。如图: TensorFlow可…

vscode 连接云服务器(ubantu 20.04)

更改服务器系统 如果云服务器上的系统不是ubantu20.04的,可以进行更改: 登录云服务官网(这里以阿里云为例)点击控制台 点击服务器实例 点击更多操作、重置系统 点击重置为其他镜像、系统镜像:选择你要使用的系统镜像…

解决MySQL报Incorrect datetime value错误

目录 一、前言二、问题分析三、解决方法 一、前言 欢迎大家来到权权的博客~欢迎大家对我的博客进行指导,有什么不对的地方,我会及时改进哦~ 博客主页链接点这里–>:权权的博客主页链接 二、问题分析 这个错误通常出现在尝试将一个不…

随笔(四)——代码优化

文章目录 前言1.原本代码2.新增逻辑3.优化逻辑 前言 原逻辑:后端data数据中返回数组,数组中有两个对象,一个是属性指标,一个是应用指标,根据这两个指标展示不同的多选框 1.原本代码 getIndicatorRange(indexReportLi…

企业级版本管理工具(1)----Git

目录 1.Git是什么 2.Git的安装和使用 在Ubuntu下安装命令如下: 使用git --version查看已安装git的版本: 使用git init初始化仓库: 使用tree .git列出目录: 使用git config命令设置姓名和邮箱: 加入--global选项…

【前端】前端数据转化为后端数据

【前端】前端数据转化为后端数据 写在最前面格式化数组代码解释hasOwnProperty是什么? 🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~ 🚀 欢迎一起踏上探险之旅,挖掘无限…

【操作系统】引导(Boot)电脑的奇妙开机过程

🌹😊🌹博客主页:【Hello_shuoCSDN博客】 ✨操作系统详见 【操作系统专项】 ✨C语言知识详见:【C语言专项】 目录 什么是操作系统的引导? 操作系统的引导(开机过程) Windows操作系…

渗透测试入门学习——使用python脚本自动识别图片验证码,OCR技术初体验

写在前面 由于验证码在服务端生成后存储在服务器的session中,而标用于标识用户身份的sessionid存在于用户cookie中 所以本次识别验证码时需要用requests.session()创建会话对象,模拟真实的浏览器行为,保持与服务器的会话才能获取登录时服务…

常用排序算法(下)

目录 2.5 冒泡排序 2.6 快速排序 2.6 1 快速排序思路 详细步骤 2.6 2 快速排序递归实现 2.6 3快速排序非递归: 快排非递归的优势 非递归思路 1. 初始化栈 2. 将整个数组的起始和结束索引入栈 3. 循环处理栈中的子数组边界 4. 单趟排序 5. 处理分区后的子…

【论文速看】DL最新进展20241005-Transformer、目标跟踪、Diffusion Transformer

目录 【Transformer】【目标跟踪】【Diffusion Transformer】 【Transformer】 [NeurlPS 2024] Parameter-Inverted Image Pyramid Networks 机构:清华大学、上海AI Lab、上交、港中文、商汤 论文链接:https://arxiv.org/pdf/2406.04330 代码链接&…

C++ | Leetcode C++题解之第454题四数相加II

题目&#xff1a; 题解&#xff1a; class Solution { public:int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D) {unordered_map<int, int> countAB;for (int u: A) {for (int v: B) {count…

网络基础 【HTTPS】

&#x1f493;博主CSDN主页:麻辣韭菜&#x1f493;   ⏩专栏分类&#xff1a;Linux初窥门径⏪   &#x1f69a;代码仓库:Linux代码练习&#x1f69a; &#x1f4bb;操作环境&#xff1a; CentOS 7.6 华为云远程服务器 &#x1f339;关注我&#x1faf5;带你学习更多Linux知识…

LabVIEW提高开发效率技巧----调度器设计模式

在LabVIEW开发中&#xff0c;针对多任务并行的需求&#xff0c;使用调度器设计模式&#xff08;Scheduler Pattern&#xff09;可以有效地管理多个任务&#xff0c;确保它们根据优先级或时间间隔合理执行。这种模式在需要多任务并发执行时特别有用&#xff0c;尤其是在实时系统…

软件验证与确认实验一:静态分析

目录 1. 实验目的及要求.................................................................................................... 3 2. 实验软硬件环境.................................................................................................... 3 …

JAVA运用中springBoot获取前端ajax提交参数方式汇总

本篇文章主要讲解springboot获取前端提交的参数信息&#xff0c;后端进行接受的常见方法汇总&#xff0c;通过本篇文章你可以快速掌握对表单和连接参数获取的能力。 作者&#xff1a;任聪聪 日期&#xff1a;2024年10月5日 一、delete、get等url参数获取方式 前台提交&#xf…

数字图像处理:空间域滤波

1.数字图像处理&#xff1a;空间域滤波 1.1 滤波器核&#xff08;相关核&#xff09;与卷积 图像上的邻域计算 线性空间滤波的原理 滤波器核&#xff08;相关核&#xff09;是如何得到的&#xff1f; 空间域的卷积 卷积&#xff1a;滤波器核与window中的对应值相乘后所有…

【Echarts】折线图和柱状图如何从后端动态获取数据?

&#x1f680;个人主页&#xff1a;一颗小谷粒 &#x1f680;所属专栏&#xff1a;Web前端开发 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 1.1 前端数据分析 1.2 数据库表分析 1.3 后端数据处理 1.4 前端接收数据 继上一篇文章&…

MySQL 查询优化器

文章目录 控制查询计划optimizer_prune_leveloptimizer_search_depth 优化器参数优化器提示索引提示成本模型server_costcost_name engine_cost 控制查询计划 https://dev.mysql.com/doc/refman/8.4/en/controlling-query-plan-evaluation.html 在执行SQL前会根据优化器选择执…

C++_智能指针详解

什么是智能指针&#xff1f;为什么要有智能指针&#xff1f;到目前为止&#xff0c;我们编写的程序所使用的对象都有着严格定义的生命周期。比如说&#xff0c;全局对象在程序启动时分配&#xff0c;在程序结束时销毁&#xff1b;再比如说局部static对象在第一次使用前分配&…

electron-builder 首次执行报错问题解决

假日想研究一下 react electron 的使用&#xff0c;结果发现首次打包疯狂报错&#xff0c;研究了一下之后才发现是第一次的话 electron-builder 会从外面下载依赖包到我们系统中&#xff0c;由于某种力量导致压缩包无法下载或者是下载过慢导致失败&#xff0c;要解决其实也简单…