【Linux从入门到放弃】冯诺依曼体系机构、操作系统及管理的本质

news2024/11/18 13:57:25

🧑‍💻作者: @情话0.0
📝专栏:《Linux从入门到放弃》
👦个人简介:一名双非编程菜鸟,在这里分享自己的编程学习笔记,欢迎大家的指正与点赞,谢谢!

在这里插入图片描述

文章目录

  • 前言
  • 一、冯诺依曼体系结构
    • 1.1 冯诺依曼体系组成部分
    • 1.2 若内存不存在
    • 1.3 硬件层面,单机与跨主机之间的数据流向
      • 1.3.1 单机
      • 1.3.2 跨主机
  • 二、操作系统
    • 2.1 概念
    • 2.2 如何理解操作系统对硬件做管理
    • 2.3 决策者和执行者的关系
    • 2.4 管理的本质
    • 2.5 操作系统为什么对软硬件做管理?
  • 总结


前言


  在学习linux的过程中,有一个特别重要的知识点就是关于进程的学习,那么在学习进程之前,首先对硬件做一些了解,然后再学习软件,在软硬件都学完之后再取去了解进程的概念。

一、冯诺依曼体系结构

  我们常见的计算机,如笔记本;或者我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。
在这里插入图片描述

1.1 冯诺依曼体系组成部分

  1. 输入设备:计算机是对数据做处理的,那么前提条件就是要先将数据给到计算机,就要通过输入设备来完成这个操作,而输入设备一般指的是键盘、鼠标、话筒、摄像头、网卡、磁盘等。
  2. 输出设备:计算机本质是给人提供服务的,在将数据计算完毕之后要将结果呈现给用户,这就需要通过输出设备来呈现给用户,输出设备一般指的是显示器、磁盘、网卡、声卡、音响等。

输入设备和输出设备统称为外围设备,简称外设,它们的数据处理速度相对于内存来说是慢一点的,而CPU是整个结构中速度最快的。

  1. 存储器:也成为内存,输入设备先将数据给到内存,然后CPU再与内存沟通拿数据。
  2. CPU(中央处理器):计算机中最核心的功能块,完成数据的处理工作。含运算器和寄存器等。

1.2 若内存不存在

在这里插入图片描述
  我们都知道,计算机是从输入设备处采集数据,在CPU处完成处理工作,然后再将处理结果给到输出设备,那么我们不要这个内存可以不,当然可以。但是,外设的数据处理速度是特别慢的,而CPU的处理速度又特别的快,这就可以提到 “木桶原理” ,表达的意思就是这个桶能乘多少水不取决于最长的木板长度,而是最短的木板长度。也就表明了整个计算机的处理效率就以外设的处理效率为主的。
  所以,这就需要内存来起到一个中间过渡的作用,缓解 “木桶原理” 带来的效率下降的问题。外设,内存,CPU它们三个之间的数据处理速度是不一致的,有一定的差距。但是内存有一个特点:可以临时存数据,并且速度还不慢,那么就可以在CPU处理A任务的时候,将外设中关于B任务的数据搬到内存当中,当A任务被处理完毕之后就可以直接从内存当中拿到B任务进行处理。因为有了内存的存在,可以对数据进行预加载,CPU以后在进行数据计算的时候不需要访问外设了,直接从内存中拿数据即可。

结论1: 在数据层面,一般CPU不和外设直接沟通而是直接只和内存打交道。

1.3 硬件层面,单机与跨主机之间的数据流向

1.3.1 单机

在这里插入图片描述
  比如说:我们打开视频APP要看电视剧,首先要将这个客户端软件加载到内存中,然后这个软件就可以被CPU执行,然后我们就可以看到这个软件的客户端界面,当点击播放的时候它就从网络中将关于这个视频资源的数据先拿到内存中,再进行数据计算,比如该视频是收费的,在免费播放了五分钟之后就强制关闭了,或者在10分钟的时候加一段30s的广告等等最终将计算结果给到内存然后再给到输出设备(显示器)。

1.3.2 跨主机

你和你的朋友微信聊天,你发送一个干啥着呢?那么整个信息是如何在体系结构中流动的?(不考虑网络的情况,即发出去就可以收到)
在这里插入图片描述

  1. 你通过键盘输入“干啥着呢?”到内存中,然后数据要做计算(因为数据在发送时可不止一条或者你的数据很私密,所以要进行加密),然后将计算之后的结果写回到内存中,然后再将该数据显示到输出设备(将数据刷新到本地的显示器中,同时将该数据发送到网卡中,对应你朋友的输入设备)
  2. 同样先从网卡中获取到数据交到内存中,在CPU拿到数据之后进行解密操作,把数据又给到内存,然后再将数据刷新到输出设备中(你朋友的显示器)

