【Linux】冯诺依曼体系结构及操作系统架构图的具体剖析

目录

一、冯诺依曼体系结构

1、结构图

2、结构图介绍:

3、冯诺依曼体系的数据流动介绍

4、为什么在该体系结构中要存在内存?

二、操作系统架构图介绍

1、操作系统架构图

2、解析操作系统架构图

3、为什么要有操作系统?

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家

点击跳转到网站

一、冯诺依曼体系结构

1、结构图

我们常见的计算机(如笔记本),不常见的计算机(如服务器)大部分都遵循冯诺依曼体系

我们先认识一下结构图:

今天我们先讲解红线过程。

2、结构图介绍:

(1)中央处理器(CPU):包括运算器和控制器;

(2)输入设备:如话筒、摄像头、键盘、鼠标等等;

(3)输出设备:声卡、显卡、网卡、显示器等等;

(4)存储器:一般指内存:内存具有掉电易失的性质,即如果突然断电的话,内存中的数据就会全部没了;

(5)这些设备都是相互独立的,有些设备只做输入,有些只做输出,有些即做输入,又做输出;

(6)这些设备又是相互连接的,通过主板上的总线相互连接;

(7)使用总线将这些设备相互连接不是目的,而是一种手段,具体目的是为了设备之间的数据流动,数据流动的本质就是设备之间进行数据的来回拷贝,拷贝的整体速度是决定计算机效率的重要指标;

3、冯诺依曼体系的数据流动介绍

首先通过输入设备,如键盘,输入数据到内存中,然后内存又将数据给CPU进行运算处理,然后将运算后的数据返回给内存,内存又输出到输出设备,如显示屏;

这里我们可以想到在我们学习C语言的时候听过一句话:

程序在运行的时候,必须把程序加载到内存。

这就是冯诺依曼体系这么规定的:

在数据层面,CPU与内存打交道,外设只和内存打交道。

4、为什么在该体系结构中要存在内存?

因为如果直接将CPU和输入输出设备连接的话,输入输出设备的效率是非常低的,即使CPU效率非常高,但最终效率会以这两者之前效率最低的为主,这就导致计算机最终效率会非常慢。所以引入了内存,因为有了内存,可以将内存看成一个巨大的缓存,输入设备可以将数据预先加载到内存,CPU需要的时候直接从内存中取,而CPU处理后的数据也可以存储在内存中,输出设备需要的时候就从内存中直接取。这就可以使计算机的效率变成了以内存效率为主。引入内存,不仅提高了效率,相比CPU还比较便宜,这就大大提高了性价比,使得普通人可以用得上计算机。

二、操作系统架构图介绍

1、操作系统架构图

操作系统是一个进行软硬件资源管理的软件,他是第一个被加载的软件。

那么什么叫做管理呐?

管理中一般有三个对象分别做一件事:

管理者:做决策

中间者:保证管理决策落地到被管理者

被管理者:做执行

特点:先描述,再组织

(1)管理者和被管理者,不需要见面。管理的本质不在于对对象做管理,而是在于对对象的信息数据做管理。管理者的核心是根据数据做决策。

(2)管理者通过中间者拿到被管理者的数据。

(3)管理者在面对大量的被管理者的时候,数据量必然是非常大的,此时管理者通常会将数据放到常用数据结构,如链表中进行管理。

下面的知识我们就以链表为例:

2、解析操作系统架构图

根据第一点中介绍的管理的知识,操作系统也是这样管理的:

(1)操作系统是无法直接访问底层硬件的,而是通过访问驱动程序,从而去操作底层硬件,比如我们插入U盘的时候,通常会显示 "驱动程序已驱动"。

(2)同理,我们顶层的用户也是无法直接访问操作系统的,而是需要通过操作系统提供的系统调用接口去间接访问操作系统,而为了方便用户使用,又将系统调用接口封装了一下,从而形成了用户操作接口,比如我们常见的C-lib(C语言标准库函数)。

(3)、系统调用由操作系统提供,库函数由设计者提供。

3、为什么要有操作系统?

(1)对下层管理好软硬件资源 ------手段;

(2)、对上层提供一个良好的运行环境 ------目的;

良好的运行环境一般包括:稳定、高效、安全;

这套系统是任何操作系统都适用的,不管是windows还是linux,正因为提供了将系统调用封装成了一系列库函数,所以使得语言具有跨平台性和可移植性。

相关推荐
长流小哥9 分钟前
Linux网络编程 从集线器到交换机的网络通信全流程——基于Packet Tracer的深度实验
linux·c语言·网络
CheungChunChiu22 分钟前
Qt 容器类使用指南
linux·开发语言·c++·qt·容器
riveting24 分钟前
明远智睿2351开发板:性价比之选,赋能智能硬件创新
大数据·linux·图像处理·人工智能·智能硬件
mqiqe1 小时前
Minio Linux 安装 systemctl启动配置
linux·运维·服务器
Ant?11 小时前
rk3588 驱动开发(二)第四章嵌入式 Linux LED 驱动开发实验
linux·运维·驱动开发
tyler-泰勒1 小时前
Linux:权限相关问题
linux·运维·服务器
“αβ”1 小时前
Linux的进程间通信
linux·运维·服务器
李菠菜1 小时前
利用Nginx实现高性能的前端打点采集服务(支持GET和POST)
linux·前端·nginx
小诸葛的博客2 小时前
使用logrotate实现日志轮转
linux
JohnYan3 小时前
工作笔记-应用磁盘无感扩容
linux·后端·操作系统