• 父进程经过fork()以后,父进程和子进程拥有相同内容的代码段、数据段和用户堆栈,就像父进程把自己克隆了一遍。事实上,父进程只复制了自己的PCB块。而代码段,数据段和用户堆栈内存空间并没有复制一份,而是与子进程共享。只有当子进程在运行中出现写操作时,才会产生中断,并为子进程分配内存空间。

子进程继承父进程的部分

  1. 用户号UIDs和用户组号GIDs
  2. 环境Environment
  3. 堆栈
  4. 共享内存
  5. 打开文件的描述符
  6. 执行时关闭(Close-on-exec)标志
  7. 信号(Signal)控制设定
  8. 进程组号
  9. 当前工作目录
  10. 根目录
  11. 文件方式创建屏蔽字
  12. 资源限制
  13. 控制终端

子进程独有

  1. 进程号PID
  2. 不同的父进程号
  3. 自己的文件描述符和目录流的拷贝
  4. 子进程不继承父进程的进程正文(text),数据和其他锁定内存(memory locks)
  5. 不继承异步输入和输出

 

GitHub 加速计划 / li / linux-dash
12
2
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 5 年前
5def40a3 Add host customization support for the NodeJS version 5 年前
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