进程:进程就是运行的程序
进程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 同上