深入篇【Linux】学习必备:认识冯诺依曼系统+理解操作系统(‘‘管理‘‘)

news2024/12/25 23:38:34

深入篇【Linux】学习必备:认识冯诺依曼系统+理解操作系统(''管理'')

  • Ⅰ.冯诺依曼系统结构
    • 1.特点(what)
    • 2.理解(why)
    • 3.案例(how)
  • Ⅱ.操作系统概念与定位
    • 1.概念(what)
    • 2.设计OS目的(why)
    • 3.管理(how)

Ⅰ.冯诺依曼系统结构

1.特点(what)

在这里插入图片描述
我们认识的计算机,都是由一个个的硬件组成的。

1.首先需要理解的是这里的存储器是什么?
存储器就是内存。
要注意比如磁盘U盘等不是内存,而是外存。

2.输入设备都有哪些呢?
键盘,鼠标,摄像头,话筒,磁盘,网卡。
其中当从磁盘中读取文件(数据)时,磁盘就属于输入设备。
当从网卡中读取信息时,网卡就属于输入设备。

3.输出设备都有什么呢?
显示器,打印机,播放器,磁盘,网卡。
其中当从磁盘中写入文件(数据)时,磁盘就属于输出设备。
当从网卡中发送信息时,网卡就属于输出设备。

4.输入设备与输出设备构成外设。

5.中央处理器(CPU)由两个硬件组成:运算器与控制器。
运算器:对输入的数据进行计算任务(算术运算,逻辑运算)
控制器:对我们的计算机硬件流出进行一定的控制

6.各个硬件单元必须要用"线"链接起来,这个线称为总线。
存储器与CPU之间交互的线称为系统总线。
外设与存储器之间交互的线称为IO总线。

对应冯诺依曼体系我们要重点记住它的特点:
1.不考虑缓存情况,这里的CPU接收或发送数据,只能从内存中读取或写入,不能直接访问外设。
2.外设要输入或输出数据,只能先写入内存或者从内存中读取。
总之,所有设备都只能直接与内存打交道。

2.理解(why)

我们可以从存储和效率两个方面来解释为什么。
1.一般这些设备都是具有存储能力的。
并且一般容量越大速度就越慢,离CPU就越远,所有存储是分级的。
在这里插入图片描述

2.不能CPU直接与外设进行交互,因为它们的速度差太大了,根据木桶效应,最终的效率是取决于最差的传播效率的。所以如果CPU直接与外设进行交互,那么最终的效率就取决于外设的传播效率了。
所以为了适存,将内存放在它们之间作为过渡,因为内存的效率要比外设快的多,这样就可以提高效率了,也就是最终以内存的效率为主体。

3.内存可以作为硬件级别的缓存空间,输入设备输入数据时,可以先预存到内存里,当CPU忙完时,就直接可以从内存中获取数据直接计算,不需要等外设再输入到内存中了。所以说CPU是可以一遍加载,一边计算的,这个工作是由操作系统来完成。

3.案例(how)

1.我们在写代码,形成可执行程序时,可能经常听到这样一句话,一个程序要运行,必须要先加载到内存中才可以运行。
现在我们可以理解这句话真正的意思了,代码其实也就是数据,而数据想要被采集计算,就要先加载到内存中,才可以被CPU接收,然后输出数据给内存,内存再将数据写入外设中。
这正是冯诺依曼体系规定的。
2.对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上。
比如,当你登上QQ开始和你的朋友聊天,这个过程之间数据是如何流动的呢?

①首先我们要理解QQ其实就是一个软件,一个程序,程序中都是数据,要想执行这个程序,也就是登上QQ,必须要将QQ加载到内存里。而
在这里插入图片描述
②在你发送信息的过程中,你的键盘作为输入设备,将信息数据输入到内存中,由CPU处理再返回到内存中,然后从内存中将数据写入到网卡中(往网卡写入数据)。
③通过网络,你的朋友在QQ上接收到了信息。
④而你的朋友在收到信息的过程中,它的网卡相当于输入设备(从网卡中读取数据),数据加载到内存,经CPU处理,最终到了他的显示屏上去。

