进程状态
父子关系
优先级关系
- 进程的优先级有 0---139 级:140个,数字越小优先级越高
- 100----139 :用户可控制
-
- nice值:优雅的,友好的
- nice值 -20 ---- 19
- 默认nice值为 0
- 普通用户只能调大nice值
- 0----99 :内核调整的
- 优先级的内容
-
- 获得更多的运行时间
- 更优先获得运行机会
大O标准:
- O(1)
- O(n)
- O(logn)
- O(n^2)
- O(2^n)
进程
- PID:Process ID 进程号
- init:父进程 进程号为 1
- ls /proc 进程目录 ,每一个目录对应一个进程
进程命令
- ps:Process State
-
- SysV风格: -
- BSD风格
- 常用选项
-
- BSD风格
-
- a :所有与终端有关的进程
- u :显示这个进程是由哪个用户启动的
- x :所有与终端无关的进程
- SysV风格
-
- -elF e相当于bsd中的a
- -ef
- -eF
- ps -o -PROPERTY1 -PROPERTY2
-
- 手动指定显示的字段
- eg:ps -o pid , comm , ni
- 进程的分类
-
- 根终端相关的进程
- 根终端无关的进程
- 进程状态
-
- D:不可中断的睡眠
- R:运行或就绪
- S:可中断的睡眠
- T:停止
- Z:僵死
- <:高优先级进程
- N:低优先级进程
- +:前台进程组中的进程
- l:多线程进程
- s:回话进程首进程
- pstree:显示进程树
- pgrep:
- pidof:根据进程名,找进程的id号
- top:监控系统性能的信息,每隔5秒刷新一次,头部信息表示:系统时间、运行时间、用户、平均负载、平均队列长度(1分钟、5分钟、15分钟);系统进程数、正在运行数、睡眠数、停止数、僵死数;每一个cpu负载情况:用户空间用户进程占用、内核占用、nice、空闲、等待io完成占用的时间、硬中断占用时间、软中断占用时间、被偷走的时间;PID USER PR:实时优先级 NI VIRT:虚拟内存级 RES:常驻内存级 SHR:共享内存 S:状态 %CPU %MEM TIME+:真正占用时长 COMMAND
-
- 常用的排序机制
-
- M:根据驻留内存大小进行排序
- P:根据cup使用百分比进行排序
- T:根据累计时间进行排序
- l:是否显示平均负载和启动时间
- t:是否显示进程和cup状态相关信息
- m:是否显示内存相关信息
- c:是否显示完整的命令行信息
- q:退出top
- k:终止某个进程
- -d 时间 : 指定刷新时长
- -b :批模式
- -n # :在批模式下,共显示多少批
- vmstat
- free
- kill
- pkill
- bg
- fg
进程间通信(IPC :Inter Process Communcation)
- 共享内存
- 信号:Singal
- Semaphore:旗语
重要的信号:
- 1:SIGHUP:让一个进程不用重启,就可以重读其配置文件,让新的配置文件生效;
- 2:SIGINT:Ctrl + c:中断一个进程
- 9:SIGKILL :杀死一个进程
- 15:SIGTERM:终止一个进程(默认信号)
kill PID :只能kill pid
killall COMMAND :叫一个进程名的进程都会被杀死,也可以加信号 ,kill 进程名
指定信号号码:
- 信号号码:kill -1
- 信号名称:kill -SIGKILL
- 信号名称简写:kill -KILL
注:ps默认只显示前台进程
调整nice值:
调整已经启动的进程的nice值:
renice NI PID
在启动时指定nice值:
nice -n NI COMMAND
前台作业:占据了命令提示符
后台作业:启动之后,释放了命令提示符,后续的操作在后台完成
前台---》后台
- Ctrl + z :把正在前台作业的送往后天 ,但是停止了运行
- COMMAND &:让命令在后台执行
bg:让后台的停止作业继续运行
- bg [[%]JOBID]
fg:将后台的作业调回前台
- fg [[%]JOBID] 这里的% 是可以省略的,但是kill命令是不可以省略的
kill %JOBID :杀死某个作业
vmstate:系统状态查看命令
- vmstate # : 表示每隔#秒执行一次
- vmstate #1 #2 :表示每隔#1秒执行一次,执行#2次
uptime:top命令的第一行内容
/proc/meminfo : 查看当前系统内存信息
/proc/进程号/maps : 查看某一进程占用物理内存的情况
jobs:查看后台的所有作业
- 作业号,不同于进程号
-
- 作业号有+:命令将默认操作的作业
- 作业号有-:命令将默认操作的第二个作业