linux操作系统——冯诺依曼体系结构

冯诺依曼体系结构 

体系结构有一种是从计算机组成的角度去谈的,还有一种是从芯片架构方面去谈的,下面我们是从我们的计算机组成原理的角度去理解冯诺依曼体系结构的。

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

计算机里面的几乎所有的设备都有数据存储的能力!

磁盘外设是永久存储介质。

CPU这个设备,它处理数据的速度是非常快的,然后是内存,然后是各种外设(这里我们以磁盘为代表)。

以CPU为中心,距离CPU越近,存储效率越高,造价越贵。 

那么为什么要进行存储分级呢?

有人说,为什么不直接全部使用高价格,制作出存储效率最高的计算机出来呢?

原因:如果全部用高价格的存储介质,那么必定带来的就是造价成本太贵了,普通老百姓用不起。

那又有人说,为什么不全部使用最低价格的存储介质呢?这样就能解决造价太贵的问题了呀!

原因:如果我们全部用便宜的存储介质,计算机价格便宜,但是由于存储效率太低,基本上用不了。

所以出现了存储分级,使得造出来的计算机成本不太高,效率也不差,自然计算机的价格也不太贵,那么当代的计算机,老百姓们也用的起了,这才得以广泛使用。

与其说是存储分级,不如说是速度分级,或者说是存储分级。

在数据层面上 ,当代的CPU一般是不和外设直接打交道的。       为什么呢?

原因:根据木桶效应,装多少水取决于那块最短的板,也就是说,在数据层面上如果CPU直接和外设打交道,那么计算机的性能最终取决于外设的存储效率,而又因为外设的存储效率太低了,所以会拉低整个计算机的性能。所以在数据层面上,CPU应该优先要和内存打交道,因为内存的存储效率是要比外设高的,如果CPU直接和内存直接打交道,那么根据木桶效应,整个计算机的性能是由内存决定的,这样就使得整个计算机的性能相对于CPU与外设直接打交道的性能要高很多。

内存就是一个硬件级别比较大的缓存。

所以,基于冯诺依曼体系结构的计算机,他的本质:用比较少的成本,做出了效率不错的计算机,也就是说性价比比较高。

对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上

冯诺依曼体系结构案例的理解

 下面我们分析三个案例:

1.先拿我们平常写C语言代码的案例来说,我们应该都听过说:程序在运行之前,都要先把程序加载到内存,为什么呢?

程序=代码+数据,最终都需要CPU来进行处理,而CPU需要先读取到你所写的这些代码和数据,但是CPU只和内存有数据层面(可以理解为二进制层面)的交互,最终形成了一个.exe,本质就是一个文件,只能在磁盘(外设)中保存,所以程序想要运行就得把.exe文件加载到内存才能让CPU来跑。

2.假设今天我在北京,你在西安,我们都登上了qq这个软件,我们都打开了各自的对话框,发了一个“在吗?”。请在硬件层面上解释一下“在吗?”这个信息在设备上的数据流动。

首先,在我的电脑上输入设备肯定是键盘,由于我发过去的信息给你的时候我们通常在QQ对话框上看到的不仅仅是“在吗?”这条消息,还有发消息的时间等等内容,学过网络的小伙伴呢肯定都知道,我们是要将这条消息进行打包封装的,但是我们这里就暂且忽略网络,我们的QQ运行的时候就是被加载到了内存的,所以我们在QQ发送的消息也可以理解为从键盘输入加载到了内存,然后经过CPU处理比如打包封装,通过我们的网卡外设进行输出,然后经过网络传输,传输到你的输入设备同样是网卡,然后加载到内存,通过解析,去除封装把消息输出到你的显示器上,那么你就能看到我发过去的“在吗?”这条消息,那么有时候我们发送的消息有时候自己也能看到自己的消息呢是因为,我们的输出设备不止一个,我们通过网卡的输出发送数据的同时,也可以输出一份数据到显示器当中让我们自己能够看到。

3.那么如果我把文件拖拽到了QQ的对话框,发送文件给你,请描述一下这个过程?

首先呢,我的文件是保存到磁盘里面的,所以输入设备是磁盘,当我们把文件拖拽到QQ对话框的时候,其实本质就是把文件加载到了内存中,然后通过打包封装,通过网卡这个输出设备用网络传输到你的网卡中,也就是你的输入设备中,然后发送过去之后,你看到的并不是文件的内容,而是文件的名字和文件的图标,那是因为你通过接受文件把该文件保存到了你的磁盘当中。

操作系统(Operator System)

1.操作系统是什么?

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

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

2.为什么要有操作系统呢?

操作系统将软硬件资源管理好(这只是操作系统管理的一种手段),更重要的是要给用户提供良好的(易用,稳定,高效,安全)使用环境(这才是目的)。

3.操作系统如何管理?

