【Linux进程篇】——深入冯诺依曼体系,掌握操作系统核心原理

W...Y的主页 😊

代码仓库分享💕 


目录

冯诺依曼体系结构 

操作系统(Operator System)

概念

设计OS的目的

操作系统的“管理”工作


冯诺依曼体系结构 

计算机组成原理中,我们都应该知道大部分计算机都遵循了冯诺依曼体系结构,这样我们才能有幸用上平价的计算机。什么是冯诺依曼体系结构呢?

输入设备:向计算机输入数据和信息的设备。是计算机与用户或其他设备通信的桥梁。输入设备是用户和计算机系统之间进行信息交换的主要装置之一。 输入设备(InputDevice)是人或外部与计算机进行交互的一种装置,用于把原始数据和处理这些数的程序输入到计算机中。计算机能够接收各种各样的数据,既可以是数值型的数据,也可以是各种非数值型的数据,如图形、图像、声音等都可以通过不同类型的输入设备输入到计算机中,进行存储、处理和输出。

输出设备:输出设备(Output Device)是计算机硬件系统的,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表现出来。常见的输出设备有显示器、打印机、绘图仪、影像输出系统、语音输出系统等。

存储器:存储器是许多存储单元的集合,按单元号顺序排列。每个单元由若干二进制位构成,以表示存储单元中存放的数值,这种结构和数组的结构非常相似,故在VHDL语言中,通常由数组描述存储器 。存储器是用来存储程序和各种数据信息的记忆部件。存储器可分为主存储器(简称主存或内存)和辅助存储器(简称辅存或外存)两大类。和CPU直接交换信息的是主存。 主存的工作方式是按存储单元的地址存放或读取各类信息,统称访问存储器。主存中汇集存储单元的载体称为存储体,存储体中每个单元能够存放一串二进制码表示的信息,该信息的总位数称为一个存储单元的字长。存储单元的地址与存储在其中的信息是一一对应的,单元地址只有一个,固定不变,而存储在其中的信息是可以更换的。 指示每个单元的二进制编码称为地址码。寻找某个单元时,先要给出它的地址码。暂存这个地址码的寄存器叫存储器地址寄存器(MAR)。为可存放从主存的存储单元内取出的信息或准备存入某存储单元的信息,还要设置一个存储器数据寄存器(MDR)。

cpu:中央处理器(CPU),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。电子计算机三大核心部件就是CPU、内部存储器、输入/输出设备。中央处理器的功效主要为处理指令、执行操作、控制时间、处理数据。在计算机体系结构中,CPU是对计算机的所有硬件资源(如存储器、输入输出单元) 进行控制调配、执行通用运算的核心硬件单元。CPU是计算机的运算和控制核心。计算机系统中所有软件层的操作,最终都将通过指令集映射为CPU的操作。 

截至目前,我们所认识的计算机,都是有一个个的硬件组件组成 :

cpu:运算器&&处理器

输入设备:摄像头、键盘、鼠标、话筒……

输出设备:显示器、声卡、显卡、打印机……

而有些硬件即能做输入设备又能做输出设备,但有些硬件只有输入或输出。 

而所有的硬件都是被总线所连接,之所以我们看不到总线是因为其全部都集成到主板上了:

就是为了让这些硬件设备的数据互相传递流通。

在上图中我们可以看到冯诺依曼体系中在输入设备与输出设备中有一个存储器,但是我们其实只需要输入设备输出设备cpu就可以完成数据的拷贝流通,为什么需要存储器呢?

由上图可知: 

距离cpu越近的存储单元,效率越高,造假贵,单体容量越小。

距离cpu越远的存储单元,效率越低,造假便宜,单体容量大。 

cpu内存的造价是最昂贵的,而磁盘的内存是最便宜的,我们一般所说的内存条的价格就是适中的,速度比磁盘快价格比cpu内存便宜,所以我们取一个中间性价比最高的作为中介。 

cpu的速度很快,而输入设备与输出设备的速度相对cpu来说非常慢,并且cpu的寄存器内存非常小提前存储不了太多东西,输入输出设备速度跟不上。由于木桶原理,在没有内存的情况下,计算机的运行速度只能靠依赖输入输出设备的速度进行。如果想要使计算机的速度变快,就要花大价钱制造cpu存储。这样昂贵的计算机一般人是用不起的。

那为什么有了存储器反而就可以提升计算机速度呢?最慢的不还是输入输出设备吗?

那是因为操作系统预先将需要的资源预先拷贝到存储器中,等到cpu需要时我们就可以将其拷贝到cpu中去。这样计算机的效率就以内存效率为主!!!

对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上,从你登录上qq开始和某位朋友聊天开始,数据的流动过程:

当微信或qq中,双方进行聊天时,一方给另一方发送“你好”时,“你好”就会从键盘输入设备先拷贝到内存中,在从内存中拷贝到cpu中去,最后通过网卡发送到对方的电脑上去。

而另一方会从网卡中先接受到“你好”这个信息,然后再拷贝到内存中去,经过cpu的处理最终会出现在另一方的显示器上。

关于冯诺依曼,必须强调几点:
这里的存储器指的是内存
不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
 

操作系统(Operator System)

概念

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:

内核(进程管理,内存管理,文件管理,驱动管理)
其他程序(例如函数库,shell程序等等)

设计OS的目的

与硬件交互,管理所有的软硬件资源
为用户程序(应用程序)提供一个良好的执行环境 

在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件。那他是怎么搞管理的呢?

操作系统的“管理”工作

我们先来看一张图:

上图中我们可以看出操作系统位于正中间,表明操作系统可以承上启下的对我们的计算机进行管理。

向下来看,操作系统管理的是我们的硬件设施,操作系统将其硬件信息用结构体进行描述,将其使用链表的形式进行连接,这样就可以形成一个良好的管理。当我们需要一个底层硬件时,操作系统会去寻找对应硬件的驱动,让驱动来驱动硬件进行运作。就好比在学校时,校长需要一个同学信息,就会先找到对应院系的导员进行通知,让导员去调用学生的信息。校长在管理学校时,就如同操作系统来管理底层硬件,而校长对链表的增删查改,就是操作系统的增删查改。所以操作系统对底层硬件的管理,就是对链表中每一个节点(也就是硬件信息)进行管理。

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

而操作系统这么做的手段却是为了给予上层更稳定、更安全、更高效的环境。

首先,操作系统为了安全着想,但是为了给用户提供服务,防止数据丢失或泄露,操作系统不允许系统直接访问自己,而是必须使用系统调用接口。用户需要什么数据,有没有权限去访问,必须让操作系统审核完毕后然后取出对应的数据。就如同一家银行中不可能让存钱的人自己去金库中取自己存的钱。

但是使用系统调用接口的使用条件有点高,很多人都不会去使用系统调用接口,于是就有人对系统调用接口进行了保证,发明出了人们更容易理解与学习的用户调用接口去使用,如同lib就是将库函数进行了封装。就拿函数而言,在不同的平台下,如Windows、Linux……相同功能的函数在不同平台有不同的系统调用接口。但是我们在用户调用接口中将功能相同的函数进行了统一。使用函数写代码都是同一个函数,但我们在Linux平台下,就调用Linux的系统调用接口,Windows下就调用Windows的系统调用接口,这样就实现了跨平台性!!!


以上就是本次分享的全部内容,喜欢博主分享的可以一键三连支持一下,谢谢!!!

  • 53
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

W…Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值