结论2: 外设只和内存打交道(数据层面)

二、操作系统

2.1 概念

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

2.2 如何理解操作系统对硬件做管理

  谈到管理,举个简单例子:比如在学校这样的场景下,有三种角色:校长,导员,学生,很明显学生是充当被管理者的角色,而管理者是谁呢?校长还是导员呢?按道理来说作为一个大学生来说,四年下来基本上见不到校长的面,那么导员应该是管理者,对不对呢?
  在日常生活中,我们每一个人既是决策者也是执行者,比如:我今天中午要吃什么饭(决策),然后就去吃了(执行)。而作为管理者,大部分工作是拥有决策的能力,而非执行。
  那么很明显校长是决策者,关于学校的一些指令都是校长下发的,而导员只是按照校长的指令行事。

职业职能
校长决策
导员决策并执行
学生参与执行

2.3 决策者和执行者的关系

注意:以下所有的场景都是在举例。

  比如说在学校里面,一个学生基本上很难见到校长的面,但是为什么校长能把学生管理的如此之好,不管是每天在那间教室上课,在哪个宿舍睡觉,亦或是哪些学生挂科了等等。由此可以间接说明:作为管理者和被管理者,其实是不需要直接沟通的,当然沟通也是没什么问题的。

  管理者和被管理者没有直接沟通,那么它们之间是如何管理的呢?
  在学校里面校长和学生不直接沟通,但是校长他能够知道你名字是什么,电话号码是什么,学号是多少,专业是哪个,科目已经修了多少等等,亦或是在公司里你为这个公司这一年做了多少贡献,迟到或早退了多少次,加班了多长时间等等。
  在上大学之前,你家长每天都照顾着你的一切,你早都不耐烦了,于是上了大学之后你感觉自己终于挣脱了束缚,但是假设说你家长可以知道你每天干了什么,他们就可以打电话问候你的一切,关心亦或是指责。
  其实根据上面这几个例子就可以说明:管理的本质——管理者对被管理者的数据进行管理。

  那么管理者是如何拿到被管理者的数据呢?根据学校的例子很清晰,通过导员(中间人)

  比如说,校长安排每个导员把自己所管理的每个学生的信息都统计起来发给他,因为校长要对所有人做管理,如果说要是将所有的信息都放在表格里,那就太复杂了,所以校长就按照结构体的形式(下例)将所有学生的信息都统计起来,再按照链表的方式将每个结构体对象链接起来。
  假设某个学生成绩太差要将其退学,难道只让他离校就可以了吗?当然不行,还得在这样的学生链表中将这个学生对象剔除掉;或者学校又转来一个学生,同样也是在链表中将该学生的信息形成一个结构体对象并添在其中,总之来说,校长要对学生做管理,都是在该链表上操作。

struct stu
{
	姓名,
	年龄,
	专业,
	成绩,
	电话,
	struct stu* next;
]

总结:上面举的所有例子都是在对管理的动作进行建模(将具体的一些场景转化为计算机语言)。

2.4 管理的本质

  先描述,再组织

  那么在计算机中,校园中的三种角色对应的是什么呢?
  校长——操作系统;导员——硬件驱动;学生——硬件(软件)
  硬件驱动主要负责就是与硬件的交流沟通,拿到硬件的数据后交给操作系统做决策,然后在将决策后的结果交给驱动来执行。操作系统来做决策,驱动来执行。每一个硬件(键盘、鼠标、磁盘、网卡)基本对应一个硬件驱动。

2.5 操作系统为什么对软硬件做管理?

  操作系统对下通过管理好软硬件资源(手段),对上给用户提供良好(安全、高效、稳定、功能丰富等)的执行环境(目的)。

  操作系统目的是为了给用户提供良好的服务,但是操作系统信任用户吗?