举个生活中的例子,你呢,是一个大学生,步入了大学生活,我们都知道,我们大学四年跟辅导员打交道是最常见的,但是呢,跟校长打交道甚至有可能大学四年,校长的面都见不到,或者说毕业的时候可能能够见到,但是一般都见不到,这在我们大学生活中是比较常见的现象,但是呢,我们在哪个班,我们的姓名,学号,宿舍寝室,哪天哪节课,在哪上课,哪些学生成绩好,给哪些学生发奖学金却又是被安排的井井有条的,校长一直在管理着我们,管理的这么好,我们确一直没有见过他,这又是为什么呢?我们感觉一直是辅导员管理这我们,其实真正的管理者是这个学校的校长。那我们就好好的来谈谈什么是真真的管理者,我们生活中做的事情从宏观上来看,无非就分为两种,一种是做决策一种是做执行。在学校我们躺在床上的时候是吃饺子呢?还是嗦粉呢?这叫做我们在做决策,后来我起床了,去吃饺子,这叫做执行。在我们生活中呢我们可能既做决策又做执行,但是真正的管理者基本上都是做决策或者少量执行,或者我们不谈执行,就是做决策。

比如说,最近响应学校开运动会的事情,运动会要不要开呢?校长决定开,那校长会不会一个一个下去通知每一个学生说:张三,明天下午两点运动会,记得来参加哦。   校长会这样做吗?答案是:不会。校长应该是找到学院院长或者体育老师通过开会决定开运动会之后,学院院长组织辅导员,辅导员组织学生们参加运动会。但是如果给你来作决策,会不会说,我今天想跑个步,让学校开一场运动会吧,我今天想吃面条,让学校食堂都换成面条,会不会呢?不会,所以呢我们这里谈到的做决策必须是一种正确的决策。那么如何能够做出正确的决策呢?依据是:根据大量的数据做决策,所以想要做出正确的决策我们前提条件得有完善的数据。

假设我是一个公司的领导,手底下有十个程序员,手上有10000块钱的奖金想要发下去,那么可以收集通过总结他们这一年中写了多少代码,出了多少bug,解决了多少bug,解决bug的速度怎么样,跟团队之间的沟通能力怎么样,一结合进行排名,那么就知道奖金如何发放了。

所以说我们一个真正厉害的领导者要想做出正确的决策是需要大量完善详细的数据的。

重新回到上面那个例子,假设就校长,辅导员,学生三个层次,其中校长就是管理者,学生是被管理者

辅导员收集学生的个人信息带到校长办公室给校长,校长通过这些数据信息进行做决策,所以我们可以得出一个结论:管理的本质不是管人,而是管理数据。

通过上述结论可以知道,为什么我们没见过校长,校长却能管理我们,见面只是形式上的,本质上真正被管理的是我们的数据信息。

那么如何管理好这些数据信息呢?

以学校的学生信息为例:学生都有各自的姓名,学号,性别,身高,成绩,紧急联系人,成绩等等信息,我们可以以表格的形式来存放,但是如果我们想让计算机管理起来,在C语言层面上我们就构建一个结构体来进行管理,C++来说就是一个类,我们也可以利用数据结构,比如说链表或者其他高效的数据结构进行管理。所以最后对学生的数据信息管理最后就转变成了对链表的增删查改

类比到我们的操作系统当中就是操作系统通过管理这些数据结构来管理硬件设备。

这是对学生的管理的一个建模的过程。

最后都高度抽象总结成六个字:先描述,再组织。

操作系统管理的核心:

1.进程管理

2.内存管理

3.文件/IO管理

4.驱动管理

操作系统总结

计算机管理硬件
1. 描述起来,用struct结构体
2. 组织起来,用链表或其他高效的数据结构

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

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

相关文章

网络技术基础与计算思维实验教程_2.2_单交换机实验_重制版

实验内容 实验目的 实验原理 关键命令说明 开始实验 构建 选择交换机 选择终端--台式机 放置四台终端 直通线连接 依次连接pc0到pc3 终端配置Ip地址和子网掩码 完成了交换机和终端连接以后,为每一个终端配置Ip地址和子网掩码 单击pc0 在选择桌面选项卡中选择Ip配置使用程序 …

Lazada商品评论列表API:电商行业的实时反馈宝库

一、引言 在当前的电商行业中,获取实时、准确的用户反馈数据对于电商业务运营至关重要。Lazada是东南亚地区领先的电商平台之一,提供了丰富的API接口,其中包括获取商品评论列表API,以便第三方开发者能够获取Lazada内的商品评论信…

Docker部署 flowable-ui 进行流程建模

Docker部署 flowable-ui 进行流程建模 简介 安装Docker Desktop,本篇无安装步骤安装正常打开运行后,正式开始部署flowable-uicmd执行拉取镜像操作docker pull flowable/flowable-uicmd启动镜像docker run -d --name flowable -p 8081:8080 flowable/flowable-ui修…

Leetcode 134 加油站

