文章目录
一、程序的概念
1、与程序的区别
- 程序:静态;安装在硬盘或光盘存储介质中,静态保存的代码,占用硬盘空间
- 进程:程序运行指挥产生进程,是动态的;不占用硬盘空间,占得内存cpu空间
一个程序产生一个进程或多个进程
2、生命周期
- 每个进程有个父进程(fork),产生子进程;不同在于每个进程启动服务产生子进程PID,父进程PPID;子进程独立完成工作之后,给父进程发送信号告知其子进程工作结束并要求父进程接受,然后子进程消失,父进程回收系统分配的资源
- 僵尸进程:子进程完成工作之后,父进程无法接收子进程的信息;对系统是有害的,一直占用资源;解决办法:找到父进程,结束父进程,就变成孤儿进程;
- 孤儿进程:子进程完成工作之后,找不到父进程接收子进程的信息,系统会让进程号PID=1,即systemd接收信息
二、进程五大状态
- 运行状态/正在运行状态
- 可中断睡眠状态:暂时无工作状态,等到被唤醒
- 不可中断睡眠状态:工作状态时,不可被打扰的状态
- 僵尸进程:将死状态,进程存在又无法结束;这时需要找问题源头
- 停止状态/暂停状态:
- 已死/dead状态(此状态仅做了解)
CPU:同一时刻只能运行一个进程,存在cpu时间片:给一个进程分配一个时间,实际这个时间非常短;
时间片举例:同时打开多个进程qq/微信/网易云,那么第一秒的时候运行qq,第二秒时间运行微信,第三秒运行网易云,等等
三、查看进程信息
要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的;但是ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令
1、ps命令
1.1、命令选项
ps是显示瞬间当时进程的状态,并不动态连续;默认以PID进程号列出信息
- ps:当前终端下运行的程序
选项 | 含义 |
---|---|
a | 显示终端上的所有进程,包括其他用户的进程 |
u | 以用户为主的进程状态 |
x | 显示没有控制终端的进程;通常与 a 这个参数一起使用,可列出较完整信息 |
aux | 以用户的形式展示所有进程信息,包括终端进程 |
-e | 显示所有进程 |
-f | 全格式 |
-ef | 查看所有进程,包含父进程 |
-elf | 更详细查看所有进程,包含父进程 |
r |