ps process state
unix system V
BSD
ps -e 显示所有进程(tty相关的是前台进程 ?tty无关)
-u 用户相关
-f full format listing
-F print extra information
-o command 选择显示字段
ps aux
ps -ef
ps -eF
bsd风格
a
x
state:
S sleep
s session loader
< high priority
N low priority
l multithread
+ 前台进程组中的进程 如与bash相关的前台进程组
D uninterruptible sleeping
R runnable or running
T stop
Z zombie
加[]表示内核级线程
ps aux | wc -l
pgreb 过滤显示某些进程
pidof process
进程间通信 IPC
信号
共享内存
proc目录
信号 短小信息,由一个进程发往另一个进程
man 7 signal kill -l
SIGHUP 1 运行时重启配置
SIGINT 2 终止信号 ctrl+c
SIGKILL 9 立即结束
kill -signal pid signal 默认15
killall -signal pid 进程树
kill -HUP httpd
重新读取配置文件
j进程优先级
进程:
Task_struct c语言实现 链表实现
进程描述符 元数据
双向链表
struct含有庞大的描述符数据结构。
进程由内核切换 存在用户态与内核态之间的切换。
内核模式不应占用太多时间 切换过多
cpu密集型 批处理 时间片长 优先级低
io交互式 时间片短 优先级高
实时进程 real-time
linux优先级 proority
实时优先级 1-99 数字越小 优先级越低
静态优先级 100-139 数字越小 优先级越高
实时优先级高于静态优先级
内核进程常为实时优先级 rt实时优先级
nice 调整静态优先级 Nice -20 ~ 19 对应 100-139 默认nice 0 优先级120
进程队列 两个 活动队列 过期队列
活动时调换两个队列 活动 过期 调换 o(1)算法
CFQ complete fair queue
SCHED_Other 更适用于桌面系统
cow Copy On Write 写时复制 先与父进程共享资源 子进程要修改则复制
RT
SCHED_FIFO
SCHED_RR
100-139
SCHED_Other
SCHED_BATCH
SCHED_IDLE
memory controller
get address
read/write
三级缓存是共享的 存在竞争
numa no union memory access
内核重新平衡内存访问