目录
1.进程的基本概念
2.描述进程-PCB
3.fork创建子进程
4.各种状态对应的含义及进程大概的运行原理
5.僵尸进程
6.孤儿进程
7.进程的优先级
1.进程的基本概念
2.描述进程-PCB
PCB概念:进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合;Linux操作系统下的PCB是: task_struct
task_ struct重要内容分类:
1.标示符: 描述本进程的唯一标示符,用来区别其他进程(pid)
现在查询一个进程(执行文件才会生成一个对应的进程)叫mycode,
2. 状态:任务状态(运行状态、等待状态等),退出代码:例如代码最后return 0;先把0给操作系统再由操作系统给父进程
3.优先级: 相对于其他进程的优先级
4.程序计数器: 程序中即将被执行的下一条指令的地址;指向将要被执行下一条代码
5.内存指针:可以依靠内存指针找到代码
6.上下文数据(重要):进程没有执行完,会存在大量的临时数据
3.fork创建子进程
怎么证明fork确定子进程呢?
有上面可以看出子进程和父进程执行一样的动作,那么意义很小,如何子进程和父进程执行不一样的动作(fork这个函数的返回值不同);
子进程的进程的PCB和代码和数据怎么生成?
- 进程包括:PCB存储进程信息+代码和数据
4.各种状态对应的含义及进程大概的运行原理
R (running)
S (sleeping)
D (disk sleep)
T (stopped)
t (tracing stop)
X (dead)
Z (zombie)
4.1"R""S""D"三种状态的解释
4.2"T"暂停进程,"t"追踪暂停就好像打断点
4.3"Z""X"僵尸状态和死亡状态
- 僵尸状态:你死了但是要系统(父进程)确定你死了才能死,死亡状态:死了,一般看不到这个状态因为很快
5.僵尸进程
僵尸进程:当子进程退出并且父进程没有读取到子进程退出的返回代码时就会产生僵死(尸)进程
6.孤儿进程
孤儿进程:父进程先退出,子进程就称之为“孤儿进程” ,孤儿进程被1号init(操作系统)进程领养,最后也时由init进程回收;
7.进程的优先级
- cpu资源分配的先后顺序,就是指进程的优先权
- PRI数值越小,优先级越高