进程
基本概念
进程一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度运行的基本单位
描述进程
描述进程-PCB
进程信息被放在⼀一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。课本上称之为PCB(process control block),Linux操作系统下的PCB是: task_struct,是Linux内核的⼀一种数据结构,它会被装载到RAM(内存)⾥里并且包含着进程的信息。
进程创建
在linux中fork函数时⾮非常重要的函数,它从已存在进程中创建⼀一个新进程。新进程为⼦子进程,⽽而原进程为⽗父
进程。
#include <unistd.h>
pid_t fork(void);
返回值:⾃自进程中返回0,⽗父进程返回⼦子进程id,出错返回-1
进程调⽤用fork,当控制转移到内核中的fork代码后,内核做:
- 分配新的内存块和内核数据结构给⼦子进程
- 将⽗父进程部分数据结构内容拷⻉贝⾄至⼦子进程
- 添加⼦子进程到系统进程列表当中
- fork返回,开始调度器调度
进程终止
正常终止(可以通过 echo $? 查看进程退出码):
1. 从main返回
2. 调⽤用exit
3. _exit
异常退出:
ctrl + c,信号终止
进程等待
未完待续