再比如,当你登上QQ,发送一个文件给你的朋友,这个过程中数据是如何流动的呢?

在这里插入图片描述
①将文件发送给朋友这个过程,文件是在磁盘中的,所以要从磁盘中读取文件,磁盘也就作为输入设备,将文件数据加载到内存中,经CPU处理,返回给内存,最后从内存中写入到网卡中,网卡就作为输出设备了
②你的朋友在QQ端接收到文件,并下载下来的过程中,网卡作为输入设备,因为要从网卡中读取发送过来的文件数据,然后加载到内存中,经CPU处理,返回到内存中,可能有的人会想这个文件最后就是在内存中了,并不是的,我们知道,接收的文件关闭电脑后打开还是在的,但CPU内存是关机后数据就不存在了,所以最终文件并不在内存中,而是从内存中写入到了你的磁盘里。

Ⅱ.操作系统概念与定位

1.概念(what)

1.任何操作系统都包含一个基本的程序集合,称为操作系统OS。
操作系统包括:
①内核(进程管理,内存管理,文件管理,驱动管理)
②其他程序(函数库,shell程序等)

2.操作系统就是一款进行管理的软件!
不仅可以管理一堆硬件还管软件。
管理软硬件的方法就是提供一系列接口,计算机硬件与其他软件接口,用户和计算机的接口。

2.设计OS目的(why)

1.操作系统可以帮助用户管理好下面的软硬件资源。
2.为了给用户提供一个良好(稳定,高效,安全)的环境。
所以,操作系统通过管理好底层的软硬件资源(手段),为"用户"提供一个良好的执行环境(目的)。

这里的用户可以分为普通用户,和程序员。
其他普通用户用的也不是操作系统,而是由程序员在操作系统上开发的各种软件程序。所以更进一步的来说,这里的用户更多的是程序员。因为操作系统使用上很困难,普通用户不可能直接使用操作系统。用户使用的更多的是基于程序员开发的软件。

3.管理(how)

在这里插入图片描述
1.操作系统如果要管理底层硬件,必须要有对应的驱动程序,才可以进行交互,不然无法交互。
2.操作系统如果想管理上层软件,需要使用系统调用接口来配合。

①操作系统里面,有各种数据,但是操作系统不相信任何用户,因为有点用户不怀好意,不允许用户随便更改他的数据和代码,所以操作系统决定要将自己封装起来。
②但操作系统一旦将自己封装起来,那么用户就无法使用,操作系统存在的意义就没有了,所以操作系统为了操作自己数据安全,也为了保证给用户能提供服务,操作系统以接口的方式给用户提供调用的接口,用户就可以获取操作系统内部的数据了。
③这些接口是操作系统提供的用C实现的,自己内部的函数调用----调用这些接口的行为称为系统调用。
④所有服务操作系统的行为,都只能通过系统调用完成!没有其他方式访问。
⑤系统调用的使用上来说,对于普通用户还是很困难,因此,有些开发者就对于部分系统调用进行适度的封装,进而形成了库。也就是说,库函数底层封装着系统调用的接口,这也是为什么库会在系统调用的上面。

3.操作系统与硬件是不需要直接进行交互的------那操作系统是如何管理硬件的呢?
操作系统只要能够得到硬件的相关消息,就可以在未来进行管理决策,所有管理的本质就是通过对数据的管理,达到对硬件的管理,而操作系统是如何拿到硬件的数据的呢?
通过驱动程序来获取硬件的数据!
4.但如果当获取的数据量太大了,就很难进行管理了,这该怎么办呢?
操作系统是这样做的:

①对要管理的的对象进行描述,通过对象的各种属性来设计一个结构体。也就是这个结构体里面都是该类对象的各种属性。通过属性的不同分类出不同的对象。
②将对象描述出来后,就将这些对象组织里来,可以使用链表将这些对象连接起来。
这样,操作系统就成功的对底层硬件的管理工作,转化成了对链表的增删查改。

