浅谈计算机是如何工作的

目录

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中有多个相不干扰的核心,每个核心之间在微观上可以执行不同的进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值