进程fork创建PID获取
Posted 阿龙亡命天涯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程fork创建PID获取相关的知识,希望对你有一定的参考价值。
PCB(进程控制块)进程标识符PID,
从cpu获得时间片,就会从就绪状态R转换成运行状态R
包含的信息比上述包含的多得多…
一个内存页4096字节
虚拟内存实际映射到物理内存时只有一点点的内存,需要时会申请内存
进程和程序:
并行和并发的区别:
多个处理器才叫并行,单个处理器在短时间内轮换执行叫并发!
内存管理单元:
进程控制块:
Linux内核源文件:(很长 只截取一部分)
这个结构体中有很多的变量:
进程状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换。
在三态模型中,进程状态分为三个基本状态,即运行态,就绪态,阻塞态。
在五态模型中,进程分为新建态、终止态,运行态,就绪态,阻塞态。
- fork()之后处于就绪态(所有都储备好了,就差CPU调度),cpu调度后就变为运行态。优先级高的越先被调度。
- 子进程挂了,父进程没有替他收尸,就成了僵尸进程。
- 运行态接收到信号(内核发送的)就到了停止态,被唤醒后就到就绪态,再到运行态
- 运行后未申请到资源,就成为了不可中断等待态/可中断等待态。
查看进程状态命令
ps aux
ps:
top命令:
kill:
-9代表强制结束
Linux中可以存在名字相同的进程:(但是PID不一样)
killall:
一次性杀死全部同名的进程
以上是关于进程fork创建PID获取的主要内容,如果未能解决你的问题,请参考以下文章
Linu创建回收进程forkexecwaitwaitpid函数的理解
if((pid1=fork())<0)和if(pid1=fork()<0)有啥区别么?!因为在Linux下这两个条件运行出的结果完全不同