1.fork调用和exec替换进程映像
pid_t fork(void)
每次调用都返回两次,在父进程中返回的是子进程id,在子进程中返回的是0,为判断当前是什么进程的依据
子进程的代码与父进程完全相同,同时还会复制父进程的数据(堆数据、栈数据、静态数据),采用的是写时复制(在任意进程对数据进行写操作时发生)
创建进程后,父进程打开的文件描述符在子进程也是打开的,引用计数加1
2.处理僵尸进程
子进程结束后,父进程读取其退出状态之前称为该子进程处于僵尸态,父进程可以通过捕捉SIGCHID信号来调用非阻塞的waitpid函数,这样效率较高
3.管道
只能用于关联进程之间通信,socketpair创建全双工管道
4.信号量(p、v操作)
同步线程用于对关键代码段的独占式访问
5.共享内存
6.消息队列
相关API使用参考Unix环境高级编程