【总结】计算机如何管理硬件,可以总结出6个字:先描述,再组织。
在操作系统中,管理任何对象,最终都可以转化成为对某种数据结构的增删查改。而操作系统包含了内存管理,文件管理,进程管理,驱动管理,这就注定了操作系统里,一定存在着大量的数据结构!

1.先描述起来,用struct结构体描述对象的各种属性。
2.再组织起来,用链表等其他数据结构将对象组织起来。

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

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

相关文章

ETHERCAT转ETHERCAT网关三菱plc支持ethercat吗

大家好,今天要和大家分享一款神器——远创智控YC-ECAT-ECAT通讯网关!这款网关有什么厉害的呢?且听我慢慢道来。 首先,YC-ECAT-ECAT是一款自主研发的ETHERCAT从站功能的通讯网关。那什么是ETHERCAT呢?简单来说&#xff…

揭秘ChatGPT的流式返回

107. 揭秘ChatGPT的流式返回 ChatGPT是一种强大的语言模型,可以生成自然语言响应。在传统的请求/响应模型中,客户端发送请求,服务器处理请求后返回响应。但是,使用流式返回可以实现持续的数据流,使得客户端能够实时接…

水文水动力模型在城市内涝、城市排水、海绵城市规划设计中深度应用

随着计算机的广泛应用和各类模型软件的发展,将排水系统模型作为城市洪灾评价与防治的技术手段已经成为防洪防灾的重要技术途径。将聚焦于综合利用GIS及CAD等工具高效地进行大规模城市排水系统水力模型的建立,利用SWMM实现排水系统水力模拟。讲解SWMM深度…

rabbitmq使用springboot实现fanout模式

一、fanout模式 类型&#xff1a;fanout特点&#xff1a;Fanout—发布与订阅模式&#xff0c;是一种广播机制&#xff0c;它是没有路由key的模式。 二、实现 1、引入相应的pom文件 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project x…

左神算法 重要技巧:递归的加速技巧(斐波那契数列套路)以及推广

目录 【案例1】【十分重要 &#xff1a; 斐波那契递归套路&#xff0c;只要像斐波那契这种严格递归都可以进行类似的优化】 【有严格的递归项后&#xff0c;通过线性代数的知识进行优化】 【代码实现】 【技巧推广】 【实例1 使用这个技巧】 【题目描述】 【思路解析】 …

求两个数的最大值max

函数实现 int max(int a, int b); 函数接收两个整数参数&#xff0c;在内部用if语句判断哪个大&#xff0c;返回大的即可。 完整代码 #include <iostream> using namespace std;int max(int a, int b) {if (a > b){return a;}else{return b;} }int main() {int n1…

开发工具篇第25讲:阿里云MFA绑定Chrome浏览器Authenticator插件

开发工具篇第25讲&#xff1a;阿里云MFA绑定Chrome浏览器Authenticator插件 本文是开发工具篇第25讲&#xff0c;登录阿里云旗下产品时&#xff0c;需要使用mfa登录&#xff0c;每次如果要用手机看mfa码很麻烦&#xff0c; Chrome浏览器提供了一个快捷的登录方法&#xff0c;可…

软件工程师,学习下JavaScript ES6新特性吧

概述 作为一名软件工程师&#xff0c;不管你是不是前端开发的岗位&#xff0c;工作中或多或少都会用到一点JavaScript。JavaScript是大家所了解的语言名称&#xff0c;但是这个语言名称是Oracle公司注册的商标。JavaScript的正式名称是ECMAScript。1996年11月&#xff0c;JavaS…

Mysql根据积分排名

积分表&#xff1a;t_participant_points 1、带并列 SELECT p.*, CASE WHEN prevRank p.total_points THEN curRank WHEN prevRank : p.total_points THEN curRank : curRank 1 END AS ranking FROM ( SELECT total_points …

LabVIEW-实现波形发生器

一、题目 用两种方法实现一种多类型信号波形发生器&#xff08;至少包括&#xff1a;正弦波、三角波、方波等&#xff09;&#xff0c;可以调节信号频率、幅度、相位等参数&#xff0c;可以图形化显示信号波形。 需要给出产生信号波形的基本方法、程序设计基本方法以及程序实现…

