1. 程式人生 > >linux進程管理之輕量級進程(四)

linux進程管理之輕量級進程(四)

lin 內存 文件 bsp 內核 inf 最小 進程 one

在Linux中,輕量級進程可以是進程,也可以是線程。我們所說的線程,在Linux中,其實是輕量級進程之間共享代碼段,文件描述符,信號處理,全局變量時;

如果不共享,就是我們所說的進程。

進程是資源管理的最小單位,線程是程序執行的最小單位。在操作系統設計上,從進程演化出線程,最主要的目的就是減小多進程上下文切換開銷。

最初的進程定義都包含程序、資源及其執行三部分,其中程序通常指代碼,資源在操作系統層面上通常包括內存資源、IO資源、信號處理等部分,

而程序的執行通常理解為執行上下文,包括對CPU的占用,後來發展為線程。在線程概念出現以前,為了減小進程切換的開銷,操作系統設計者逐漸修正進程

的概念,逐漸允許將進程所占有的資源從其主體剝離出來,允許某些進程共享一部分資源,例如文件、信號,數據內存,甚至代碼,這就發展出輕量進程的概念。

Linux內核在2.0.x版本就已經實現了輕量進程,應用程序可以通過一個統一的clone()系統調用接口,用不同的參數指定創建輕量進程還是普通進程。

技術分享圖片

linux進程管理之輕量級進程(四)