Linux-进程
参考文献
- 趣谈Linux操作系统
进程
- 在 Linux 里,要创建一个新的进程,需要一个老的进程调用 fork 来实现,其中老的进程叫作父进程(Parent Process),新的进程叫作子进程(Child Process)
进程ID
(tid
)
Linux
采用延迟重用的算法来进行PID的分配,往简单了来说,原则就是- 位图记录进程 ID 的分配情况( 0 为可用,1 为已占用).
- 将上次分配的进程 ID 记录到 last_pid 中,分配进程 ID 时,从 last_pid+1 开始找起,从位图中寻找可用的 ID .
- 如果找到位图集合的最后一位仍不可用,则回滚到位图集合的起始位置,从头开始找.既然是位图记录进程 ID 的分配情况,那么位图的大小就必须要考虑周全.位图的大小直接决定了系统允许同时存在的进程的最大个数,这个最大个数在系统中称为 pid_max .回绕时并不是从 0 开始找起,而是从 300 开始找起.
1 | # cat /proc/sys/kernel/pid_max |
进程状态的切换
tgid
thread group id
,一个内部有多线程的进程,进程中的每个线程的pid
都不一样,但对外表现出来为一个进程整体
进程,线程创建的本质
常用命令
top
ps
pgrep
kill
pkill
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HoleLin's Blog!