對Linux進程的理解
阿新 • • 發佈:2017-05-09
linux進程 初始 linux 網上 com 包括 http href title
在本科期間學習過進程,網上也有很多關於進程的知識,但對於進程到底是什麽一直沒有讓我滿意的解答(以下截圖來自網絡,感覺對進程理解有問題,說得也很虛)。
但今天找到這個博文感覺挺符合我的胃口:http://blog.csdn.net/yuqiang_ee_android/article/details/16889257
- 進程的本質
進程是Linux內核提供的一個環境(資源分配的基本單位),包括:
(1)進程控制塊(用於操作系統對進程的管理)。
(2)虛擬內存(分為好幾段:正文段、數據段、BBS段、堆棧段等等)。
(3)其他內核資源(打開的文件等等)。
- 進程和可執行文件的關系
前面說了,進程有正文段和數據段等,這些都是從磁盤上的可執行文件加載而來(可以通過size命令查看可執行文件分段信息)。
所以:可執行程序為進程提供必要的代碼和數據等。
- 進程和線程的關系
有很多關於 進程和線程的區別及聯系 的文章,但大部分和我的理解不一樣。以下是我的個人理解。
(1)進程提供了環境,為誰提供?答案就是線程。進程提供資源,線程幹活。
(2)進程是資源分配的基本單位,線程是CPU調度的基本單位。(有人說線程是進程的實體,我不知該怎麽理解)
(3)進程創建後默認就有一個初始線程存在,以後在該進程中創建的線程都會共享進程提供的環境。
對Linux進程的理解