首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

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

2012-08-02 
创建进程的系统调用clone()和fork()fork()依据返回值的不同来区分是父进程返回还是子进程返回clone()依据

创建进程的系统调用clone()和fork()
fork()依据返回值的不同来区分是父进程返回还是子进程返回
clone()依据返回时的堆栈指针来区分是父进程返回还是子进程返回

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

[解决办法]
系统调用clone 确实能创建用户线程

但是原作者针对那句话的例子是thread_create ,这个只能创建内核线程
[解决办法]
clone用于创建轻量级进程,即创建的子进程与父进程共用线性地址空间,只是他们的堆栈不同而已(进程ID应该也不同),linux 2.4用户线程就是基于此实现的。
fork创建的子进程与父进程使用的不同的线性地址空间,是完全的进程概念。

热点排行