複製鏈接
請複製以下鏈接發送給好友

輕量級進程

鎖定
輕量級進程(LWP)是計算機操作系統中一種實現多任務的方法。
中文名
輕量級進程
外文名
LWP
在計算機操作系統中,輕量級進程(LWP)是一種實現多任務的方法。與普通進程相比,LWP與其他進程共享所有(或大部分)它的邏輯地址空間和系統資源;與線程相比,LWP有它自己的進程標識符,優先級,狀態,以及棧和局部存儲區,並和其他進程有着父子關係;這是和類Unix操作系統的系統調用vfork()生成的進程一樣的。另外,線程既可由應用程序管理,又可由內核管理,而LWP只能由內核管理並像普通進程一樣被調度。Linux內核是支持LWP的典型例子。
在大多數系統中,LWP與普通進程的區別也在於它只有一個最小的執行上下文和調度程序所需的統計信息,而這也是它之所以被稱為輕量級的原因。一般來説,一個進程代表程序的一個實例,而LWP代表程序的執行線程(其實,在內核不支持線程的時候,LWP可以很方便地提供線程的實現)。因為一個執行線程不像進程那樣需要那麼多狀態信息,所以LWP也不帶有這樣的信息。
LWP的一個重要作用是提供了一個用户級線程實現的中間系統。LWP可以通過系統調用獲得內核提供的服務,因此,當一個用户級線程運行時,只需要將它連接到一個LWP上便可以具有內核支持線程的所有屬性。
而因為LWP之間共享它們的大部分資源,所以它在某些應用程序就不適用了;這個時候就要使用多個普通的進程了。例如,為了避免內存泄漏(a process can be replaced by another one)和實現特權分隔(processes can run under other credentials and have other permissions)。
使用多個進程也使得應用程序在出現進程池內的進程崩潰或被攻擊的情況下變得更加健壯。