一、进程管理理论知识简介
1、程序=指令+数据
2、进程是程序的副本,可以有多个。
3、内核是一个资源调度监视器。
4、进程的启动、调度都是由内核完成的、
5、cpu的运算能力靠时间流逝提供,内存将空间用于存储程序。
6、内存被事先划分了多个大小相同的页框(page frame),页面(page)可能为数据,在页框内。
7、Linux中的swap(交换分区)即是windows中的虚拟内存,即在内存不够用时使用磁盘资源存放内存中不常用的进程。
8、mmap:memory map–>共享内存空间。它映射至每个进程地址空间。
9、在Linux中,所有在用户空间中启动的进程,除init之外,都由其父进程创建的,其父进程通过fork()系统调用实现。
10、父进程创建子进程后会终止(kill)子进程
11、所有进程的父进程是init。
12、若父进程的子进程无法被收回,内存无法被分配,会导致内存泄漏。、
13、内核中有所有进程的信息表。
14、线程(thread):是一个进程内的多个执行流
15、用户空间和内核空间存在模式转换。
16、进程调度是内核的核心。
17、Linux有140个队列,优先级有140个,从0~139.
(1)数字越小,优先级越高(从100~139之间,属于静态优先级)。
(2)实时优先级:1~99,数字越大,优先级越高
(3)动态优先级:由内核维护,动态调整
18、进程的分类:
(1)批处理的进程
(2)交互式进程
(3)实时进程
19、Linux终端和进程的关系:
(1)控制台:/dev/console
(2)物理终端:/dev/pts#
(3)虚拟终端:/dev/tty[1-6]
(4)模拟终端:如ssh
(5)串行终端:/dev/serial或者/dev/ttyS#
(6)进程的两种类别
①跟终端相关的进程
②跟终端无关的进程
二、进程管理命令
1、进程管理的相关命令:
(1)ps (2)pstree (3)pidof (4)top (5)htop (6)pmap
(7)vmstat (8)dstat
2、pstree命令:查看进程树
3、ps命令
(1)作用:用于显示系统当前进程状态的命令
(2)格式:ps [OPTIONS]
(3)选项
①a:显示所有跟终端相关的进程。
例
# ps a
②x:显示所有跟终端无关的进程。
例:
# ps x
③u:以用户为中心显示进程相关信息
例:
# ps aux
各字段含义:
USER:用户名
PID:进程号
%CPU:cputime/realtime,进程占用cpu时间比实际占用cpu时间的比
%MEM:进程占用内存和实际内存空间的比例
VSZ:Virtual memory Size(虚拟内存集,单位为KB)
RSS:实际内存及集(也称非交换物理内存或者常驻内存集)
TTY:使用哪个终端(?表示进程与终端无关)
STAT:进程的状态
S:可中断睡眠状态
D:不可中断睡眠状态
R:运行或可运行状态
T:停止状态
Z:僵死状态
S:session leader(有子进程)
l:多线程进程
+:前台进程
N:低优先级进程
<:高优先级进程
START:进程启动时间
TIME:进程进行的时长
COMMAND:由哪个命令发起的进程,带{}表示内核线程
④-e:显示所有进程
⑤-f:显示进程完整格式列表
⑥-F:显示进程额外信息
例1:
# ps -ef