题意理解: 给定n个站点,两个数组gas表达每个站点可加的油量,cost表达到下一站点所需耗费的油量。 gas [1,2,3,4,5], cost [3,4,5,1,2] 要求从下表为i的站点开始,刚好能支撑汽车在每个站点转一圈后回到出发位置。 解题思路&#…

route 路由使用记录

一、路由的基本介绍 路由是计算机网络中的一个重要概念,它用于确定数据包从源地址到目的地址的路径。在网络中,路由器是负责转发数据包的设备。 下面是关于路由的基本知识和使用方法的介绍: 路由表:路由器通过路由表来确定数据包…

Gamma分布

分布的概率密度为: 其中参数 分布的数学期望等于,方差等于。

玩具乐器企业网站建设的作用是什么

玩具乐器的市场需求度非常高,对玩具乐器厂家而言,经销批量卖货是主要的,然而却并不容易,玩具乐器厂商品牌宣传及拓客转化方面面临痛点: 1、线上无平台、拓客难 玩具乐器商家缺少品牌宣传方式,线下难以拓展…

Postgresql中PL/pgSQL的游标、自定义函数、存储过程的使用

场景 Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句: Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句-CSDN博客 上面讲了基本语法,下面记录游标、自定义函数、存储过程的使用。 …

vue3引入高德地图流程(key和秘钥),仅需三步

步骤一&#xff1a; 申请key和秘钥 步骤二&#xff1a; 安装amap/amap-jsapi-loader依赖 cnpm i amap/amap-jsapi-loader // 或者 yarn add amap/amap-jsapi-loader步骤三&#xff1a; <template><div id"gdMapCon"></div> </template>…

好物设计- 实现区域图片变化自动截图

工具–Py即可 重点怎么获取窗口句柄? 使用 spyxx 可以获得句柄 (相当一个窗口的ID,无论窗口怎么变化ID不变我们都可以找到该窗口的详细信息) 替换句柄就可以,也可以不用句柄之间改截图区域 实战图片 import pygetwindow as gw import pyautogui import time import numpy a…

14:00面试,14:08就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到5月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

手机怎么设置每年公历或农历生日提醒?生日提醒设置小妙招

生日是一个人在一年中比较特殊的日子之一&#xff0c;人们通常希望能够在这一天得到亲朋好友的祝福和庆祝。然而&#xff0c;随着人们生活节奏的加快&#xff0c;很多人表示自己很容易忘记他人的生日&#xff0c;导致不能够及时送出祝福和礼物。如果经常忘记亲朋好友的生日&…

ardupilot开发 --- waf 篇

查看waf编译都有哪些可用选项&#xff1f; Tools/ardupilotwaf/boards.py 中查看。 怎么打开下面的条件编译&#xff1f; 只需在 Tools/ardupilotwaf/boards.py 中查找关键字 “ AP_RTC_ENABLED ”

【powershell】Windows环境powershell 运维之历史文件压缩清理

&#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&am…

vue 使用 html2canvas 截取图片保存

vue 使用 html2canvas 截取图片保存 好久没有写博文了&#xff0c;写够了&#xff0c;没啥想写的了&#xff0c;这个号算是废了&#xff0c;哎&#xff0c;气人啊&#xff01;越来越胖&#xff0c;越来越懒了。 html2canvas 简介 html2canvas是一个JavaScript库&#xff0c;它…

为你自己学laravel - 15 - model的更新和删除

为你自己学laravel。 model的部分。 这一次讲解的是model当中怎么从数据库当中更新数据和删除数据。 先从数据库当中抓出来资料。 当然我们是使用php artisan tinker进入到终端机。 我们的做法是想要将available这个栏位修改成为true。 第一种更新方法 上面我们就是修改了对…

python实现一个图片查看器——可拖动、缩放和颜色画笔

目录 0 前言1 准备工作2 窗口布局3 图片显示功能3 图片拖拽功能4 图片缩放功能&#xff08;难度大&#xff09;5 画笔功能6 颜色选择功能后记源码 0 前言 在现如今的数字时代&#xff0c;我们对于图片的需求越来越大。无论是在工作中&#xff0c;还是在日常生活中&#xff0c;…

学习使用echarts图表中formatter的用法,格式化数字金额,控制x轴、y轴展示长度

学习使用echarts图表中formatter的用法&#xff0c;格式化数字金额&#xff0c;控制x轴、y轴展示长度 控制金额长度两位小数&#xff0c;并去除多余.00效果图 控制文字长度完整代码 控制金额长度 series: [{name: ,type: bar,sort: none,label: { //饼图图形上的文本…

GitHub two-factor authentication开启教程

问题描述 最近登录GitHub个人页面动不动就有一个提示框”… two-factor authentication will be required for your account starting Jan 4, 2024 …“&#xff0c;点击去看了一下原来是GitHub对所有的用户登录都要开启双重身份认证&#xff0c;要在1月4号前完成 解决办法 …