Linux下,进程的相关知识,进程的来源,去向,状态,静态查询命令ps
一、进程主要组成部分
0、没有执行的程序就是普通文本文件,将程序运行起来以后就是进程,进程又有以下组成部分
1、一个或多个文件
2、被分配内存的地址空间
3、有权限限制
4、程序代码的一个或多个副本(又叫执行线程)
5、拥有状态,运行,睡眠,卡死啥的
二、文件变成进程
文件变成进程,从外存到内存
外存:U盘,磁盘,便宜且可永久保留的硬盘,速度慢
内存:速度快价格高
三、进程消耗的资源
CPU通过时间分片达到了多线程的效果,
将程序文本从外存硬盘放到内存中,
1、占用内存空间
2、占用CPU的处理时间,
3、可能占用网络,
4、分配个名字PID以及其他信息,
四、进程的常用信息
1、PID,PPID,pid是进程号,ppid是父进程号,进程的唯一标志,杀进程时需要,通过ps -ef查看
2、当前进程状态
3、内存分匹配情况
4、CPU和已花费的实际时间
5、用户ID,这个可以决定进程的特权
6、进程名
五、进程有状态Stat
1、S睡眠Sleep,没有被使用的进程会生成一个子进程并进入休眠,子进程保持running
2、R运行状态Running,
3、Z未响应,僵尸进程Zombie
4、T停止Stop,和Sleep重合所以取T
六、静态查询进程命令ps,process show,以及三个参数aux和排序
1、参数和排序
ps a//显示现行终端机下的所有程序
ps u//以用户为主的格式来显示程序状况
ps x//不以终端机划分
ps a --sort 列名
比如ps a --sort %cpu或者ps aux --sort pid,列名前面加-是降序,不加是升序。
2、命令和选择查看行
ps aux
进程数量太多不好全部看,修改命令为
ps aux|head -3
只看前三行
3、静态查询,表示其查询是只查询执行命令的那一刻的服务器进程,而不能像Windows下的任务管理器那样保持动态查看。
上面看到Linux下ps得到的数据是不会发生改变的。
上面看到Windows下的任务管理器是可以保持动态查看和改变数值的。
七、动态查看进程命令,top,就像Windows里面的任务管理器
1、top命令执行结果中的头五行信息的大致内容:
第一行:任务名,系统时间,CPU占用率
第二行:任务数以及状态统计
第三行:CPU占用率
第四行:内存空间利用情况。K_M_G
第五行:交换分区利用情况(硬盘的一部分空间,存放常用数据)
2、top命令的参数:
top -d num -u username -p pid
//-d表示top命令每过num秒刷新一次,避免频繁刷新消耗资源
//-u表示只显示某个用户的进程信息
//-p表示查找某个进程号为pid的进程信息
使用完top以后直接按下q就可以退出top,推出后top停止
3、在top中杀进程
(1)在top命令下想要kill进程,就输入k,top会弹出pid to signal/kill:
(2)然后输入想要杀死的进程的进程号,回车,就可以杀死特定进程了。
(3)如果按下了k但又不想杀死进程了,就按esc,那段话就会消失。