程序、进程、线程是操作系统里最基础的一组概念。
如果这几个概念没理顺,后面再学调度、同步、上下文切换、虚拟内存时会很容易混。
一、程序是什么
程序是静态的。
它本质上是一份还没有运行起来的代码和数据,例如一个可执行文件、一个 jar 包、一个二进制镜像。
程序本身不会主动执行,它只是“可以被执行的内容”。
二、进程是什么
进程是动态的。
它是程序运行起来之后的一个实例,除了代码本身,还包括运行状态和系统分配给它的各种资源。
一个进程通常会包含:
- 代码段
- 数据段
- 堆
- 栈
- 虚拟地址空间
- 打开的文件
- 寄存器上下文
- 各种内核管理信息
2026/3/26...大约 5 分钟
