浅谈冯诺依曼体系结构和操作系统的概念

在这里插入图片描述

操作系统是计算机科学的哲学

冯诺依曼结构

在这里插入图片描述
冯诺依曼结构就是上图所示,理解冯诺依曼结构,就是理解这张图

组件介绍

我们的计算机都是由一个个硬件设备组成的,这些硬件在冯诺依曼中扮演了不同的角色,不同的硬件之间需要协同工作,我们先来介绍一下这些组件分别是些什么
a、 存储器是什么? 简单来说:内存,硬件级别的缓存空间,是冯诺依曼结构的核心

b、输入设备是什么? 人与计算机、计算机与计算机交互的工具,比如:键盘、摄像头、话筒、磁盘(磁盘是存储文件的,具体是从磁盘文件中读取数据时作为输入设备)、网卡(计算机网络读取数据)
c、输出设备是什么?显示屏、视频播放器、磁盘(具体是向磁盘文件中写入)、网卡(向网络发送数据)
有的设备是纯的输入设备、输出设备,由的设备是既可以是输入、也可以是输出设备
磁盘包含了硬盘,但大多数磁盘和硬盘的功能基本都是相似的,所以后面我不会纠结何时是磁盘何时是硬盘

d、运算器是什么?是对我们的数据进行计算任务的元件(逻辑运算、算数运算,总称算逻运算)
e、控制器是什么?是对我们的计算硬件流程进行一定的控制、协调的元件
我们把运算器和控制器合称中央处理器,也就是CPU

这五个组件都是独立的个体,各个组件通过"线"连接起来,数据才能进行交互,("线"就是总线,包括:IO宗信啊、数据总线、地址总线、控制总线)

简单来讲,总体的执行流为:输入设备把数据给到存储器(内存),存储器(内存)把数据给到CPU,CPU把数据处理完后,返还给存储器(内存),最后给到输出设备

为什么不直接把数据给到CPU,CPU处理完数据给到输出设备?
这就需要讲讲存储的效率问题了

存储的效率

CPU、内存、磁盘、…都具有存储的能力,CPU中的寄存器(并列于运算器和控制器,上面的图只是没画出来)的存储效率(存储效率指的是读速度和写速度)极快,内存的存储效率不错,但是其他设备的存储效率较低下
但是存储器、内存的高效率带来的影响是存储空间较小,而其他设备比如磁盘、磁盘驱动器(HDD)固态硬盘(SSD)、光盘虽然低效,但是存储空间较大
在这里插入图片描述
回到问题:为什么不直接把数据给到CPU,CPU处理完数据给到输出设备?如果直接把数据给到CPU,CPU拿到数据可能一瞬间都处理完,然后又丢给输出设备,此时输入设备还在慢吞吞的把数据给到CPU,造成的影响就是,CPU大多数时候都在闲置,一直在等待输入设备的输入,和输出设备的接收,这样的整体运行效率会很低
但如果我们加一个中间设备,这个设备比输入设备和输出设备的存储效率高、比CPU的效率低,存储空间比CPU大,比磁盘小,使得数据输入到CPU,CPU输出数据的过程平缓,流畅,而且还使得处理数据从串行操作变成了并行操作

计算机效率低下:硬件和内存之间的IO效率低,CPU运行效率低(我们所学的算法所解决的),我们在Linux中,除了用所学代码解决效率,更要解决IO的效率

关于串行并行的解释

串行和并行主要是又效率上区分的,分界线比较模糊
每一块CPU上都有多块处理单元,一块处理单元包括算术逻辑单元、控制单元、寄存器等组件,如果没有内存的情况下,处理单元只能使用CPU上很有限的寄存器等存储器来存储,然后处理数据,由于寄存器数量有限,同时进行并行处理的能力有限,上层的一个任务,可能同时需要多个寄存器,从而导致数据处理更倾向于串行进行,而内存帮助寄存器存储了大量的数据,加快了读取效率,使得CPU能够同时处理多个任务,表现出并行的特点。

实例

给朋友发送信息:
我们键盘输入信息,然后把信息给到内存,内存把信息发送给CPU进行处理、打包,然后又返回给内存,发送给显示器(回显在自己电脑的显示屏上,让我们自己知道自己发送的内容是什么)、网卡,网卡通过网络讲信息传递到朋友的网卡上,然后发送到内存,内存给到CPU,CPU对信息进行解包,解压,写回到内存,刷新到朋友的显示屏上
在这里插入图片描述

冯诺依曼体系结构能够帮助我们理解计算机世界中的各种行为

操作系统

操作系统是一款进行管理软硬件资源的软件!
是任何计算机系统都包含的一个基本程序集合

为什么要有操作系统?
计算机是层状结构,上层有用户层(主要指的是程序员),进行指令操作、开发操作、管理操作,底层各种硬件,网卡、硬盘、…,由于底层的硬件类型十分众多,管理十分困难,所以对于每一个硬件,都有各自对应的驱动程序,如果没有操作系统,那么需要程序员自己去操作这些驱动程序或者直接操作这些硬件,想象一下,键盘的输入、屏幕的显示、鼠标的输入等都需要程序员来完成,这就十分痛苦

因此就需要一个能够自动操作这些驱动程序,管理软硬件资源的“东西”,又因为底层硬件的数量是不断变化的,并且人们的需求在不断变化,如果是用硬件来做这个“东西”,那么在底层硬件发生变化、需求发生变化时,只能更换这个硬件,十分不方便,所以我们为了能够应对不断变化的需求以及不断迭代的技术发展,选择使用软件作为管理软硬件资源的这个“东西”,并命名为操作系统。

继续思考,用户需要进行开发软件的时候,是需要使用底层的硬件的,那么操作系统提供了(C语言实现的函数)操作系统内部的一些函数接口,使上层能够安全的使用底层的硬件(所有的访问操作系统的行为,都需要通过操作系统 - system call完成),但是如果只是单纯使用这些接口进行开发,难度过大、操作繁杂,所以一些大佬写了shell、各种库文件、指令方便后世的程序员能够更加方便的使用底层硬件,让我们能够进行指令操作查看到磁盘中的某个目录下存储了什么文件,能够用简单的函数printf(“hello world”);在屏幕的特定位置打印出字符串hello world…

所以,操作系统通过管理好底层的软硬件资源(手段),为用户(程序员、普通用户)提供一个良好的执行环境(目的)
在这里插入图片描述
操作系统从宏观来讲是不变的东西,系统调用接口的那些功能都是不变的,.lib shell外壳 部分指令 就是基于调用系统调用接口实现的,我们也将基于调用系统接口上的开发,称为系统编程(创建一门语言…)

这里再抛出一个问题:计算机是如何管理硬件的?
在下一篇关于进程的博客中我会进行解答

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

失去梦想的小草

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

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

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

打赏作者

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

抵扣说明:

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

余额充值