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

一、冯诺依曼体系结构

深入理解冯诺依曼体系结构

计算机的出现就是为了解决实际问题, 所以把问题交给计算机,计算机经过处理,得到一个结果反馈给我们,所以这中间就必然涉及到了输入设备,中央处理器(包括运算器和控制器)和输出设备

运算器主要用于进行各种数值和逻辑运算,包括加减乘除、与或非等操作;控制器则负责从主存中获取指令及相关数据,并决定如何对这些指令进行翻译和执行,以维持计算机系统的正常运行,后面我们就把运算器和控制器统称为中央处理器(cpu), 所以按照我们的理解,体系结构应该如下:

但是由于外部设备(输入设备和输出设备)相对于cpu来说速度很慢,根据木桶原理,计算机呈现出的整体的效率就很低, 所以我们又加入了内存这个设备

内存速度虽然比不上cpu,但是比外设快很多,因此最终呈现出的计算机效率还是不错的,所以内存相当于起到了缓冲的作用,根据该体系结构,计算机处理问题的流程如下:

输入数据到输入设备,将数据从外设加载到内存中,cpu从内存中读取数据进行处理,处理完之后写回到内存,内存再把数据交给输出到输出设备上,最终显示给用户,就有了最终的冯诺依曼体系

值得一提的是把外设的数据加载到内存和cpu读取内存数据是完全可以同时进行的,效率就更高了,所以内存可以理解为一个很大的缓存

冯诺依曼体系结构的价值

计算机中的存储结构是呈现金字塔状的,既然磁盘便宜,为啥不全部搞成瓷盘呢??因为速度太慢了,计算机基本没法运行;那既然寄存器速度快,为啥不全部搞成寄存器呢??因为造价太高了,注定大多数人买不起,计算机也就无法普及开来;所以冯诺依曼体系结构的巨大意义在于用较少的钱造出效率不错的计算机,让普通老百姓用的起计算机,技术改变世界!

冯诺依曼补充内容

1.图中的存储器指的就是内存

2.计算机中几乎所有的设备都具备数据存储能力,只是存储能力强弱的区别

3.内存是掉电易失性存储介质,磁盘相对来说是永久存储性介质

4.设备之间交互的本质是把数据从一个设备拷贝到另一个设备,存储的效率决定了拷贝的效率,决定了设备和设备之间通信的效率

5.把数据从一个设备搬运到另外一个设备这个工作是由操作系统来完成的

6.除了cpu和内存之外计算机中的大部分设备都叫做输入输出单元

输入单元:键盘,话筒, 摄像头, usb, 鼠标, 磁盘/ssd, 网卡

输出单元:显示器,喇叭,打印机,磁盘,网卡,显卡等等各种设备

7.同一个设备既可以是输入设备也可以是输出设备(比如网卡)

冯诺依曼体系的应用

1.解释"程序在运行之前,先要被加载到内存中"这句话

程序是保存在磁盘上的,也就是外部设备,而由冯诺依曼体系结构知道,cpu在数据层面上是不和外设交互的,而是和内存交互,所以必须先把程序加载到内存,cpu才能读取数据,运行程序, 所以是由体系结构决定的!

2.你和qq好友发消息的过程

你输入"在吗"到键盘后,操作系统将数据从键盘加载到内存中,cpu从内存中读取数据并处理(比如打包"在吗"和你的头像,发送时间等等), 处理完之后写入到内存中,然后通过网卡(输出设备)传输到网络上,经过传送,你朋友的网卡(输入设备)接收到你的消息,然后加载到内存,经过cpu的处理(解包等)写回内存,然后从内存输出到显示器上,你就看到了"在吗"这条消息以及发送时间等其他信息,

但是你发送的"在吗"也会显示到你的显示器上,这是为什么?

因为你的内存数据输出到网卡的同时也输出到了你的显示器上,输出设备是不唯一的!

二、操作系统(OS)

OS定位

操作系统是一款进行软硬件管理的软件

当你电脑开机时,操作系统就是第一个加载起来的软件

OS存在的目的

1.将软硬件资源管理好(手段)

