浅谈计算机是如何工作的

2025-06-07 02:15:24

目录

1 冯诺依曼体系结构

2 CPU的核心和频率

3 CPU指令执行的流程

4 操作系统的内核

5 进程的概念

6 进程的管理(PCB,链表)

6.1 进程管理的本质

6.2 PCB概念与内存控制

6.3 进程属性描述

6.4 组织进程

6.5 PCB属性及作用

7 进程的调度

7.1 进程状态

7.2 进程优先级

7.3 进程上下文

7.4 进程的记账信息

7.5 并发执行

7.6 并行执行

1 冯诺依曼体系结构

数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。

2 CPU的核心和频率

在现代的大部分CPU一个核心包括两个逻辑处理器,而一个逻辑处理器则可以运行一个程序。对于程序员来说,可以把代码中的任务拆成多个,使用不同的核心分别执行,也可以叫做“并发编辑”。

CPU的运算速度可以用频率来表示,基准速率可以浅显的理解为一秒内最低的运算次数。

3 CPU指令执行的流程

在双击.exe运行程序之后,系统把该程序加载到内存中,CPU中的一个特殊寄存器(程序计数器)会保存之后决定从哪个内存位置开始执行指令,一般都会从0位置开始经历三个步骤:读指令、解析指令、执行指令。

(1)读指令:程序计算器会从0位置开始读取,每次读取之后++。

(2)解析指令:程序计数器从内存中调取的指令格式为,前四位bite位叫操作码(opcode)负责决定操作,后四个bite位则为操作的地址或者寄存器。

CPU中的运算比较复杂,但运算频率很好的弥补这个缺点。

4 操作系统的内核

(1)管理硬件:管理计算机接入的设备。

(2)提供稳定的运行环境:给每个软件提供稳定的运行环境,不相互干扰。除此之外操作系统会给应用程序提供API来完成不同的功能。在Java代码中如println是Java标准库中提供的函数,JVM中,为了实现println功能就会调用系统提供的API,调用系统API之后程序就会进入内核执行,此时系统就会操作对应的硬件设备。

5 进程的概念

进程的概念顾名思义就是正在运行的程序,运行时exe就会被加载到内存中,并且cpu执行里面的指令,而可执行文件没有运行的时候则储存在硬盘上。

6 进程的管理(PCB,链表)

6.1 进程管理的本质

进程管理是操作系统的核心功能,本质是通过结构化数据描述+高效数据结构实现对程序运行的精准控制。

6.2 PCB概念与内存控制

每个进程在操作系统内核中对应一个进程控制块(Process Control Block,PCB),在 Linux 中具体实现为 task_struct 结构体,PCB 是进程的全息数字档案。

PCB在获取内存时,通过系统内核的 slab分配器预分配内存池

6.3 进程属性描述

进程属性通过 结构体/类 来描述进程属性,在Linux中用进程控制块(PCB)来描述进程属性

6.4 组织进程

通过全局数组/链表存储所有进程的PCB,通过链表来连接,并进行增删改查。我们可以通过红黑树或哈希表来实现遍历功能。

6.5 PCB属性及作用

PCB包括PID、内存指针、文件描述符表等重要属性。PID可以让系统找到对应进程,在同一时间每个程序的PID都不相同且唯一。内存指针主要描述进程依赖的指令和数据都存储在内存的哪个区域,文件描述符表则能看到打开了文件。

7 进程的调度

7.1 进程状态

进程在生命周期中会经历以下三种状态:

• 运行状态:进程正在 CPU 上执行指令

• 就绪状态:进程已准备好运行,但尚未分配到 CPU

• 阻塞状态:进程因等待外部事件(如I/O操作)而暂停运行,无法被调度到CPU

7.2 进程优先级

• 用户设定优先级:允许用户为关键任务分配高优先级

• 系统动态调整:

(1) 防止饥饿机制:若进程等待超过30分钟,系统自动提升优先级 (避免长期无法运行)

(2) 防CPU独占:频繁占用CPU的进程会被暂时降级

饥饿进程:长期因优先级低无法获得CPU资源的进程,动态优先级可缓解此问题

7.3 进程上下文

• 定义:进程切换时需要保存的中间状态信息,包括CPU寄存器值、进程计数器、堆栈指针等。

• 作用:保证进程被重新调度时能从断电处继续执行

• 上下文切换代价:频繁切换会降低效率

7.4 进程的记账信息

记录CPU占用时间,用分析进程行为 (如I/O密集型或计算密集型)。通过历史数据调整优先级。

7.5 并发执行

• 定义:单核CPU通过快速切换运行多个进程,宏观上“看似同时执行”,但是微观上串行。

在某个时刻,CPU运行程序1和程序2并不同时,但是由于CPU运算过快人眼观察不到切换的速度,所以这个现象叫做并发执行。

7.6 并行执行

• 定义:多核CPU中不同核心同时运行多个进程

• 与并发的区别:并发是单核的"伪并行",并行是多核的"真并行"。

CPU中有多个相不干扰的核心,每个核心之间在微观上可以执行不同的进程

大嘴皮肤价格详解:皮肤价值一览,约估成本在多少?
中国“深圳”概述 简称是什么?