操做系統的內核裏的三大功能:linux
進程管理是最核心的內容
數據結構
全部進程都被這個雙向循環鏈表strcut list_head tasks連起來函數
雙向鏈表的操做:
操作系統
進程間的父子關係:
線程
進程建立的回顧:
道生一(start_kernel...cpu_idle),一輩子二(kernel_init和kthreadd),二生三(即前面是0、1和2三個進程),三生萬物(1號進程是全部用戶態進程的祖先,2號進程是全部內核態線程的祖先)3d
系統調用回顧:
fork()函數系統調用的狀況:
子進程copy了父進程的全部信息進行修改blog
與上週同樣的實驗步驟:
進程
進行gdb的過程:
內存
Linux經過複製父進程來建立一個新進程,經過調用do_fork來實現,Linux爲每一個新建立的進程動態地分配一個task_struct結構,fork()函數被調用一次,但返回兩次。it