进程的状态
进程根据生命周期可分为3种状态
- 执行态:进程正在运行,占用CPU。
- 就绪态 :进程具备执行所需条件,等待分配CPU的处理时间片。
- 等待态:进程不能使用CPU,等待资源分配到此进程即可将进程唤醒。
进程的结构
Linux中进程包含3个段:数据段,代码段和堆栈段。
- 数据段存放全局变量,常熟。数据段分成普通数据段,BSS数据段。(存放未初始化的全局变量)
- 代码段存放的是程序代码的数据。
- 堆栈段存放的是子程序的返回地址、参数及程序的局部变量。
内核态和用户态的转换:
进程管理
命令 | 解释 |
---|---|
ps | 查看系统的进程 |
top | 动态显示进程的状态 |
nice | 按用户指定的优先级运行进程 |
renice | 改变正在运行的进程的优先级 |
kill | 终止指定的进程 |
bg | 将挂起的进程在后台执行 |
free | 查看内存状态 |
jobs | 查看运行的进程 |
-
ps
ps -elf 查看所有进程(常用)
ps命令:进程具有140个优先级(-40~99),越小优先级越高,-40为最高优先级,99为最低优先级,优先级涉及到调度策略,调度策略包含:
普通调度策略 CFS 优先级处于100-139
实时调度策略(一般用于航天航空,数控机床) FIFO RR(realtime) 0-99
进程具有四种状态,分别为RSTZ,
R:Run
S:Sleep
T:sTop
Z:Zombie
进程含义分析:
-
ps -elf|grep 进程名(ID)
ps -elf|grep 进程名(或者进程ID),查看指定进程状态。
-
ps -aux
ps -aux命令主要用于查看内存泄漏。
-
top(常用)
动态查看进程使用状态
- free
free -m查看内存剩余
- renice -n priority -p pid
如:renice -n +19 -p 8388 //降低优先级
只能降低优先级不能提高优先级,提高优先级需要采用sudo
如:sudo renice -n -20 -p 8388//提高优先级 - crontab
定时任务 如:定时关机等 - bg
如bg1后台运行1进程 - kill
kill -9 进程ID 一般用于终止进程