輕量級進程

在計算機操作系統中,'輕量級進程(英語: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)。

使用多個進程也使得應用程序在出現進程池內的進程崩潰或被攻擊的情況下變得更加健壯。

參見

外部連結