ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Linux 进程(一) 从冯诺依曼到操作系统

Linux 进程(一) 从冯诺依曼到操作系统

目录

一. 冯诺依曼体系结构

1.1 计算机的主要组成

1.2 为什么软件运行必须先加载?程序运行之前又在哪里呢?

1.3 为什么需要内存

1.3.1 存储分级

1.3.2 为什么需要内存(续)

1.4 数据流动示例

二. 操作系统(OS)

2.1 为什么要有操作系统

2.2 相关小知识

2.2.1 软硬件体系层状结构

2.2.2 其他概念(先了解)

2.3 理解操作系统

2.3.1 操作系统的核心功能

2.3.2 理解管理的本质


一. 冯诺依曼体系结构

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

1.1 计算机的主要组成

组成部分

作用

例子

CPU

负责执行指令、处理数据

运算器、控制器

内存(存储器)

为程序运行提供工作空间

RAM

输入设备(外设)

向计算机输入数据

键盘、鼠标、麦克风

输出设备(外设)

向外输出处理结果

显示器、打印机

外存

长期保存数据

磁盘、SSD

注意:磁盘既可以作为数据的输入来源,也可以作为数据的输出目标。

1.2 为什么软件运行必须先加载?程序运行之前又在哪里呢?

  • 从冯诺依曼体系结构我们可以知道,在数据层面上与cpu交互的只有存储器(内存),而程序中的代码归根结底是交由cpu进行,那么程序的运行就必须经过内存才行。
  • 程序在运行之前一般是存于磁盘上。
  • 整个数据的流动,可以看作是数据从一个设备拷贝到另外一个设备,而整个体系结构的效率由各设备的拷贝效率决定

1.3 为什么需要内存

我们之前说过在数据层面上:cpu只与内存交互,那我能不能去掉内存让cpu直接与外设交互呢?

1.3.1 存储分级

简单总结一下:离cpu越近,速度越快价格越高容量越低;cpu越远,速度越慢价格越低容量越大

1.3.2 为什么需要内存(续)

  • 通过上面所谈的存储分级,那么我们应该也知道外设的速度相较于cpu是非常低的,那么会造成整个体系结构的效率低下,因为cpu会一直等待外设的传输很浪费时间。
  • 而内存的效率又比外设要高,cpu要低;价格相对来说不算高。我先将数据传输到内存再传输到cpu,对外设和cpu之间的速度不匹配做一个适配,在很大程度上可以提高整个体系结构的效率,性价比也高。

1.4 数据流动示例

二. 操作系统(OS)

操作系统是一个基本的程序集合,是一款进行软硬件管理的软件。

操作系统包括:

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

2.1 为什么要有操作系统

• 对下,与硬件交互,管理所有的软硬件资源。

• 对上,为用户程序(应用程序)提供⼀个良好的执行环境。

2.2 相关小知识

2.2.1 软硬件体系层状结构

由上图可知:软件硬件体系采用层状结构,将计算机系统划分为用户程序、接口、操作系统、驱动程序和底层硬件等不同层次。

  • 高内聚:每一层内部的功能尽量集中、职责明确。例如,操作系统内部的内存管理、进程管理和文件管理,各自负责不同的工作。

  • 低耦合:不同层次之间尽量减少不必要的依赖,通过接口进行交互。例如,用户使用ls命令查看文件,不需要了解底层磁盘是如何工作的。

总结:层状结构通过明确各层的职责、减少层与层之间的依赖,实现高内聚、低耦合,让整个计算机系统更容易维护和扩展。

2.2.2 其他概念(先了解)

  • 访问操作系统,必须使用系统调用 -- 其实就是函数,只不过是系统提供的
  • 我们的程序,只要你判断出它访问了硬件,那么它必须贯穿整个软硬件体系结构!
  • 库可能在底层封装了系统调用

2.3 理解操作系统

2.3.1 操作系统的核心功能

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

2.3.2 理解管理的本质

• 管理的例子-学生,辅导员,校长

• 描述被管理对象

• 组织被管理对象

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进