进程管理
1、内核数据结构(task structure)
包含了:PID PPID 进程上一次的运行状态 相关数据 名称等信息
堆:动态增加的内存,可以简称为堆
stack:栈,用于存储本地变量
MMU:内存管理单元(CPU中的设备)
进程切换:也叫上下文切换(
进程包含的信息
进程号
内存空间
用户
父进程
CPU time
VSZ:虚拟内集,即进程的虚拟内存大小,包含了共享库的内存大小,栈,堆,data,程序命令本身
RSS:常住内存集(residentsize)
多线程:thread,多线程需并行编程模型编写,即可以使用多线程处理任务
进程状态:
stopped:停止,不会被调试
ready:就绪,排队中
executing:正在运行,
uninterruptible:睡眠状态(sleep),不可中断的睡眠,需等待IO的资源
sleep:当一个进程需要与IO设备读取文件时,等待文件的读取过程,需要交出CPU运行时间,给予
其他进程运行,故睡眠
interruptible:睡眠状态(sleep),可中断的睡眠
zombie:僵尸进程
kernel-->init-->生成任务进程
pstree
大O标准:
o(1)
o(n)
0(logn)
o(n^2)
o(2^n)
进程知识
进程状态
父子关系
优先级关系:0-139,一共140个优先级,数值越小优先级越高,100-139用户可控制的,0-99内核调 整的
高优先级的特性:1、获得更多的CPU运行时间,2、更优先获得运行的机会。
每个进程都有一个nice值:优雅的,友好的,nice值从-20到19分别对应100-139,默 认每个程序的nice都为0,普通用户只能调大自己的进程的nice值,管理可以随意调整
进程号:process ID
在/proc/目录下,以数字开头的文件夹就为一个进程,数字为PID,其中init进程号永远为1
命令:
ps :process state
BSD风格:不需要加横线
a:显示所有跟终端有关的进程
u:显示进程由哪个用户启动的
x:所有与终端无关的进程
system V风格:选项需要加横线
-e:显示所有进程
-l:长格式
-F:显示完全字段
ps -o property1,property2:指定显示的字段
进程的分类:
跟终端相关的进程:
跟终端无关的进程
进程状态:
D:不可中断的睡眠
R:运行或就绪
S:可中断的睡眠
T:停止
S:僵死态
<:高优先级的进程
N:低优先级进程
+:前台进程组中的进程
l:多线程进程
s:会话进程首进程,会话进程的领导者
COMMAND进程,如果加[],说明是一个内核线程
pstree:显示进程数
pgrep:以指定字段显示进程
pgrep -u root bash
pidof:查找某进程的ID号
pidof sshd
top:动态显示进程信息
load average:平均队列长度 1,5,10分钟,值越小CPU负载就越低
us:用户空间所占的百分比
sy:系统空间所占的百分比
ni:调整优先级所占的百分比
id:空闲的百分比
wa:等待IO完成的所占的百分比
hi:硬件中断所占的百分比
si:软中断所占的百分比
st:被偷走的时间
virt:虚拟内存集
res:常驻内存集
shr:共享内存大小
top的交互子命令:
M:根据驻留内存大小进行排序
P:根据CPU使用百分比进行排序
T:根据累计时间进行排序
l:是否显示平均负载和启动时间
t:是否显示进程和CPU状态相关信息
m:是否显示内存相关信息
c:是否显示完整的命令行信息
q:退出top
k:终止某个进程
top选项
-d #:设置刷新时长
-b:以批处理模式刷新显示
-n #:在批处理模式显示几屏
进程间通信(IPC : Inter process communication)
共享内存机制
信号机制:signal
Semaphore:旗语机制
kill -l:显示所有的信号,重要的信号如下:
1:SIGHUP:让一个进程不用重启,就可以重读其配置文件,并让新的配置信息生效
2:SIGINT:ctrl+c,中断一个进程
9:SIGKILL:杀死一个进程
15:SIGTERM:杀死或中止一个进程,给时间,让其保存工作,默认指定的信号
调用或指定信号:
信号号码:kill -1
信号名称:kill -SIGKILL
信号名称简写:kill -KILL
kill 命令:
kill PID
killall COMMAND
调整用户的nice值:
1、调整已经启动的进程的nice值:
renice NI PID
2、启动时指定nice值
nice -n NI COMMAND
后台运行任务:
Command & ,将命令放到后台运行
ctrl+z,前台调到后台,但任务会被挂起
bg:让后台的停止作业继续运行
bg [%]JOBID
Jobs:查看后台的所有作业,作业号不同于进程号
+:命令将默认操作的作业
-:命令将第二个默认操作的作业
fg:让后台运行的作业调回前台
fg [%]JOBID
杀死后台进程
kill %JOBID
vmstat命令,系统状态查看命令
r:运行队列长度
b:阻塞队列长度
in:中断的个数
us:用户空间占用的百分比
sy:内核空间占用的百分比
id:空闲
wa:等待IO
CS:上下文切换的次数
vmstat # :每隔#秒刷新一次
vmstat # #1:每隔#秒钟显示一次,只显示#1次
uptime命令:查看系统运行信息
/proc/meminfo 查看内存的相关信息
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。