轻量级进程
外观
此条目需要补充更多来源。 (2007年10月1日) |
此条目翻译自英语维基百科,需要相关领域的编者协助校对翻译。 |
在电脑操作系统中,'轻量级进程(英语:Light-weight process,缩写:LWP)是一种实现多任务的方法。与普通进程相比,LWP与其他进程共享所有(或大部分)它的逻辑地址空间和系统资源;与线程相比,LWP有它自己的进程标识符,并和其他进程有着父子关系;这是和类Unix操作系统的系统调用vfork()
生成的进程一样的。另外,线程既可由应用程式管理,又可由内核管理,而LWP只能由内核管理并像普通进程一样被调度。Linux内核是支持LWP的典型例子。
在大多数系统中,LWP与普通进程的区别也在于它只有一个最小的执行上下文和调度程序所需的统计资讯,而这也是它之所以被称为轻量级的原因。一般来说,一个进程代表程序的一个实例,而LWP代表程序的执行线程(其实,在内核不支持线程的时候,LWP可以很方便地提供线程的实现)。因为一个执行线程不像进程那样需要那么多状态资讯,所以LWP也不带有这样的资讯。
因为LWP之间共享它们的大部分资源,所以它在某些应用程式就不适用了;这个时候就要使用多个普通的进程了。例如,为了避免内存泄漏(a process can be replaced by another one)和实现特权分隔(processes can run under other credentials and have other permissions)。
使用多个进程也使得应用程式在出现进程池内的进程崩溃或被攻击的情况下变得更加健壮。