当前位置:  技术问答>linux和unix

创建进程的系统调用clone()和fork()

    来源: 互联网  发布时间:2017-02-26

    本文导语:  fork()依据返回值的不同来区分是父进程返回还是子进程返回 clone()依据返回时的堆栈指针来区分是父进程返回还是子进程返回 为什么“依据返回时的堆栈指针来区分”的方法内对内核线程才适用? 为什么clone()可以使...

fork()依据返回值的不同来区分是父进程返回还是子进程返回
clone()依据返回时的堆栈指针来区分是父进程返回还是子进程返回

为什么“依据返回时的堆栈指针来区分”的方法内对内核线程才适用?
为什么clone()可以使用这种方法?clone()创建的一定是内核线程吗?

|
系统调用clone 确实能创建用户线程

但是原作者针对那句话的例子是thread_create ,这个只能创建内核线程

|
clone用于创建轻量级进程,即创建的子进程与父进程共用线性地址空间,只是他们的堆栈不同而已(进程ID应该也不同),linux 2.4用户线程就是基于此实现的。
fork创建的子进程与父进程使用的不同的线性地址空间,是完全的进程概念。

    
 
 

您可能感兴趣的文章:

  • 各位高手知道在JAVA中如何用一个名称创建一个对象实例,并调用其方法,注意:在编写代码时并不知要创建的对象的类名,也并不知方法名
  • 执行一个main函数程序时,unix操作系统调用什么创建进程?fork?newproc?
  • 请教各位大牛~~那个系统调用open()创建的是什么类型的文件?
  • 创建目录用什么函数(调用)比较好?
  • Linux下创建和调用动态链接库(.so)相关问题。高手进!
  • fork()首次调用新创建进程时,其入口在哪里?在线等等
  • 创建了2个套接字Raw socket和socket,都调用recvfrom(),一个专门捕获数据包,一个在9001端口监听UDP请求,怎么不行?
  • 200分送上,欢迎讨论用java调用vs.net所创建的web服务!
  • linux下向利用系统调用创建的文件写内容失败??
  • VC6.0如何创建以及调用动态链接库实例详解
  • Python自定义函数的创建、调用和函数的参数详解
  • 进程创建进程组后,然后创建该组中的进程,然后终止。这里的终止....?
  • 一进程源源不断地创建文件,另一进程把这些创建的文件抓取并挪走
  • 请教:进程创建和进程状态有关问题
  • 怎样一次杀掉父进程创建的所有子进程?我在父进程中用kill(0,SIGKILL),结果父进程也给干掉了,参数0难道不是表示除自己外的所有同uid的进
  • Linux创建进程的问题,请高手帮忙解答一下?
  • 进程的创建
  • 怎么创建一个会话,把其他进程组添加到会话当中啊?
  • Linux如何创建无法关闭的进程
  • 怎么编程测试进程创建、进程切换、进程结束的时间开销?
  • LINUX下进程创建的问题
  • 请问:进程创建的线程是怎样运行的啊,线程的处理函数运行完了,线程就退出了吗?
  • 关于进程创建的问题
  • 关于父,子,孙进程的创建和退出问题?????(用system v信号量集)
  • <<===========linux下怎么编程测试进程创建、进程切换、进程结束的时间开销?70分=================>>
  • kernel 进程创建的实现,初级问题,大家指教
  • 急问,进程创建问题
  • 高手请指点,怎么创建一个不会死的进程
  • 如何用shell程序不断的创建进程?
  • 如何创建一个内核进程并设定一个消息队列?
  • linux下创建两个进程争夺临界资源,要求用C语言边写!麻烦各位帮帮忙
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 自行创建的设备文件怎么在系统重启后不见了?
  • Ubuntu下如何创建FAT32文件系统的硬盘镜像
  • 如何过滤系统用户只显示创建的用户?
  • 在LINUX的虚拟文件系统下如何创建一个文件?
  • Linux系统下创建第二个oracle数据库
  • 如何在硬盘上创建和安装一个文件系统?
  • 装linux 出现错误-----未找到有效设备来创建新的文件系统.请检查你的硬件
  • Automation不能创建对象(LINUX系统)
  • 最近在看《自己动手写操作系统》,有同路者,大家结伴前行吧。请谁创建一个QQ群吧,100分奖励
  • 安装LINUX系统时创建分区失败 请指教
  • socket创建失败,返回系统错误码84,invalid or incomplete multibyte or wide character
  • shell监控linux系统进程创建脚本分享
  • linux编程,cp程序是如何实现的??别简单跟我说用link,link创建的是硬链接,不能跨文件系统的
  • .sh文件创建一个快捷方式放到开始菜单里 ubuntu操作系统
  • 如何创建unixware7系统安装的引导盘
  • 想创建可以同时在linux和windows上编译的程序,用什么来标记当前是linux系统?
  • 如何在硬盘上创建和安装一个文件系统?
  • arm2440下,系统时间和硬件时间一致,但创建文件得到的时间不一致,想过几种方法,似乎无用
  • 创建Linux系统服务的方法
  • Linux系统中C语言编程创建函数fork()执行解析
  • C++ Bitsets 成员 Constructors:创建新bitsets
  • 菜鸟在c盘装了win2000,想在剩下的空间装Red Hat Enterprise Linux 3,在创建linux分区的时候,不知道都创建什么分区??我知道要创建一个
  • C++ Double Ended Queues(双向队列) 成员 Constructors:创建一个新双向队列
  • 创建用户组创建用户出错
  • C++ I/O 成员 open():创建一个输入流
  • linux如何创建一个共享内存 可以mount 可以创建目录之类 跟硬盘分区一样
  • Xcode介绍及创建工程和工程依赖操作步骤
  • php循环创建目录示例分享(php创建多级目录)
  • HTML5 sprite 样式创建工具Stitches介绍
  • navicat 8 创建数据库与创建用户分配权限图文方法
  • java Servlet实现Session创建存取以及url重写代码示例


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3