轻量级进程是什么?

8 views
Skip to first unread message

Tiny G

unread,
Jan 29, 2011, 11:44:41 AM1/29/11
to linux-kernel
菜子求助:是不是使用vfork产生的进程? 轻量级进程和普通进城有什么异同?
_______________________________________________
Linux 内核开发中文邮件列表
Linux-...@zh-kernel.org
http://zh-kernel.org/mailman/listinfo/linux-kernel
Linux 内核开发中文社区: http://zh-kernel.org

Cunsuo Guo

unread,
Jan 29, 2011, 9:11:03 PM1/29/11
to Tiny G, linux-kernel
> 菜子求助:是不是使用vfork产生的进程? 轻量级进程和普通进城有什么异同?


Tiny G:
Linux里面没有"轻量级进程"这个概念,你可以看看LKD第三章关于Linux进程、线程实现的相关内容。

tingwei liu

unread,
Jan 29, 2011, 9:33:39 PM1/29/11
to Cunsuo Guo, linux-kernel
2011/1/30 Cunsuo Guo <cunsu...@gmail.com>:
>> 菜子求助:是不是使用vfork产生的进程? 轻量级进程和普通进城有什么异同?
>
其实在内核里面,进程与轻量级进程都是通过clone()来实现的。
fork()产生普通的进程。(使用的clone()的flags参数为SIGCHLD信号已经其他的clone标志位清零)
vfork()产生的进程。(使用clone()的flags参数为SIGCHILD信号和CLONE_VM以及CLONE_VFORK标志位)
轻量级进程使用clone()的标志位允许父子进程共享在内核的很多数据结构比如:CLONE_VM、CLONE_FS、CLONE_FILES....等标志位。

Tiny G

unread,
Jan 30, 2011, 8:04:31 AM1/30/11
to zh-kernel
没有轻量级进程是不是就没有线程,因为我在看书的时候,书上说线程是用轻量级进程实现的!!

--

answers

tingwei liu

unread,
Jan 30, 2011, 7:10:29 PM1/30/11
to Tiny G, zh-kernel
2011/1/30 Tiny G <guowe...@yeah.net>:
> 没有轻量级进程是不是就没有线程,因为我在看书的时候,书上说线程是用轻量级进程实现的!!
在linux下是可以这样理解的。

Wizard

unread,
Feb 1, 2011, 2:40:59 AM2/1/11
to Tiny G, zh-kernel
在 2011年1月30日 下午9:04,Tiny G <guowe...@yeah.net> 写道:
> 没有轻量级进程是不是就没有线程,因为我在看书的时候,书上说线程是用轻量级进程实现的!!

这个是我gdb的一个信息。 上面写的是lwp, 我感觉就是轻量进程。
那是不是说linux上线程就是轻量进程?
(gdb) info threads
* 1 Thread 0xb7ff0940 (LWP 22139) main () at psax.c:165


>
> --
>
> answers
> _______________________________________________
> Linux 内核开发中文邮件列表
> Linux-...@zh-kernel.org
> http://zh-kernel.org/mailman/listinfo/linux-kernel
> Linux 内核开发中文社区: http://zh-kernel.org

--
Wizard

Tiny G

unread,
Feb 1, 2011, 8:31:21 AM2/1/11
to Wizard, zh-kernel
我不知道啊!出来问问?

cheng chen

unread,
Feb 1, 2011, 8:40:53 AM2/1/11
to Tiny G, zh-kernel
你看下《Linux内核设计与实现》的进程那章好了。Linux都是轻量级进程,和线程的量级一样的。

2011/2/1 Tiny G <guowe...@yeah.net>

--
Cheng(誠)

Fedora Project Contributor -- Ambassador
https://fedoraproject.org/wiki/User:Freakrobot
_______________________________________________

My Page: http://freakrobot.blogbus.com/

Liuwenyi

unread,
Feb 1, 2011, 10:15:11 AM2/1/11
to linux-...@zh-kernel.org
于 2011-1-30 0:44, Tiny G 写道:
> 菜子求助:是不是使用vfork产生的进程? 轻量级进程和普通进城有什么异同?
轻量级线程我记得是在Solaris中看到过的,应该在《Solaris内核结构》,你可以去
找下。

T

unread,
Feb 9, 2011, 7:59:59 AM2/9/11
to linux-...@zh-kernel.org

On 2011-1-30 0:44, Tiny G wrote:
> 菜子求助:是不是使用vfork产生的进程? 轻量级进程和普通进城有什么异同?
> _______________________________________________
>
一般来说是线程的别称,实现可以相差很大(完全在用户态实现,完全在内核态实
现,两者混合实现),最终的效果差不是多条执行路径共用一个地址空 间。最大的
不同应该体现在地址空间的独立上;调度的方式依实现不同而不同。比如,线程完
全由内核实现的话,其与进程的差异恐怕就在于地址空间了。 这个问题应该去参
考一般操作系统理论书籍。
Reply all
Reply to author
Forward
0 new messages