1. 进程的状态
① 进程的三个状态表示
进程状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换。在三态模型中,进程状态分为三个基本状态,即就绪态,运行态,阻塞态。在五态模型中,进程分为新建态、就绪态,运行态,阻塞态,终止态。
- 运行态:进程占有处理器正在运行
- 就绪态:进程具备运行条件,等待系统分配处理器以便运
行。当进程已分配到除CPU以外的所有必要资源后,只要再
获得CPU,便可立即执行。在一个系统中处于就绪状态的进
程可能有多个,通常将它们排成一个队列,称为就绪队列 - 阻塞态:又称为等待(wait)态或睡眠(sleep)态,指进程
不具备运行条件,正在等待某个事件的完成
② 进程的五个状态表示
- 运行态:进程占有处理器正在运行
- 就绪态:进程具备运行条件,等待系统分配处理器以便运
行。当进程已分配到除CPU以外的所有必要资源后,只要再
获得CPU,便可立即执行。在一个系统中处于就绪状态的进
程可能有多个,通常将它们排成一个队列,称为就绪队列 - 阻塞态:又称为等待(wait)态或睡眠(sleep)态,指进程
不具备运行条件,正在等待某个事件的完成 - 新建态:进程刚被创建时的状态,尚未进入就绪队列
- 终止态:进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态。进入终止态的进程以后不再执行,但依然保留在操作系统中等待善后。一旦其他进程完成了对终止态进程的信息抽取之后,操作系统将删除该进程。
2. 进程相关命令
① 查看进程
ps aux / ajx
a
:显示终端上的所有进程,包括其他用户的进程u
:显示进程的详细信息x
:显示没有控制终端的进程j
:列出与作业控制相关的信息
② STAT参数意义
D
:不可中断 Uninterruptible(usually IO)R
:正在运行,或在队列中的进程S(大写)
:处于休眠状态T
:停止或被追踪Z
:僵尸进程W
:进入内存交换(从内核2.6开始无效)X
:死掉的进程<
:高优先级N
:低优先级s
:包含子进程+
:位于前台的进程组
③ 实时显示进程动态
top
可以在使用 top
命令时加上 -d
来指定显示信息更新的时间间隔,在 top
命令
执行后,可以按以下按键对显示的结果进行排序:
M
:根据内存使用量排序P
: 根据 CPU 占有率排序T
: 根据进程运行时间长短排序U
: 根据用户名来筛选进程K
: 输入指定的 PID 杀死进程q
: 退出
④ 杀死进程
kill [-signal] pid
kill –l
列出所有信号kill –SIGKILL
进程ID
kill -9
进程ID
killall name
根据进程名杀死进
⑤ 进程号和相关函数
- 每个进程都由进程号来标识,其类型为
pid_t
(整型),进程号的范围:0~32767
。进程号总是唯一的,但可以重用。当一个进程终止后,其进程号就可以再次使用。 - 任何进程(除
init
进程)都是由另一个进程创建,该进程称为被创建进程的父进程,对应的进程号称为父进程号(PPID
)。 - 进程组是一个或多个进程的集合。他们之间相互关联,进程组可以接收同一终端的各种信号,关联的进程有一个进程组号(
PGID
)。默认情况下,当前的进程号会当做当前的进程组号。 - 进程号和进程组相关函数:
pid_t getpid(void)
pid_t getppid(void)
pid_t getpgid(pid_t pid)