2.给用户提供一个良好(稳定,高效,安全,易用)的使用环境(目的)

OS管理的精髓

···管理

以下是通过学校模型来深入理解管理

简化学校的模型,假如只有校长,辅导员和学生,校长是管理者,学生是被管理者,辅导员是什么角色呢???  学校的管理者是校长,但是我们基本很少和校长见面,校长如何做管理??

所有的事情无外乎是在做决策或者是做执行,真正的管理者是做决策的, 而如何做决策??

根据完善的数据做决策! 但是校长和学生很少见面,如何拿到数据?? 辅导员可以拿到学生数据反馈给校长, 辅导员核心工作是做执行!

所以管理的本质不是管人,而是管理数据!

当学生多了起来,这么多的学生信息量是很大的,如何管理这些数据呢???

学生虽然很多,但是要收集的学生的信息种类都一样,比如说姓名,性别,年龄,身高,成绩等等,统计到excel表格里,就变成了对结构化数据的管理!

后来校长把每一个学生的属性抽象出来,成为结构体类型(C++中的类), 于是每个学生都有自己的结构体变量了,但是这些变量是独立的,为了把这些变量关联起来,于是校长用链表把结构体变量连接起来,对学生信息的管理就变成了对链表的增删查改!!! 这就完成了对学生管理的建模过程!

 ···先描述,再组织

任何管理工作都可以经过先描述,再组织来完成计算机建模!

人是通过属性认识世界的,所以“先描述"如何描述?? 通过提炼属性!属性的集合就代表了事物

上述对学生属性进行抽象,形成结构体的过程就是"先描述",然后把一个个结构体变量用数据结构连接起来的过程就是"再组织"

我们之前在写C语言项目/数据结构/,开始写代码的时候总是先写class/struct, 再写其他代码,这就是先描述,再组织!

C++中类和对象有封装继承多态, STL中有各种容器,这就是先描述再组织的体现,所以C++能解决现实中的问题!

计算机的层状结构

我们从两部分来理解计算机的层状结构,第一部分是操作系统以下的部分,也就是OS存在目的中的第1点,把软硬件资源管理好;第二部分是操作系统以上的部分,也就是OS存在目的中的第2点,为用户提供良好的使用环境

···管理好硬件资源

1.底层硬件是以冯诺依曼的形式进行组织的

2.操作系统是要管理底层硬件的,但是操作系统并不直接和硬件交互,如何管理??

只需要拿到硬件相关的数据即可,比如磁盘有几个分区,一共多少容量,当前使用了多少,还剩多少?磁盘状态(休眠/运行/挂掉了)? 这些都是数据,所以只需要对数据做管理,如何拿数据??

OS和底层硬件之间还有一层叫做驱动程序,驱动程序帮助OS获得底层硬件的各种数据,而要管理,就要先描述后组织!Linux是用C语言写的,所以在OS内要出现struct harddev{ 设备属性...}  类似内容,采集到硬件的数据之后形成对硬件管理的数据结构(比如单链表),于是OS对硬件的管理就变成了对硬件对应的数据结构的增删查改!

硬件物理上连接到了电脑并不意味着就被OS管理起来了(比如鼠标插到了电脑上), 必须是OS内存在管理这个硬件的数据对象和数据结构,才叫硬件被OS管理起来了!

操作系统的管理

1.进程管理

2.内存管理

3.文件/IO管理

4.驱动管理

···为用户提供良好的环境

用户广义指所以使用电脑的人,狭义指的是开发者, 首先得让开发者用起来,否则开发者就没法开发出各种软件了,下面的用户默认指的是开发者

用户要访问硬件或者其他信息,直接访问OS不就行了吗??  因为用户也有坏人,所以不让用户直接访问OS内的数据!所有操作系统不相信用户但是必须给用户提供给服务

银行系统和操作系统的设计就很相似:

银行的小窗口就类似于OS的系统调用接口,系统调用接口是OS自己提供的,其实就是OS把自己内部很多有价值的东西封装成函数,  用户要访问操作系统内部的软硬件信息,就得调用系统调用接口,这是用户获取系统数据的唯一方式!

