【Linux】冯诺依曼体系结构&&初识操作系统

简介: 【Linux】冯诺依曼体系结构&&初识操作系统

1. 冯诺依曼体系结构


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

4b4704e09623003a629080b2e5f73378.png

一般来说,计算机分为输入设备、输出设备、存储器、运算器&&控制器

名词解释

  • 输入设备:输入设备包括:磁盘,网卡,键盘,鼠标等
  • 输出设备:输出设备包括:磁盘,网卡,显示器,打印机等
  • 中央处理器(CPU):包括运算器和控制器

关于冯诺依曼,需要强调与解释的东西:

  • 这里的存储器指的是内存(掉电易失)
  • 不考虑缓存的情况下,这里的CPU只能对内存进行读写,不能访问外设(输入和输出设备)
  • 外设要输入或者输出数据也只能从内存中读取,不能直接从CPU中获取
  • 所有的设备都只能和内存直接打交道(目的是为了提高效率)


们知道,CPU的速度是最快的,里面配有寄存器也是最快的,内存是较快的,而外设是较慢的

fd6e31ff3571e98ebce9f17764f9263b.png

内存存在的意义在于:

如果没有内存,CPU只能从外设获取数据进行处理,但是,上面我们说到了,外设的速度是相对较慢的,此时的CPU效率取决于外设,会导致处理效率较慢。而内存的存在,解决了这个问题,可以先把数据存放在内存中,在加载到CPU进行处理,这大大提高的数据的处理。所以CPU读取数据必须从内存中拿!!!

def6ff27cc3ed84116f21b414769ee41.png


而我们所说到的IO(输入输出既input和output)就是从内存的角度上看,把数据从输入设备存入内存的过程叫做input,把内存中的数据输出到输出设备的过程叫做output,这就是IO的过程

结论:

  • 在数据层面:
  1. CPU只和内存打交道,不和任何外设直接打交道
  2. 所有的外设,有需要载入数据只向内存载入,内存写出也是向外设写出
  • 在代码层面:
  1. 程序要运行必须加载到内存中,CPU要执行我的代码,访问我的数据只能从内存中读取(体系结构规定)


对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上。

请解释,从你登录上qq开始和某位朋友聊天开始,数据的流动过程。从你打开窗口,开始给他发消息,到他的到消息之后的数据流动过程。如果是在qq上发送文件呢?

2e49dc7f464221a22378d1e92873d03c.png

如果是发送文件的话,那么数据就需要先从磁盘载入到内存,然后在写到外设(网卡)再通过网络传输


2. 初识操作系统


2.1 操作系统是什么?

操作系统是一个对软硬件资源进行管理的软件

操作系统的定位:是一款专注于管理的软件


2. 为什么要有操作系统

为了更好的管理一台计算机的软硬件资源

通过合理的管理软硬件资源(手段),为用户提供更好良好的(稳定的,高效的,安全的)执行环境(目的)


3. 操作系统是怎么管理的

举个例子:大家作为学生,与自己学校的校长打过交道吗?应该很少有,但是大家又作为这个学校的学生被校长管理着,那么校长是怎么做到的呢?

是通过对数据的管理来管理学生的

所有的管理,本质是对数据做管理,管理的方法是先描述再组织

计算机管理软硬件资源的方式:

  1. 描述起来,用struct结构体
  2. 组织起来,用链表或其他高效的数据结构

计算机体系结构图

b5bbe6b9e0598e298d950980997f6d40.png


4. 系统调用(System Call)


在开发角度上看,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。

系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发


这对应着用计算机体系结构图中的户操作接口和system call,我们或者说用户不是直接和操作系统进行操作交流的,需要通过调用各种接口间接地进行交流

相关文章
|
1月前
|
监控 Unix Linux
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
34 0
|
1月前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
24 0
|
1月前
|
存储 Linux
linux查看系统版本、内核信息、操作系统类型版本
linux查看系统版本、内核信息、操作系统类型版本
62 9
|
16天前
|
存储 缓存 安全
【linux基础(八)】计算机体系结构--冯诺依曼系统&操作系统的再理解
【linux基础(八)】计算机体系结构--冯诺依曼系统&操作系统的再理解
|
1月前
|
Linux
Linux操作系统调优相关工具(一)查看CPU负载相关工具 找出系统中使用CPU最多的进程?
Linux操作系统调优相关工具(一)查看CPU负载相关工具 找出系统中使用CPU最多的进程?
19 0
|
1月前
|
Linux 编译器 开发者
Linux设备树解析:桥接硬件与操作系统的关键架构
在探索Linux的庞大和复杂世界时🌌,我们经常会遇到许多关键概念和工具🛠️,它们使得Linux成为了一个强大和灵活的操作系统💪。其中,"设备树"(Device Tree)是一个不可或缺的部分🌲,尤其是在嵌入式系统🖥️和多平台硬件支持方面🔌。让我们深入了解Linux设备树是什么,它的起源,以及为什么Linux需要它🌳。
Linux设备树解析:桥接硬件与操作系统的关键架构
|
2月前
|
Linux 数据安全/隐私保护 虚拟化
Linux技术基础(1)——操作系统的安装
本文是龙蜥操作系统(Anolis OS) 8.4 的安装指南,用户可以从[龙蜥社区下载页面](https://openanolis.cn/download)获取ISO镜像。安装方法包括物理机的光驱和USB闪存方式,以及虚拟机中的VMware Workstation Pro设置。安装过程涉及选择语言、配置安装目标、选择软件集合和内核,设置Root密码及创建新用户。安装完成后,可通过文本模式或图形化界面验证系统版本,如Anolis OS 8.4,标志着安装成功。
|
2月前
|
存储 缓存 算法
Linux--系统结构与操作系统
Linux--系统结构与操作系统
|
2月前
|
Linux 网络安全 数据安全/隐私保护
如何在 VM 虚拟机中安装 CentOS Linux 9 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 CentOS Linux 9 操作系统保姆级教程(附链接)
|
2月前
|
缓存 Linux Shell
Linux进程解析(冯诺依曼体系结构,操作系统,进程初步解析)
Linux进程解析(冯诺依曼体系结构,操作系统,进程初步解析)
54 1