并发: 多个“用户”同时访问同一个共享资源
Linux系统中用task_struct来描述和记录进程的一切,这个结构体称为进程控制块(PCB)
该结构体定义于 /kernel/include/linux/sched.h
其中包括了进程的编号(PID)进程的状态 进程使用的文件
Linux中任意一个进程(除了init进程)都有一个创建或者启动它的父母
启动或者创建他的进程称之为新进程的父进程
当新进程被创建时,内核会给之分配一个唯一的编号,称为进程ID,简称PID
操作系统通过进程的PID来对进程进行管理
可以通过使用ps指令来查看进程的ID 状态等信息
ps -ef
ps -aux
除了指令外,系统还提供了相应的接口可以从代码中获取进程的ID
getpid() //获取当前进程的ID
getppid() //获取父进程的ID
进程的创建
#include <unistd.h>
pid_t fork(void);
说明:
该函数创建一个新的进程,新进程为调用进程的子进程,调用进程称为新进程的父进程
如果fork成功,则父子进程同时存在,而子进程几乎是完全对父进程的复制.
如果fork成功,父子进程分别返回,父进程返回的是子进程的PID,子进程返回的是0
如果失败,则返回-1.同时设置errno