进程(process)是程序在执行过程中的一个动态实例,是系统进行资源分配和调度的基本单位。让我们详细区分进程和程序,并探讨在windows和linux系统中的进程管理。
进程与程序的区别
1.0 程序是一组静态的指令集合;而进程则是程序的动态执行过程,具有生命周期,是动态生成和终止的。程序无法直接申请系统资源,不能被系统调度,也不能作为独立运行的单位,因此它不占用系统运行的资源。
2.0 程序和进程之间没有一一对应的关系。
xp进程.png
进程情况.png
Linux系统中的进程属性
与Windows系统类似,Linux中也总是有许多进程在运行。每个进程都有一个唯一的识别号,称为PID(进程ID),用于区分不同的进程。进程还具有其他属性,如拥有者ID、进程名、进程状态、父进程ID以及运行时间等。
从Linux操作系统的启动过程来看,系统启动后的第一个进程是init,其PID为1。init是唯一一个由系统内核直接运行的进程,新的进程可以通过fork命令生成。
进程的状态
进程状态.gif
- 就绪状态:进程已经获得除CPU之外的所有运行所需资源。
- 运行状态:进程正在占用CPU运行。
- 等待状态:进程正在等待某个事件或资源。
- 挂起状态:正在运行的进程由于某种原因失去CPU而暂停运行。
- 终止状态:进程已经结束。
- 休眠状态:进程主动暂时停止运行。
- 僵死状态:进程已经停止运行,但相关控制信息仍保留。
进程的优先级
Linux系统中,所有的进程根据其状态按时间顺序排列,形成不同的队列。进程的优先级范围为-20到19之间的整数,数值越小,优先级越高。
进程的类型
进程控制命令
ps [选项] -a 显示当前终端所有进程 -A 显示系统所有进程,包括其他用户进程和系统进程信息 -u 显示包括进程拥有者在内的详细信息
ps.png
pstree [选项] -a 显示启动进程的命令行 -n 按照进程号进行排序
pstree.png
top.png
kill [选项] PID kill % 作业号 终止正在运行的进程或作业。 -15 正常结束 -9 强制终止进程 -1 重新加载配置文件
nice -n 优先数 命令名 在进程运行前,更改优先级 renice 优先数 PID 在进程运行中更改优先级
参考文章
- Linux 杀死进程方法大全(kill,killall)
- Linux kill命令详解
- Linux进程状态及转换关系
- Linux上进程状态查询