进程分段
进程在运行时系统会为其分配一个内存空间,这一内存空间大致可分为四部分:
- PCB:进程控制块,里面有进程的序号,空间,程序计数器等。
- 数据段:存储静态变量,全局变量,常量。和程序执行时的各种变量。
- 代码段:存储二进制代码
进程间通信方式
- 共享存储,共享内存,共享数据结构
- 消息传递,信号量,FIFO,消息队列
- 管道通信,管道
僵尸进程与孤儿进程
每个进程都有一个对应的PCB,在进程结束时,会发送一个信号量给父进程,通知父进程该进程已经结束,并由父进程回收子进程的PCB如果父进程没有接收到这一信号量,子进程的PCB就会一直保存在内存中,变为僵尸进程。
僵尸进程会占用内存,是我们要避免的。
如果在子进程结束之前父进程已经结束,那么子进程就会变为孤儿进程。孤儿进程会统一被进程id为1的init进程收留,所以不会产生内存问题。