Day21-Linux-进程的管理(1)

一、进程的概述

1、什么是进程

定义:当我们运行一个程序,我们将运行起来的程序叫做进程。

2、程序和进程的区别

1、程序是数据和指令的集合,是一个静态的概念,可以永久的存在于系统中。如二进制文件等;
2、进程则是程序的运行的过程,是一个动态的概念,进程是存在生命周期的,也就是进程会随着程序的终止而销毁,不会永久的存在与系统中。

3、进程的生命周期

进程生命周期示例图

当父进程接收的命令调度时,会通过fork派生一个子进程并继承父进程的属性来处理任务,
1、子进程处理任务时,父进程会进入等待
2、子进程处理任务结束后,会退出同时让等待的父进程来接收一个处理的结果。
3、如果子进程在处理任务的过程中,父进程退出,那么这些子进程就没有父进程来管理,就会变成僵尸进程。

二、进程的状态信息监控

1、使用 ps 命令查看当前进程状态(静态)

ps -aux示例图

详细图解

状态 含义
USER 启动进程的用户
PID 进程运行的 ID 号
%CPU 进程占用CPU的百分比
%MEM 进程占用内存的百分比
VSZ 进程占用虚拟内存的大小(单位KB)
RSS 进程占用物理内存的实际大小 单位:KB
TTY 进程是由哪个终端运行启动(如tty1、pts/0等),? 表示是内核程序与终端无关
STAT 进程运行过程中的状态
START 进程启动的时间
TIME 进程占用CPU的总时间(0表示还没有超过秒,CPU以纳秒为单位)
COMMAND 程序运行的指令,[ ] 属于内核状态的进程,没有[ ] 表示用户状态进程

1)STAT状态的 S、Ss、Ss+、S<、S、S+、R、R+、D、T、Z等等,都表示什么

STAT
STAT详解
STAT状态 含义 STAT状态符号 含义
R 进程运行 s 进程是控制进程,Ss:进程的领导者,父进程
S 可中断睡眠 < 进程运行在优先级上,S< :优先级较高的进程
T 进程被暂停(挂起在后台) N 进程运行在低优先级上,SN:优先级较低的进程
D 不可中断睡眠 + 当前进程运行在前台,R+:表示进行在前台运行
Z 僵尸进程 l 进程是多线程的,SI表示进程是以线程的方式运行
示例一、PS命令查看进程状态切换
1.在终端1上运行vim
`[root@oldboy:~]# vim cui.txt

2.在终端2上运行ps命令查看状态

[root@oldboy:~]# ps -aux|grep cui              S表示睡眠模式,+表示前台运行
root       7701  0.3  0.2 151520  5200 pts/1    S+   16:45   0:00 vim cui.txt`
root       7703  0.0  0.0 112708   972 pts/0    R+   16:45   0:00 grep --color=auto cui`

在终端1上挂起vim命令,按下:ctrl+z 
3.回到终端2再次运行ps命令查看状态
[root@oldboy:~]# ps -aux|grep cui    #T表示停止状态
root       7701  0.0  0.2 151520  5200 pts/1    T    16:45   0:00 vim cui.txt
root       7707  0.0  0.0 112708   976 pts/0    R+   16:50   0:00 grep --color=auto cui
示例二、PS命令查看不可中断状态进程
1.使用tar打包文件时,可以通过终端不断查看状态,由S+,R+变为D+
[root@oldboy:~]# tar -czf etc.tar.gz /etc/ /usr/ /var/

[root@oldboy:~]# ps aux|grep tar|grep -v grep
root      58467  5.5  0.2 127924  5456 pts/1    R+   16:55   0:04 tar -czf etc.tar.gz /etc/ 
[root@oldboy:~]# ps aux|grep tar|grep -v grep
root      58467  5.5  0.2 127088  4708 pts/1    S+   16:56   0:03 tar -czf etc.tar.gz /etc/ 
[root@oldboy:~]# ps aux|grep tar|grep -v grep
root      58467  5.6  0.2 127232  4708 pts/1    D+   16:56   0:03 tar -czf etc.tar.gz /etc/ 

2)怎样杀死僵尸进程

1、查找其父进程
[root@oldboy:~]# ps -ef |grep cui
2、删除父进程(ID号)
[root@oldboy:~]# kill 8238
[root@oldboy:~]# kill -9  8238

2、使用top命令查看当前的进程状态(动态)

和top相似的命令 : htop、iftop 、glances

1)、top 常见指令

字母 含义
h 查看帮出
1 数字1,显示所有CPU核心的负载
z 以高亮显示数据
b 高亮显示处于R状态的进程
M 按内存使用百分比排序输出
P 按CPU使用百分比排序输出
q 退出top
top动态查看

2)平均负载

平均负载

图表详解

任务 含义
Tasks: 129 total 当然进程任务的总数
1 running 正在运行的进程数(当前为1个进程)
128 sleeping 睡眠的进程数(当期有128睡眠进程)
1 stopped 停止的进程数(当前有一1个挂起或停止)
0 zombie 僵尸进程数(当前为0个)
0.7 us 系统用户进程占用CPU百分比
0.2 sy 内核中的进程占用CPU百分比,通常内核是于硬件进行交互
0.0 ni 优先级占用CPU的百分比
98.7 id 空闲的进程占CPU的百分比
0.0 wa 有大量的等待,大量数据读入时产生飙升,CPU等待IO完成的时间
0.0 hi 硬中断,占的CPU百分比
0.0 si 软中断,占的CPU百分比
0.0 st 比如虚拟机CPU占用物理CPU的百分比

.什么是中断

中断是系统用来响应硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来响应设备的请求。

.中断会带来什么问题

1、由于中断处理程序会打断其他进程的运行,所以,为了减少对正常进程运行调度的影响,中断处理程序就需要尽可能快地运行。
2、如果中断本身要做的事情不多,那么处理起来也不会有太大问题;但如果中断要处理的事情很多,中断服务程序就有可能要运行很长时间。
3、特别是,中断处理程序在响应中断时,还会临时关闭中断。这就会导致上一次中断处理完成之前,其他中断都不能响应,也就是说中断有可能会丢失。

总结

今天主要学习进程的管理,进程的定义、进程和程序的区别、进程的生命周期、怎样了解进程的监控信息中每一个符号的含义,使用怎样区分的,最后学习了查看进程的两种方式,静态和动态。两者有什么不同。


进程的管理
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容