计算机是如何工作的

计算机是如何工作的

一、操作系统

计算机的核心硬件包括:

  • CPU(中央处理器,负责计算与调度)
  • 内存(临时存数据 / 指令,速度快)
  • 硬盘(长期存数据,容量大)
  • 外设(键盘 / 网卡等)

这些硬件本身是“裸设备”,需要操作系统(OS) 作为“中间人”协调它们工作,同时对接上层应用。

微信截图_20250917203421.png

操作系统(如 Windows、Linux、Mac OS、Android)是计算机中一个重要的管理软件,其作用包括:

  • 管理各种硬件设备
  • 为应用程序提供稳定的运行环境,确保它们工作过程中互不干扰

操作系统管理应用程序的核心方式,是把“运行的程序”抽象为“进程”——每个进程都有独立资源,OS 通过统一的“进程控制块(PCB)”来管理它们。


二、进程(Process)和线程(Thread)

进程(Process)

  • 是操作系统资源分配的基本单位
  • 一个运行起来的程序就称为进程
  • 现代计算机可同时运行上百个进程,因此需要操作系统进行有效管理

线程(Thread)

  • 是操作系统调度和执行的基本单位

线程与进程的区别

特性 进程 线程
资源分配 有独立资源 共享进程资源
调度单位 资源分配的最小单位 CPU 调度的最小单位
开销 创建/销毁开销大 创建/销毁开销小
并发效率 相对较低 同一进程内并发效率高

既然进程是资源分配的基本单位,操作系统如何精准管理上百个进程?答案就是“进程控制块(PCB)”——它记录了进程的所有关键信息,是 OS 管理进程的“核心档案”。


三、PCB 中的关键要点

PCB(进程控制块) 是操作系统管理进程的核心数据结构,包含以下关键信息:

1. PID(进程ID)

  • 进程的唯一身份标识符

2. 内存指针(一组指针)

  • 内存指针(一组地址标记):告诉进程‘我的执行指令存在内存的哪个位置,需要用到的数据又存在哪里’—— 相当于进程的‘内存地图’。
  • 进程运行的过程中,需要依赖内存资源

3. 文件描述表

  • 记录进程打开的文件信息(包括硬盘文件、网络设备等)
  • 操作系统将硬件设备(如网卡)也抽象为文件进行管理

PCB 除了记录进程的“身份、资源”信息,还包含“调度相关的属性”——这些属性是 OS 实现“进程并发执行”的关键,也就是“进程调度”。


四、PCB 中的进一步属性

1. 进程调度

为实现并发执行,操作系统需要进行进程的快速切换,即进程调度。调度相关属性包括:

- 进程状态

  • 就绪状态:进程已准备好,可随时在 CPU 上执行
  • 阻塞状态:进程暂时不适合在 CPU 上执行(如等待 I/O 操作)

- 进程优先级

  • 不同进程对 CPU 资源的需求不同(如游戏进程优先级更高)
  • 有些进程(比如黑神话悟空),就是要优先级更高一些,吃到更多的CPU资源

微信截图_20250917200313.png

- 进程的上下文

进程调度,一个进程执行一会,失去CPU,过了一段时间之后进程会回到CPU上执行,沿着上次执行到的状态,继续往下执行而不是重头执行

  • 寄存器:CPU 上的“临时记事本”,存储计算的中间结果、指令位置、函数调用栈等信息
  • 保存上下文:进程被切换出 CPU 时,将寄存器值保存到内存(PCB 中)
  • 恢复上下文:进程再次被调度时,将保存的值重新加载到寄存器
  • 类似游戏中的“存档”和“读档”机制

微信截图_20250917203027.png

- 进程的记账信息

  • 统计每个进程在 CPU 上的运行时间
  • 用于公平调度,避免某些进程长时间得不到执行,如果发现某个进程,好久没吃到CPU资源了,就会给这个进程倾斜一些资源