再回顾一下C语言中的printf函数,而printf是将数据打印到了显示器上,而用户是没有能力直接访问硬件的,所以printf必定封装了系统调用! 

但是系统调用使用起来比较麻烦,用系统的人并不善于使用, 开发的人频繁一些系统调用, 为了更加方便使用以及开发:

用系统的人的角度: 提供外壳程序(shell, 图形化界面)(外壳程序一定会调用系统调用)

系统上开发的人的角度: 将系统接口封装成各种各样好用的函数,打包形成库,直接调用函数即可,所以库和系统调用是上下层关系

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

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

相关文章

【HarmonyOS】低代码开发—使用低代码开发服务卡片

DevEco Studio还支持使用低代码开发功能开发服务卡片,目前只支持JS语言,且compileSdkVersion必须为7或以上。 下面以创建一个新的服务卡片为例进行说明。 1.打开一个工程,创建服务卡片,创建方法包括如下两种方式: 选…

网络安全“三保一评”深度解析

“没有网络安全就没有国家安全”。近几年,我国法律法规陆续发布实施,为承载我国国计民生的重要网络信息系统的安全提供了法律保障,正在实施的“3保1评”为我国重要网络信息系统的安全构筑了四道防线。 什么是“3保1评”? 等保、分…

计算机网络-网络互联

文章目录 网络互联网络互联方法LAN-LAN:网桥及其互连原理使用网桥实现LAN-LAN使用交换机扩展局域网使用路由器连接局域网 LAN-WANWAN-WAN路由选择算法非自适应路由选择算法自适应路由选择算法广播路由选择算法:分层路由选择算法 网络互联 网络互联是指利…

我的128创作纪念日

目录 学习成长机遇个人数据一览榜单认可日常2024憧憬和规划创作纪念日总结 学习成长机遇 账号创建已经快9年了,以前一直在个人网站和简书上写文章,在CSDN真正写文竟然在2023年10月20,至今才128天,不过获得的数据还算可以&#xff…

算法-计算机基础知识

1&#xff0c;坐标系与数学不同&#xff0c;x轴向下&#xff0c;y轴向右 2.案例&#xff1a;螺旋矩阵 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 class Solution {public List<Integer> spiralOrder(int[][] matrix) { List<Integer&…

探索视频数据的无限可能,Sora引领生成模型新纪元的技术解读

最近几天&#xff0c;open AI 推出的新的文生视频模型sora再次惊艳AI界&#xff0c;Sora模型近期发布的底层技术报告引起了广泛关注。作为前沿的视频生成与编辑工具&#xff0c;Sora究竟有何独特之处&#xff1f;本文就基于其几乎是文档来对其技术原理进行解读。下面让我们一起…

12. Springboot集成Dubbo3(三)Dubbo-Admin

目录 1、前言 2、安装 2.1、下载Dubbo-admin 2.2、修改配置 2.3、编译前端 2.4、访问 2.5、加载自己的服务 2.6、服务测试 2.7、其他 3、小结 1、前言 Dubbo Admin是用于管理Dubbo服务的基于Web的管理工具。Dubbo Admin提供了一个用户友好的界面&#xff0c;用于在分…

面试经典150题【21-30】

文章目录 面试经典150题【21-30】6.Z字形变换28.找出字符串中第一个匹配项的下标68.文本左右对齐392.判断子序列167.两数之和11.盛最多水的容器15.三数之和209.长度最小的子数组3.无重复字符的最长子串30.串联所有单词的子串 面试经典150题【21-30】 6.Z字形变换 对于“LEETC…

js滑动窗口算法

滑动窗口算法&#xff08;Sliding Window Algorithm&#xff09;是一种用于解决数组或字符串的子串问题的有效算法。其核心思想是通过维护一个窗口&#xff0c;根据问题的要求移动窗口的左右边界&#xff0c;从而在窗口内部找到符合条件的子串。 一般步骤如下&#xff1a; 初…

仿12306校招项目业务四(乘车人模块)

