linux之进程管理
概念
1、什么是程序
一般情况下,代码,安装包等全部都是应用程序
2、什么是进程
应用程序运行起来的能够提供某种服务的实例
3、什么是线程
进程中处理具体事务的东西
注:一个进程中,至少有一个线程,可以有多个线程(多线程)
进程的三种状态
1、就绪态:应用程序在等待cpu处理的时候
2、阻塞态:当cpu运行完毕之后,应用程序随即进入阻塞态(把结果打印在公屏上)
3、运行态:当cpu正在处理应用程序的时候
查看进程
1、ps
ps是获取当前系统进程的命令
2、参数
-a :显示一个终端的所有进程 -u :选择有效的用户id或者是用户名 -x :显示没有控制终端的进程,同时显示各个命令的具体路径 -aux一般情况下是一起使用,相同的参数组合还有一个 -ef参数
3、-aux和-ef之间的区别
-ef :会打印出父级PID
-aux :会打印出CPU、内存相关的使用情况
用aux查看的内容详解
1、USER:指的是运行当前进程的用户
2、PID:进程的编号)相当于身份证)
3、%CPU:CPU的占用率(指在单位时间内占用CPU的时间比)
4、%MEM :内存的占用率
5、VSZ :应用程序向系统申请的内存(虚拟内存)
6、RSS :应用程序实际上使用的内存大小)
7、TTY :应用程序正在使用的终端
TTY终端:操作系统的终端
PTS终端:虚拟终端
?代表后台运行,也就是说不占用任何终端
8、STAT :进程的状态
1 R:正在运行状态(正在使用CPU) 2 S :睡眠状态 可中断睡眠 Sleep,即在睡眠的过程中可以接收信号唤醒=》执行的IO操作可以得到硬件设备的响应 3 D : 不可中断睡眠,即在睡眠的过程中不可以接收信号唤醒=》执行的IO操作得不到硬件设备的响应 4 T :停止的进程 5 Z :僵尸进程 6 X :死掉的进程(几乎看不见,因为死了就立即回收了) 7 < :标注了 <小于号,代表优先级较高的进程 8 N :N代表优先级较低的进程 9 s :包含子进程 10 +:表示在前台运行的进程(前台运行就是指在命令行中运行) 11 l :小写字母l,代表以线程的方式运行,即多线程 12 | :管道符号代表多进程
知识储备
nice设置进程的优先级 -n:设置具体的进程优先级 -20~20:数字越大优先级越小
9、START :进程开始的时间
10、TIME :进程占用CPU的总时间
11、COMMAND :进程运行的命令
带[ ]:表示内核态进程
不带[ ]:代表用户态进程
top命令
1、作用
实时查看进程的命令
2、参数
默认情况下,top命令是3秒刷新一次 -d:指定刷新的频率 -p:查看指定进程的信息 -u:查看指定用户的进程 -n:查看指定top次数的信息
3、系统整体统计信息详解
top命令
1、11:15:57:当前的系统时间
2、up:代表系统正常运行 (up:启动 down:停止;up左边的代表当前的时间,up右边代表运行了多长时间)
3、1:20:运行时间
4、1 user:登录当前系统的一个普通用户
5、load average:系统负载(单位时间内CPU被占用的进程比)
Tasks:进程的相关内容
1、total**:代表当前系统中有个多少个进程正在运行
2、running:正在运行态 的进程有几个
3、sleeping:多少个个正在睡眠中的进程
4、stopped:停止的进程(停止的进程系统是立马回收的,所以显示是0)
5、zombie:僵尸进程
CPU
1、us:用户态的进程占用CPU的时间比
2、sy:系统的进程占用CPU的时间比
3、ni:代表优先被调度的进程占cpu时间的百分比
4、id:cpu空闲的百分比
5、wa:cpu等待io的百分比
6、hi:硬件中断,处理硬件中断所占用CPU的时间
7、si:软件中断,处理软件中断所占用CPU的时间
8、st:被偷走的cpu
KiB Mem:系统内存的相关信息
1、total:总共有多少字节
2、free:空闲的字节
3、used:使用了字节多少
4、buff/cache:buff缓存了多少字节
KiB Swap:当内存不够使用的时候使用硬盘代替内存
4、top运行中可以通过top的内部命令对进程的显示方式控制
M:按内存的使用率排序 P:按照CPU的使用进行排序 N:以PID的大小进行排序 R:对排序进行反向排序 f:自定义显示字段 l:显示所有CPU的负载 s:改变画面更新频率 1:展开CPU详情 m:改变内存的显示样式 h|? 帮助 <:向前 >:向后 z:颜色
进程的信号
1、什么是信号
操作系统告诉进程怎么做,做什么的一种沟通方式
2、kill
kill就是发送信号的命令
kill -l 查看信号
3、HUP信号
id : 1
完整名字:SIGHUP
作用:更新进程的配置
4、INT、QUIT和TSTP 终止信号
INT信号就是ctrl+c 停止进程
QUIT信号就是ctrl+\ 终止进程
TSTP信号就是ctrl+z 终断信号
5、KILL和TERM 杀死信号
KILL :杀死信号(直接回收内存,强制剥离CPU)
TERM :终止信号(优雅的死)
6、CONT和STOP 暂停和恢复
CONT :恢复