我是靠谱客的博主 积极跳跳糖,最近开发中收集的这篇文章主要介绍关于fork函数你不知道的一些小细节,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  • 1、 fork在创建子进程的时候完成的事情:

    • 1.1创建子进程,子进程拷贝父进程的PCB。
    • 1.2分配新的内存块和内核数据结构(task_ struct) 给子进程
    • 1.3将父进程部分数据结构内容拷贝至子进程,
      • 只是拷贝部分,例如子进程的PID进程号就是自己的,并不是拷贝于父进程。
    • 1.4添加子进程到系统进程列表当中,添加到双向链表当中
    • 1.5fork返回,开始调度器(操作系统开始调度)调度。

  • 2、用户空间&内核空间

    •  

    • 我们用一张图来理解用户空间和内核空间
    • 内核空间:
      • Linux 操作系统和驱动程序运行在内核空间。换句话说, 系统调用的函数都是在内核空间运行的,因为是操作系统提供的函数。
    • 用户空间:
      • 应用程序 都是运行在用户空间的。换句话说,我们程序员自己写的代码都是运行在用户空间的。但是,当程序猿写的代码调用了系统调用函数,则会切换到内核空间进行执行。执行完毕之后,在返回到用户空间继续执行用户的代码。
    • 3.写时拷贝

最后

以上就是积极跳跳糖为你收集整理的关于fork函数你不知道的一些小细节的全部内容,希望文章能够帮你解决关于fork函数你不知道的一些小细节所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部