Linux 內核設計與實現 (進程管理)

進程:

進程就是處於執行期的程序。但進程並不僅僅侷限於一段可執行代碼(Unix稱其爲代碼段,text section)。實際上,進程就是正在執行的程序代碼的實時結果。

線程:

執行線程,是在進程中活動的對象,內核調度的對象是線程不是進程。

 

①:在現代操作系統中,進程提供兩種虛擬機制:虛擬處理器和虛擬內存。注意:在線程之間可以共享虛擬內存,但每個都擁有各自的虛擬處理器

②:程序本身並不是進程,進程是處於執行期的程序以及相關的資源的總稱。實際上,完全可能存在兩個或多個不同的進程執行的是同一個程序。並且兩個或兩個以上並存的進程還可以共享許多諸如打開的文件,地址空間之類的資源。

 

在linux系統中,這通常是調用fork()系統的結果,該系統調用通過複製一個現有進程來創建一個全新的進程。

進程描述符及任務結構:內核把進程的列標存放在叫做任務隊列的雙向循環鏈表中。鏈表中的每一項都是類型爲task_struct,稱爲進程描述符的結構,該結構定義在<linux/sched.h>文件中。進程描述符中包含一個具體進程的所有信息。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章