931.下降路径最小和

931.下降路径最小和 给你一个 n x n 的 方形 整数数组 matrix &#xff0c;请你找出并返回通过 matrix 的下降路径 的 最小和 。 下降路径 可以从第一行中的任何元素开始&#xff0c;并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列&#xff08;即…

【图像处理】经营您的第一个U-Net以进行图像分割

一、说明 AI厨师们&#xff0c;今天您将学习如何准备计算机视觉中最重要的食谱之一&#xff1a;U-Net。本文将叙述&#xff1a;1语义与实例分割&#xff0c;2 图像分割中还使用了其他损失&#xff0c;例如Jaccard损失&#xff0c;焦点损失&#xff1b;3 如果2D图像分割对您来说…

刘铁猛C#教程笔记——详解类型,变量和对象第二节

C#类型派生谱系 C#语言五大基本类型&#xff1a; 1.类类型&#xff1a;由class关键字声明的类型&#xff0c;常见的类类型有&#xff1a;string&#xff0c;object 2.结构体类型&#xff1a;由struct关键字声明的类型&#xff0c;常见的结构体类型有&#xff1a;int&#xff0c…

Vue3 基本语法

尤雨溪 文章目录 前言MVVM框架认识Vue文本渲染指令 v-text属性绑定指令title 属性动态绑定class属性动态绑定style 属性动态绑定 事件绑定 事件名条件渲染指令v-ifv-if 和 v-showv-else 和 v-else-if 循环遍历指令 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&am…

Documentation 代码注释文档规范

1. 代码注释文档规范的添加 /// 代码规范文档 struct DocumentationBootcamp: View {// MARK: PROPERTIESState var data:[String] ["Apples", "Oranges", "Bananas"]State var showAlert: Bool false// MARK: BODY// Code Folding : 代码折叠…

Spring Boot原理分析(二):IoC

文章目录 〇、IoC思想和IoC容器IoC体现了什么思想什么是IoC容器 一、Spring IoC容器的继承层次1.BeanFactory2.ListableBeanFactory3.HierarchicalBeanFactory4.ApplicationContext5.常用的ApplicationContext的实现类ClassPathXmlApplicationContext&#xff08;基于XML配置&a…

FreeRTOS详细目录结构和作用

FreeRTOS各个目录的功能简介 1. Demo目录&#xff1a;这个目录下主要包含了大量官方支持的微控制器和不同平台上的项目&#xff0c;包括常用的stm32和keil平台下进行开发的项目。我主要使用的是CORTEX_STM32F103_Keil和common两个目录&#xff0c;对系统进行精简的话可以只保留…

光伏行业中的设备自动化系统EAP:优化生产流程的重要工具

随着清洁能源的需求不断增长&#xff0c;光伏行业作为可再生能源的重要组成部分&#xff0c;正迅速发展。为了满足日益增长的市场需求&#xff0c;光伏企业需要提高生产效率、降低成本&#xff0c;并保证产品的质量和可靠性。 图.光伏面板&#xff08;pexels&#xff09; 在这…

校园跑腿小程序怎么做

校园跑腿小程序是为了方便学生在校园内解决各类需求而设计的一款应用程序。该小程序具有多种功能&#xff0c;包括校园跑腿、二手市场、骑手接单、校园表白墙、下单支付、学校代理以及佣金抽成等。 1. 校园跑腿&#xff1a; 该小程序提供校园内的跑腿服务&#xff0c;学生可以…

【开源项目】中后台开发框架vue-admin-work-pro

vue-admin-work-pro 基本介绍 基于Vue3、Vite、TypeScript、NaiveUI、Vuex等最新技术栈开发的开箱即用的中后台前端框架。 内置常用模板&#xff0c;无需考虑交互排版&#xff0c;助你高效开发样式美观大方&#xff0c;无缝对接 Naive Ui&#xff0c;随意组合页面&#xff0c…