在这里插入图片描述

  就拿银行的例子来讲,它有着一些底层的硬件设施:电脑、服务器;桌椅板凳;金库;员工宿舍。再往上看分别有不同的部门角色管理下面的设施。同时在银行里有着不同的员工给用户提供不同的服务,当然也有行长这样的角色。作为一个行长,他肯定要将整个银行系统合理的管理起来, 他不仅要把这些员工管理好(根据表现奖惩),而且也要管理好底层硬件设施,但是行长不可能亲自去管理那些硬件,而是就通过驱动这样的角色去管理。
  因此,这也就说明了行长其实就是担当着操作系统这样的角色,即管理好下层硬件设施,也管理好每一位员工。行长和员工都是人,人可以管理硬件设施,也可以管理人。而操作系统是软件,它既管理软件,同时也管理硬件。

  行长对下将员工和硬件管理的如此之好,目的就是为了对上给用户提供良好的服务。但是,银行它相信你吗?

  很明显,你是信任银行的,要不然你不会去银行办业务,但是银行是不信任你的,在现实生活中你要存一万元,银行柜员不可能给你说你怎么怎么走到了金库把钱放到那里,然后出来填个表即可。对应的是操作系统给我们提供良好的服务,并不代表这操作系统会相信我们,反而操作系统不相信任何人,害怕群众中有坏人对自己造成伤害。就像是在银行里给你提供服务,但是为了保证自己(银行)的安全,它给用户提供窗口式的服务。

在这里插入图片描述
  这也就说明了在计算机硬件体系结构中,用户是不可能直接进到操作系统里面对操作系统里面的内容数据进行访问和修改呢?当然不是。操作系统为了保护自己和给用户提供服务,于是将自己的特定功能以接口的方式给用户提供出来,而这些接口在操作系统层面被称为系统调用(操作系统设计的C函数)。
  但是有时候操作系统调用接口使用成本特别高,因为一些操作你是得懂操作系统的。就一些大佬基于这些接口做了二次软件开发,于是就有了图形化界面、shell和工具集、部分指令。

在这里插入图片描述


总结

  以上就是在学习进程之前该了解的一些知识,主要明白操作系统管理的本质,而这个本质也是始终贯穿于Linux的整个学习。

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

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

相关文章

技术小知识:WAN和LAN区别 ①

1、WAN是外网接接入入口,一般指:外网,广域网,公网。 2、LAN是局域网输出接口,一般指:内网,家庭公司局域网。 局域网是小规模,近距离的一种内部范围网络布局。 外网要跨越的通讯商中…

【GESP】2023年06月图形化一级 -- 去旅行

文章目录 去旅行1. 准备工作2. 功能实现3. 设计思路与实现(1)角色、舞台背景设置a. 角色设置b. 舞台背景设置 (2)脚本编写a. 角色:Avery Walking 4. 评分标准 去旅行 1. 准备工作 (1)删除默认小…

不要错过这所211,专业课简单!保护一志愿,人称电力黄埔军校!

一、学校及专业介绍 华北电力大学(North China Electric Power University),简称华电(NCEPU),是中华人民共和国教育部直属、由国家电网有限公司等12家特大型电力集团和中国电力企业联合会组成的理事会与教育…

Java容器介绍及其操作方法

一、List ArrayList&#xff0c;LinkedList 特有的函数 <class T> get(int index) 获取下标为index的元素 <class T> set(int index, <class T> element) 改变某个元素 void add(int index, <class T> element) 在下标为index处插入元素…

API信息

API 接口渗透测试

Neo4j的简单使用

