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 :恢复 

    STOP :暂停

  扩展:$$ :打印当前进程的PID

僵尸进程

  1、僵尸进程的条件

    1、首先是一个进程

    2、进程的生命周期已经结束

    3、进程依然占着PID不释放

  2、PID编号

    0~65535

    PID的数量可以修改;一旦PID被使用完毕,则无法再启动其他进程

孤儿进程

  1、孤儿进程的父进程已经结束了而子进程还在运行

  2、在没有父进程的情况下被操作系统进程(PID=1)进程接受

 

posted @ 2021-12-24 11:44  那就凑个整吧  阅读(165)  评论(0编辑  收藏  举报