Linux系统编程Day9 -- 理解计算机的软硬件管理
往期内容回顾
gdb (linux)和lldb(macOS)调试工具
Git 教程(初阶)
基于Linux系统知识的第一个程序
自动化构建工具-make/Makefile
gcc/g++编译及链接
Vim工具的使用
Linux常用工具(yum与vim)
一、什么是冯·诺依曼结构?
1945年,数学家兼物理学家约翰·冯·诺依曼提出了一种通用计算机的设计理念,后来被称为“冯·诺依曼结构”,它成为现代计算机体系结构的基础。
主要思想
冯·诺依曼结构的核心思想是:
把程序指令和数据存储在同一内存中,由中央处理器统一读取和执行。
组成部分
冯·诺依曼计算机主要由以下五个部分组成:
组成部分 | 作用说明 |
---|---|
运算器(ALU) | 执行算术和逻辑运算 |
控制器(CU) | 负责指令的读取、解码和执行控制 |
存储器(Memory) | 存储程序指令和数据 |
输入设备(Input) | 向计算机输入数据和指令 |
输出设备(Output) | 输出计算结果 |
-
1、运算器(Arithmetic Logic Unit, ALU)
-
功能:负责所有算术运算(如加减乘除)和逻辑运算(如与、或、非等)。
-
作用:执行CPU的计算任务,是计算机的“心脏”。
-
-
2、控制器(Control Unit, CU)
-
功能:从存储器中取出指令,解码并控制计算机各部分协同工作,按照指令顺序执行操作。
-
作用:协调和管理计算机的运算和数据传输,控制程序的执行流程。
-
-
3、存储器(Memory)
-
功能:用于存放指令和数据,且指令和数据存储在同一存储器中。
-
作用:保存正在执行的程序和程序运行时需要处理的数据。存储器按地址可随机访问。
-
特点:包括主存(RAM),容量有限,速度较快。
-
-
4、输入设备(Input Devices)
-
功能:接收外部数据或命令,将其转换为计算机能够识别和处理的形式。
-
例子:键盘、鼠标、扫描仪等。
-
-
5、输出设备(Output Devices)
-
功能:将计算机处理结果转换为人类可理解的形式。
-
例子:显示器、打印机、扬声器等。
-
-
6、总线(Bus)
-
功能:连接计算机各个部分,用于传输数据、地址和控制信号。
-
主要包括:数据总线、地址总线和控制总线。
-
工作流程简述
-
取指令(Fetch):控制器从存储器中按程序计数器指示的地址取出下一条指令。
-
译码(Decode):控制器对指令进行解释,确定要执行的操作。
-
执行(Execute):运算器执行指令规定的操作。
-
存储(Store):运算结果写回存储器或寄存器。
-
更新程序计数器,准备取下一条指令,循环执行。
冯·诺依曼结构的工作原理
-
存储程序:程序指令和数据一起存储在同一块内存中。
-
顺序执行:CPU 按顺序从内存读取指令(取指令),解码后执行。
-
数据操作:CPU 可以访问内存中的数据或通过运算器处理数据。
-
指令控制流:程序计数器(PC)控制下一条指令的地址,实现流程控制(顺序、跳转、条件分支等)。
冯·诺依曼瓶颈
由于指令和数据共用同一条总线访问内存,导致:
-
数据传输与指令传输不能同时进行,带来性能瓶颈;
-
影响计算机整体速度。
二、操作系统(Operating System,OS)
操作系统是管理计算机硬件与软件资源的系统程序,也是用户与计算机硬件之间的桥梁,它就像是“计算机的大脑指挥中心”,负责管理硬件资源,并为用户和其他软件提供服务和接口,它对硬件进行抽象,使用户和程序不必直接操控底层硬件。
参考链接:计算机操作系统的基本概念和常用的操作系统
操作系统组成:
功能模块 | 说明 |
---|---|
进程管理 | 管理程序的运行(进程/线程),调度 CPU |
内存管理 | 分配和回收内存 |
文件系统管理 | 管理文件读写、目录结构、权限 |
设备驱动管理 | 控制硬件设备,如磁盘、打印机、网络 |
用户界面 | 提供命令行/图形界面,方便用户交互 |
安全管理 | 控制用户权限、防护系统资源 |
系统调用接口 | 程序访问硬件的唯一接口(系统 API) |
操作系统与冯诺伊曼体系联系 l的具体体现:
方面 | 说明 |
---|---|
依赖关系 | 操作系统必须依赖冯诺伊曼计算机的硬件架构运行。 |
硬件抽象 | 操作系统对冯诺伊曼结构的硬件资源(CPU、内存、I/O设备)进行抽象和管理。 |
指令执行 | 操作系统通过冯诺伊曼架构中的控制器和运算器执行机器指令。 |
内存管理 | 操作系统管理冯诺伊曼结构中的存储器,分配和保护内存空间。 |
输入输出管理 | 操作系统协调冯诺伊曼结构中的输入输出设备,实现数据交换。 |
多任务实现 | 操作系统通过时间片轮转等方法,让冯诺伊曼架构的CPU“同时”执行多个程序。 |
简单总结
-
冯诺伊曼结构是计算机的硬件设计基础。
-
操作系统是运行在这种硬件上的软件,负责管理硬件资源,使得计算机能高效、稳定地运行多任务和复杂程序。
-
操作系统就是利用冯诺伊曼计算机结构的硬件能力,实现对计算机资源的调度和管理,桥接硬件和用户程序之间的关系。