进程:进程就是运行的程序
进程process:有生命周期
资源分配的单位,执行的程序的一部分副本
cpu,内存,打开的文件等等都是进程的资源
os:(TASK STRUCTURE描述跟踪进程)
进程有父子关系,任何一个进程都是由其父进程fork自身而来
cow:copy on write
线程(thread)是进程的子系统
进程状态:
R:Running,Ready:运行或就绪
S:可中断 D:不可中断
Z:Zombie僵死态
T:Stop停止态
cpu上要么运行的是内核要么是用户进程
sys time系统时间:us time用户时间 3:7
id time cpu空闲时间
进程类型:
交互式进程(动态调高优先级,较少的cpu时间)
批处理进程(调低其优先级,较多cpu时间运算多)
实时进程
进程的优先级:(0-139)
动态优先级:0-99
静态优先级:
用户空间的进程:100-139,(-20-0-19)默认为120
调整进程的nice值来调整优先级
pstree命令:用于显示当前系统上的进程树
ps:两种风格 用于显示进程信息
BSD:
a:所有跟终端相关的进程
x:所有跟终端无关的进程
u:显示进程所属用户 vsz虚拟内存大小 rss进程实际物理内存大小
stat进程状态:<表示高优先级的进程 N:低优先级的进程 l:多线程进程
+:前台进程 s:会话进程的引导者 COMMAND:命令两侧加中括号表示内核线程
SysV:
-e:查看所有进程
-f:详细信息 F:显示更详
C:cpu利用率 PSR:进程在哪个cpu上运行
-o:自定义显示字段,显示多个条目时彼此间用逗号隔开
top:动态显示进程的执行信息,是一个交互式的命令,默认排序按cpu使用率排
1键控制cpu信息显示个数,
M:按驻留内存大小排序,P返回原排序状态;
T:根据累计时间进行排序
l:是否显示平均负载和启动时间
t:是否显示进程和cpu状态相关信息
m:是否显示内存相关信息
c:是否显示完整的命令行信息
q:退出top
k:终止进程
uptime: 显示的选项意思 系统时间
vmstat:虚拟内存状态(统计)[-n] [delay [count]] 采样显示count次结束
-n:取消表头显示
内容解析:
procs
r:运行和等待cpu时间片的进程个数,b:等待资源完成的进程数
memory
swpd:交换数据的大小
free:物理内存当前空闲空间大小
buff:对块设备读写时进行缓冲的大小
cache:对文件读写时缓存的大小
swap
si:由磁盘调入内存
so:由内存调入磁盘
IO
bi:由块设备读出来的数据
bo:写入某块设备的数据
system
in:每秒钟中断数
cs:上下文切换处
cpu
us:用户空间进程所消耗cpu时间的比例
sy:内核所消耗cpu时间的比例
id:空闲比例
wa:等待IO完成的时间的比例
st:被虚拟机偷走的时间比例
进程分两类:
跟终端相关的进程:终端退出进程就终止
跟终端无关的进程
进程间的通信(IPC):
共享内存
信号,signal
管道,套接字
kill -# :命令杀死进程的信号
1:SIGHUP让一个进程无需重启重读配置文件
2:SIGINT,Ctrl+c
9:SIGKILL 杀死进程
15:SIGTERM 终止进程,提示 默认15信号
19:SIGSTOP 停止进程
18;唤醒进程
kill + 信号 执行命令
kill -# PID 只能跟PID
killall COMMAND 终止所有同一个名字的进程
调整进程优先级:
nice -n # COMMAND 以#为优先级来执行command
renice # PID 调整已启动的nice值
作业控制:
&:键入在命令后可后台执行
nohup + 命令,终端退出也不会结束
ctrl+z让一个作业处于后台且停止
bg %jobnum:让一个处于后台且停止的作业在后台继续运行
fg %jobnum:让一个处于后台且停止的作业到前台继续运行
jobs:作业列表
kill %2jobnum:杀死一个作业
pidof COMMAND 查看进程的id号
pgrep COMMAND 同上
















