1. 进程基础概念解析
在Linux系统中,进程(Process)是程序的一次执行实例,也是操作系统进行资源分配和调度的基本单位。简单来说,当我们运行一个程序时,操作系统会为其创建一个进程,这个进程拥有独立的内存空间、寄存器状态和系统资源。
1.1 进程的核心属性
每个Linux进程都包含以下关键属性:
- PID(进程ID):唯一标识进程的数字,范围从1到32768(可配置上限)
- PPID(父进程ID):创建该进程的父进程ID
- UID/GID:运行进程的用户和组身份
- 进程状态:运行(R)、可中断睡眠(S)、不可中断睡眠(D)、停止(T)、僵尸(Z)等
- 优先级:决定进程获取CPU时间的顺序
- 资源占用:包括内存、打开文件、信号量等
提示:在Linux中,init进程(PID=1)是所有用户进程的祖先进程,由内核在启动时直接创建。
1.2 进程与程序的区别
很多初学者容易混淆进程和程序的概念,这里用一个简单的类比说明:
- 程序就像是菜谱(静态的指令集合)
- 进程则是按照菜谱实际做菜的过程(动态的执行实体)
同一个程序可以同时产生多个进程(就像多个人可以同时按照同一份菜谱做菜),而每个进程都有自己独立的执行环境和资源。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 进程生命周期管理
2.1 进程的创建与终止
在Linux中,新进程通常通过fork()系统调用创建。这个调用会复制当前进程(父进程)创建一个几乎完全相同的子进程。随后,子进程通常会通过exec()系列调用加载新的程序映像。
进程终止的常见方式包括:
- 正常退出(通过exit()或从main返回)
- 异常终止(收到信号如SIGSEGV)
- 被其他进程杀死(通过kill命令或kill()系统调用)
2.2 进程状态转换
典型的Linux进程状态转换流程如下:
code复制新建 → 就绪 → 运行 → (等待事件) → 就绪 → ... → 终止
其中:
- 就绪状态:进程已准备好运行,等待CPU调度
- 运行状态:进程正在CPU上执行
- 等待状态:进程因等待I/O、信号等事件而暂停
3. 进程基本操作命令
3.1 查看进程信息
最常用的进程查看命
