Linux中,子进程与父进程的继承关系

子进程从父进程继承了:

  • 用户号UIDs和用户组号GIDs
  • 进程组号
  • 当前工作目录
  • 根目录
  • 环境
  • 打开文件的描述符
  • 共享内存
  • 堆栈
  • 信号控制设定
  • 信号掩码
  • 控制终端
  • 文件方式创建屏蔽字
  • 执行时关闭(close-on-exec) 标志
  • 资源限制
  • nice值 (由nice函数设定,数值越小,优先级越高)

子进程与父进程不同的:

  • 进程号PID
  • 各自的父进程号
  • 自己的文件描述符和目录流的拷贝(译者注: 目录流由opendir函数创建,因其为顺序读取,顾称“目录流”)
  • 子进程不继承父进程的进程正文, 数据和其它锁定内存
  • 不继承异步输入和输出

经过fork()以后,父进程复制了自己的PCB块给子进程,而代码段、数据段、堆栈内存空间与子进程共享。
只有当子进程在运行中出现写操作时,才会产生中断,并为子进程分配内存空间。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章