乘车人表结构 分库分表策略 乘车人的数据严重依赖于用户数据。每个用户至少需要有一个对应的乘车人&#xff0c;即自己本人。当然&#xff0c;也有可能是其他人&#xff0c;因为允许用户注册账号后为他人购票的情况。这种关联确保了用户和乘车人之间的正确映射&#xff0c;使系…

LeetCode | 两数相加 C语言

Problem: 2. 两数相加 文章目录 思路解题方法Code一些感想 思路 主要是一一相加和逆序的方式存储 先说逆序储存&#xff0c;看下图 我们先声明出指针p和指针q&#xff0c;还有指针head&#xff08;主要用于return上而已&#xff09;&#xff0c;然后进行一系列操作&#xff0c…

从源码学习单例模式

单例模式 单例模式是一种设计模式&#xff0c;常用于确保一个类只有一个实例&#xff0c;并提供一个全局访问点。这意味着无论在程序的哪个地方&#xff0c;只能创建一个该类的实例&#xff0c;而不会出现多个相同实例的情况。 在单例模式中&#xff0c;常用的实现方式包括懒汉…

【论文精读】DALL·E2

摘要 CLIP被证明其可以学习到鲁棒的图像特征&#xff0c;可以有效的捕获图像的语义和风格&#xff0c;且具有很强的zero-shot能力。另外&#xff0c;Diffusion是目前最优的生成式框架&#xff0c;其推动了图像、视频生成任务的最先进性能。Classifier-Free Diffusion指导技术以…

汽车大灯尾灯灯罩裂了可以修复吗?汽车大灯尾灯裂缝修复用什么胶?拆开的灯罩用什么胶合壳密封?

随着科学技术的不断发展&#xff0c;汽车大灯尾灯破损是可以修的。 TADHE车灯无痕修复专用UV胶是一种经过处理的UV树脂胶&#xff0c;主要成份是改性丙烯酸UV树脂。应用在车灯的专业无痕修复领域。 其具备环氧树脂胶优点的同时&#xff0c;还有如下特点&#xff1a; 固化时间…

Vue模板引用之ref特殊属性

1. 使用实例 <template><input ref"input" name"我是input的name" /><br /><ul><li v-for"arr in array" :key"arr" id"111" ref"itemRefs">{{arr}}</li></ul> </…

【蓝桥杯省赛真题28】python输出字符串 中小学青少年组蓝桥杯比赛python编程省赛真题解析

目录 python输出字符串 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python输出字符串 第十二届蓝桥杯青少年组python比赛选拔赛真题 一、题…

IDA使用-2023CICSN华中赛区pwn题逆向为例

文章目录 相关字节标识导入函数和导出函数找程序入口函数选项设置重命名CISCN2023华中赛区分区赛AWDIDA源码main 构造结构体sub_141B() 打开局部变量类型的视图增加变量类型重新定义变量类型再次设置变量类型并重新定义再次设置变量类型并重新定义再次设置变量类型并重新定义 设…

JavaSE-04笔记【面向对象01】

文章目录 1. final 关键字1.1 采用final修饰的类不能被继承1.2 采用 final 修饰的方法不能被覆盖1.3 采用 final 修饰的变量(基本类型)不能被修改1.4 采用final 修饰的变量必须显示初始化1.5 如果修饰的引用&#xff0c;那么这个引用只能指向一个对象&#xff0c;也就是说这个引…

云原生之容器编排实践-kubectl get pod -A没有coredns

背景 前面搭建的3节点 Kubernetes 集群&#xff0c;其实少了一个组件&#xff1a; CoreDNS &#xff0c;这也是我后面拿 ruoyi-cloud 项目练手时&#xff0c;部署了 MySQL 和 Nacos 服务后才意识到的&#xff1a;发现Nacos无法通过服务名连接MySQL&#xff0c;这里 Nacos 选择…

MySQL-主从复制

目录 1. 主从复制概述 1.1 如何提升数据库并发能力 1.2 主从复制的作用 2. 主从复制的原理 2.1 原理剖析 三个线程 复制三步骤 复制的问题 2.2 复制的基本原则 3. 一主一从架构搭建 3.1 准备工作 3.2 主机配置文件 3.3 从机配置文件 3.4 主机&#xff1a;建立账户…