1、创建节点 CREATE (:Person {name: Alice, age: 25, city: London}) CREATE (:Person {name: Bob, age: 30, city: New York}) CREATE (:Person {name: Charlie, age: 35, city: Paris})CREATE (:Interest {name: Music}) CREATE (:Interest {name: Sports}) CREATE (:Inter…

Redis实战案例9-封装Redis工具类

1. 封装Redis工具类 方法一和三主要解决缓存穿透的问题&#xff1b; 方法二和四主要解决缓存击穿的问题&#xff1b; 2. 方法一和三 缓存穿透的封装&#xff1b; private final StringRedisTemplate stringRedisTemplate; public CacheClient(StringRedisTemplate stringRedisT…

炫技亮点 Spring Websocket idle check原理

文章目录 原理配置附件Java_websocket空闲检测原理 Spring Websocket 是基于 WebSocket 协议的实现&#xff0c;它提供了一种在客户端和服务器之间实时双向通信的方式。其中&#xff0c;idle check&#xff08;空闲检查&#xff09;是一种机制&#xff0c;用于检测 WebSocket 连…

新项目,不妨采用这种架构分层,很优雅!

大家好&#xff0c;我是飘渺。今天继续更新DDD&微服务的系列文章。 在专栏开篇提到过DDD&#xff08;Domain-Driven Design&#xff0c;领域驱动设计&#xff09;学习起来较为复杂&#xff0c;一方面因为其自身涉及的概念颇多&#xff0c;另一方面&#xff0c;我们往往缺乏…

CF449D Jzzhu and Numbers 题解

题意 给定 A 1 . . . . A n A_1....A_n A1​....An​&#xff0c;选任意个数使得它们异或和为 0 0 0&#xff0c;求方案数。 思路 很朴素的想法是枚举每个数&#xff0c;然后进行 0-1 背包方案数统计&#xff0c;时间复杂度 O ( n n ) O(n \times n) O(nn)。 而根据前面几…

linux——解压和压缩

目录 1.压缩格式 2. tar命令 3.tar命令压缩 4. tar解压 5. zip命令压缩文件 6. unzip 命令解压 7. 总结 1.压缩格式 2. tar命令 3.tar命令压缩 4. tar解压 5. zip命令压缩文件 6. unzip 命令解压 7. 总结

DragGAN windows 部署逼坑指南

可参看B站视频&#xff1a;【DragGAN开源】DragGAN win11 部署逼坑指南_哔哩哔哩_bilibili 报错信息如下&#xff1a; Setting up PyTorch plugin "bias_act_plugin"... Failed! ninja is required to load c extensions 环境配置&#xff1a; cuda:12.1visual …

C++vector动态容器类

1、std::vector::push_back&#xff08;尾差&#xff09; 1.1、std::vector::operator[] 意思为&#xff1b; 访问元素 返回对vector容器中位置n的元素的引用。 void test_vector2() {vector<int> v1;v1.push_back(1);v1.push_back(2);v1.push_back(3);v1.push_back(4);/…

这个元宇宙平台真是拼了!新上线十套模板,帮您打造虚拟展览

导语&#xff1a; 随着数字技术的不断发展&#xff0c;线上虚拟展览正成为越来越多企业和组织的营销利器。在众多的虚拟展厅平台中&#xff0c;蛙色3DVR展厅凭借其独特的优势和特点&#xff0c;成为行业中备受关注的创新解决方案。 第一部分&#xff1a;展厅的优势和特点 1.便…

多元分类预测 | Matlab蛇群算法(SO)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,SO-HKELM分类预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元分类预测 | Matlab蛇群算法(SO)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,SO-HKELM分类预测 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab,…

三项认可,数据库透明加密获“年度优秀密码产品奖”

6月28日&#xff0c;杭州市商用密码应用协会第一届第三次会员大会成功召开&#xff0c;大会审议了2022年度工作总结及2023年度活动计划&#xff0c;发布《2023商用密码产业链总览》。为扎实推进杭州市商用密码、信创在各领域的应用推广&#xff0c;本次大会对在密码技术开发与创…

ATFX国际:原油收盘价连续5个交易日低于70美元

ATFX国际&#xff1a;大宗商品的价格是全球经济的晴雨表&#xff0c;当价格进入历史高位区间时&#xff0c;意味着商品需求旺盛&#xff0c;全球经济大概率处于繁荣期&#xff1b;当价格由历史高位向历史低位区间运行时&#xff0c;意味着全球经济大概率正从繁荣期向衰退期转变…

JKD动态代理

在Java的动态代理机制中&#xff0c;有两个重要的类和接口&#xff0c;一个是InvoInvocationHandler&#xff08;接口&#xff09;、Proxy&#xff08;类&#xff09;&#xff0c;这一个类和接口是我们动态代理所必须用到的。 InvocationHandler接口&#xff1a; 每个动态代理…

学习系统编程No.27【深入信号处理】

引言&#xff1a; 北京时间&#xff1a;2023/6/27/21:43&#xff0c;刚刚更新完这个星期的第一篇博客&#xff0c;现在刚好趁热打铁&#xff0c;看看写到11点左右&#xff0c;该篇博客能完成多少&#xff0c;并且今天和我预想的一样&#xff0c;通过早睡&#xff0c;成功在7点…

容器访问外部网络之ip_forward数据包转发

文章目录 1 问题解决1.1 问题1.2 原因1.3 解决临时打开&#xff1a;永久打开&#xff1a; 2 net.ipv4.ip_forward内核参数通俗解释3 在Linux中验证并实践net.ipv4.ip_forward设置 IP 地址设置路由信息打开 IP Forward 功能关闭主机 R 的防火墙和 SeLinux验证容器技术其它 4 常用…