2、进程状态转换
进程状态: 反应进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换。
2.1 三态模型
三态模型: 就绪态、运行态、阻塞态
运行态: 进程占有处理器正在运行。
就绪态: 进程具备运行条件,等待系统分配处理器以便运行。当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列
**阻塞态:**又称为等待 (wait) 态或睡眠 (sleep) 态,指进程 不具备运行条件,正在等待某个事的完成不具备运行条件,正在等待某个事的完成。
2.2 五态模型
五态模型: 新建态、就绪态、运行态、阻塞态、终止态
新建态: 进程刚被创建时的状态,尚未进入就绪队列
终止态: 进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态。进入终止态的进程以后不再执行,但依然保留在操作系统中等待善后。一旦其他进程完成了对终止态进程的信息抽取之后,操作系统将删除该进程。
2.3 进程相关命令
2.3.1 查看进程
ps aux / ajx
- a: 显示终端上的所有进程,包括其他用户的进程
- u: 显示进程的详细信息
- x: 显示没有控制终端的进程
- j: 列出与作业控制相关的信息
2.3.2 进程状态字母对应的含义
进程状态字母 | 含义 |
---|---|
D | 不可中断 |
R | 正在运行,或队列中的进程 |
S(大写) | 处于休眠状态 |
T | 停止或被追踪 |
Z | 僵尸进程 |
W | 进入内存交换(从内核2.6开始无效) |
< | 高优先级 |
N | 低优先级 |
s | 包含子进程 |
+ | 位于前台的进程 |
2.3.3 实时显示进程动态
top
可以在使用 top 命令时加上 -d 来指定显示信息更新的时间隔
在top命令执行后,可以按一下按键对显示的结果进行排序:
- M 根据内存使用量排序
- P 根据 CPU 占有率排序
- T 根据进程运行时间长短排序 根据进程运行时间长短排序
- U 根据用户名来筛选进程
- K 输入指定的 PID 杀
2.3.4 kill相关命令
-- 杀死进程
kill [-signal] pid
kill -l 列出所有信号
kill -SIGKILL 进程ID
kill -9 进程ID
killall name 根据进程名杀死进程
2.4 进程号相关函数
pid_t getpid (void) ; --进程id
pid_t getppid (void) ; --父进程id
pid_ t getpgid (pid_t pid); --进程组id