Chinaunix首页 | 论坛 | 博客
  • 博客访问: 46445
  • 博文数量: 8
  • 博客积分: 401
  • 博客等级: 一等列兵
  • 技术积分: 125
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-15 12:28
文章分类
文章存档

2010年(8)

我的朋友

分类: LINUX

2010-08-22 13:18:57

fork VS. exec

    上次面试的时候一个面试官问起这个问题:fork 和 exec 有什么区别和不同,以前看书不太仔细,没回答得全面,回来以后留意了一下这个问题。

    fork 和 exec 是linux中的两种创建新进程的机制。
1). fork 可以创建当前进程的一个副本,父进程和子进程只有PID不同,在fork之后,系统中有2个进程都执行同样的操作。从程序的角度看,父进程内存中的内容将被复制。但是linux实用了写时复制的技术来使得fork操作更加高效,也就是将内存复制操作延后到父进程或者子进程向某个内存页面写入数据之前,在只读访问的时候,父进程和子进程可以共享同一个内存页。
2). exec 将一个新程序加载到当前进程的内存中并且执行之,旧的程序的内存页将刷新,内容将被新的进程的数据替换,然后开始执行新的程序。


阅读(1001) | 评论(0) | 转发(0) |
0

上一篇:浅谈IEEE 802.1X/EAP架构

下一篇:没有了

给主人留下些什么吧!~~