Linux进程管理
程序:一组指令以及参数集合,按照相应的逻辑控制计算机完成特性任务
进程:运行的程序,动态。操作系统上的基本单位,生命周期,状态
操作系统以及进程为单位分配系统资源
每一个进程运行时独立的
具有独立的地址空间,运行状态
多个程序同时运行,每一个程序就是一个进程
线程:
一个进程中可有多个线程
线程无法独立运行
进程的生命周期:
等待-------就绪--------运行---------阻塞----------休眠---------死亡
进程的管理工具
pstree 进程树 查看进程之间的关系
-p 显示pid
-u 显示用户
ps
-a 显示所有进程
-u 显示以用户为主的进程
x 和au配合使用,显示完整信息
-l
kill killall pkill
-9 杀死进程
-w 等待进程死亡
-l 列出已知信号
kill 选项 pid
1.程序与进程
linux程序:系统
用户
固件
(指令,参数)
程序 ------》系统调运-------》缓存(内存)---------》cpu处理 执行任务
特点:静态的,封闭的。
程序 ------运行--------》进程1,进程2,进程3,…
(1)动态
(2)有生命周期
(3)运行状态
(4)操作系统运行的基本单位。
(5)并发性,交互性
扩展:
应用 (应用程序)
|
内核 (内核文件,内核模块,驱动程序)
| 固件(芯片+程序)
硬件
区别:(1)程序是静态的,他只是一组指令的集合,不具有任何的运行意义,而进程是程序运行的动态过程
(2)进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程
(3)进程还具有并发性和交互性,而程序却是封闭的
2.进程和线程
进程-----线程1,线程2,线程3,… ----》线程把任务整个任务完成之后,才能运行。
扩展:
(linux:进程,线程----->独立的资源集),入口,序列,出口。
3.父进程和子进程
父进程------》子进程----》子进程
父进程的资源,权限,
------>(exec())运行自己的程序。
——exit()
|
<-------------------- 僵尸进程
唤醒
区别:(1)一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有
(2)线程不能单独执行,但是每一个线程都有程序的入口,执行序列以及程序出口,它必须组成进程才能被执行。
4.进程管理工具
(1)pstree:
(2)ps
(3)pgrep
(4)kill
(5)killall
0,9
(6)pskill
(7)htop
(8)vmstat
(参数)
(9)lsof 文件句柄
-u
-i
-p
-d
+d
+D
-c
-g
5.进程优先级
进程优先级划分【0-139】【0-99】:有效实时的优先级
0---------139
<------------优先级越高
-20------------19
<------------优先级越高
【100-139】:非有效实时优先级------调整 nice 【-20,19】
nice值的调整:
top “r”–enter;输入PID–enter;输入nice值–enter
renice 【-20,19】 PPID
htop F7(-) F8(+)
6.进程的状态
sleeping —睡眠状态
stopping —停止状态
running —运行状态
zombie —僵死状态
实时变化的
7.进程在前后台的运行;作业控制
在前台一次只能运行一个作业。
在后台可以运行多个作业
ping 192.168.42.2 > /dev/null 2>&1 &
jobs 查看后台作业;与终端,不同终端上的作业要在对应终端上查看。
fg %job编号
bg %job编号 把后台作业运行起来
ctrl + z :挂起
kill %job编号 先停止,在杀死。
ping 192.168.42.2 & 已经在后台运行,在前台输出结果;不影响前台作业执行
jobs
8.linux系统结构
在X86平台的CPU,是如何执行内核程序和用户程序的。
ring0:与硬件相关或者硬件寄存器,总线控制相关的程序------内核程序。
ring1-2 : 驱动程序或者与虚拟化相关的程序。
ring3: 用户态的程序。
9./proc
Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。
正在运行的内核信息映射
主要输出: 进程信息
内存资源信息
磁盘分区信息等等
10./sys
/sys 硬件设备的驱动程序信息