【Linux】冯诺依曼体系结构(硬件)和 操作系统(软件)

在这里插入图片描述

👦个人主页:Weraphael
✍🏻作者简介:目前正在学习c++Linux还有算法
✈️专栏:Linux
🐋 希望大家多多支持,咱一起进步!😁
如果文章有啥瑕疵,希望大佬指点一二
如果文章对你有帮助的话
欢迎 评论💬 点赞👍🏻 收藏 📂 加关注😍


一、认识冯诺依曼体系结构(硬件)

1.1 体系结构

我们常见的计算机,如笔记本,台式机等,大部分都遵守冯诺依曼体系

在这里插入图片描述

其中

  • 输入设备:键盘、鼠标、摄像头、麦克风、磁盘、网卡等
  • 输出设备:显示器、播放器、磁盘、网卡等
  • 存储器:指的是内存。(注意:磁盘和U盘统称外存)
  • 运算器:对数据进行计算任务(算术运算、逻辑运算)
  • 控制器:控制乬的流动和处理流程,确保数据在各个功能部件之间正确传递和处理

除此之外,运算器和控制器合起来叫做中央处理器,也就是我们常说的CPU

注:以上五个部分其实是独立的个体。

所以各个硬件单元必须用“线”链接起来,这些线就是总线

  • 系统总线(CPU和内存)
  • IO总线(内存和外设)

1.2 为什么要存在存储器

在这里插入图片描述

  • 数据首先通过输入设备传输给存储器。例如,用户在键盘上输入数据,数据被存储在内存中等待进一步处理。
  • CPU从存储器中读取数据,并根据程序指令执行相应的运算和操作。
  • CPU将处理后的数据写回内存
  • 最后通过输出设备将结果显示给用户或者进行其他操作

那么这里就有一个问题:计算机直接将数据通过输入设备交给CPU处理,然后再将处理好的数据通过输出设备反馈给用户不是更好吗?这样依赖存储器好像显得有点“多余”

在这里插入图片描述

其实并不是,这和硬件的处理速度(效率)有关

【金字塔存储体系】

在这里插入图片描述

因此我们得知输入输出设备的速度其实是非常慢的,而如若直接把数据通过输入设备交给CPU处理,处理好后再通过输出设备显示结果,就会产生一个木桶效应:一个木桶能装多少水,往往取决于最短的那一块。

在这里插入图片描述

因此得知,计算机体系的效率不是由CPU决定的,而是由输入输出这两个外设决定的,这就导致计算机的效率非常的差,所以不能只把外设和CPU对接起来,这样的效率太低了。因此冯诺依曼就在输入输出和CPU之间添加了存储器来改变这一现状,从而提高了整个计算机的效率。

总结一句话:所有的设备只能直接和内存打交道。

二、操作系统(软件)

2.1 什么是操作系统(what)

概念:操作系统是一款对硬件的管理,也可以是对软件的管理的软件。

2.2 为什么要有操作系统(why)

以下是操作系统在计算机中所处的层次图:

在这里插入图片描述

目的:对下管理好软硬件资源的手段,以达到为用户提供稳定、快速、安全的使用环境。

虽然操作系统给我们提供非常良好的服务,但并不代表操作系统会相信我们,反而,操作系统不相信任何人

举例理解:就好比银行给我们提供良好的服务,但所有服务都是基于一个小小的柜台窗口,因为银行在为我们提供服务时要确保自身的安全,因此银行的服务是基于窗口进行的

而操作系统也是一样的,为了保证自己的安全,也为了保证给用户能够提供服务,操作系统以接口的方式给用户提供调用的入口,来获取操作系统内部的数据(对上提供接口),这种调用称为系统调用。

所以说,所有访问操作系统的行为,都只能通过系统调用完成!

而库函数的作用正是将系统调用进行封装和抽象,使得程序员能够更加方便地使用高级接口来完成任务,而无需深入了解底层系统调用的实现细节。因此,计算机语言都是建立在操作系统上实现的。

2.3 操作系统是怎么管理(how)

为了让大家更好理解,以学校的管理系统为例。

  • 在学校系统中,我们学生是典型的被管理者,校长是典型的管理者。

但是我们有天天见到校长吗?实际上并没有。因此,校长(管理者)和学生(被管理者)是不需要见面的。

  • 校长和学生不见面,那么校长是如何管理学生的呢?

其实,校长只需要知道你在学校的数据(情况),就能实施某种意义上的管理。因此,管理的本质:通过数据的管理,来达到对人的管理

  • 那么问题来了:校长是如何拿到数据的呢?

这我们都可以想到,通过老师即可。因此,管理和被管理之间还有一个老师。

  • 那么老师是管理者吗?

有的人想肯定是,因此自己天天在学校都是被老师管。但是,老师并不是管理者。

实际上,我们对一个事情的思考分为两种:

  1. 决策(做 or 不做)
  2. 执行(做)

在整个学校系统中,校长是做决策的,而老师才是真正意义上的执行者。

通过以上例子,我们可以得出一下结论:

  1. 操作系统 —> 管理者
  2. 驱动程序 —> 执行者
  3. 软硬件资源 —> 被管理者
  • 接下来又有一个问题:由于学校有成千上万个学生,每个年级的老师将学生的数据全部上报,数据量太大的时候,想要管理者(校长)做出一个决策是非常困难的。

在学校,常见的就是老师发出一个表格给学生来收集信息,比如姓名,性别,年龄,电话等。这个过程就是一个描述的过程。当每个老师将这个表整理好以后再给校长

那么校长面对成千上百万张纸,如何进行高效的数据管理呢?

回想我们一路学习的知识,是不是有一门叫做数据结构。

  • 比如我们用一个链式结构(也可以是别的数据结构),来存储每一个人的信息,这就是描述的过程
  • 接着我们就可以实例化多个对象。再通过多个函数(方法)来进行管理,这个步骤我们称为组织

这样的话,校长就成功的对学生的管理工作,转换成为了对链表的增删改查。

// 描述
struct student
{
	char _college[]; //学院
	char _name[];  //姓名
	char _class[];  //班级
	......
    struct student* next;
};

【总结】

  • 关于如何管理,答案是:先描述,后组织
  • 同时,这就注定了在操作系统中,一定存在了大量的数据结构来对数据进行高效的管理。
  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值