輕量級進程

輕量級進程(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)。
使用多個進程也使得應用程式在出現進程池內的進程崩潰或被攻擊的情況下變得更加健壯。

相關詞條

熱門詞條

聯絡我們