輕量級行程
此條目需要補充更多來源。 (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)。
使用多個行程也使得應用程式在出現行程池內的行程崩潰或被攻擊的情況下變得更加健壯。