Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Linux > vfork,fork区别学习--来自 todaygood.cublog.cn
【标  题】:vfork,fork区别学习--来自 todaygood.cublog.cn
【关键字】:vfork,fork,--,todaygood.cublog.cn
【来  源】:http://www.cublog.cn/u/26166/showart.php?id=198556

vfork,fork区别学习--来自 todaygood.cublog.cn

Your Ad Here
/**********************************************************************/
vfork用于创建一个新进程,而该新进程的目的是exec一个新进程,
vfork和fork一样都创建一个子进程,但是它并不将父进程的地址空间
完全复制到子进程中,因为子进程会立即调用exec,于是也就不会存放该地址空间。
。不过在子进程中调用exec或exit之前,他在父进程的空间中运行。
vfork和fork之间的另一个区别是: vfork保证子进程先运行,在她调用exec或exit之后
父进程才可能被调度运行。如果在调用这两个函数之前子进程依赖于父进程的进一步动作
,则会导致死锁。
/************************************************************************/
一点学习体会:
vfork创建的更像一个用户线程,它和父进程共用用户空间,包括用户堆栈,但是其拥有自己的系统堆栈。创建好后父进程被挂起等待子进程的运行,直到子进程调用 exit后,父进程才会被执行,所以vfork后的子进程一定要小心使用,因为子进程完全可以破坏父进程的数据结构或者堆栈,如果子进程改变了父进程的数据结构,那么它就不能调用exit退出,此外还要保证子进程不改变全局数据,以防父进程不能继续运行。
fork就创建了一个纯粹的进程了。
将华邦w90p710移植到skyeye上面---仅供参考:【上一篇】
Introduction of how to add new syscall:【下一篇】
【相关文章】
  • 将华邦w90p710移植到skyeye上面---仅供参考
  • Struts 2.0初体验--参照Tutorials来写第一个Struts 2.0程序
  • 编程规范与范例--排版
  • 编程规范与范例--注释
  • 编程规范与范例--标识符命名
  • 编程规范与范例--可读性
  • 编程规范与范例--变量、结构
  • C程序--数列标准方差计算
  • 计算机学习笔记--程序设计
  • Java中的模式 --工厂模式
  • 【随机文章】
  • 浅谈C中的malloc和free(zz)
  • Excel读写类release
  • QQ群聊天记录分析器
  • Ecb emacs code browser
  • 解决网卡“记忆效应”惹出断网问题
  • 期待中的php6.0
  • 泛型算法:Data member 与 member function、functor之间的转换
  • VSFTP+MySQL虚拟用户配置过程讲解
  • 冒泡排序在PB中的实现
  • 一些SharePoint 2007开发的在线课程
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.