Linux進程管理(1)

來源:互聯網
上載者:User

 

進程是執行期間的程式及其它所包含的資源的總稱。

 

進程通過fork()系統調用產生,該系統調用通過複製一個現有進程來建立一個全新的進程。fork()調用一次返回兩次:一次回到父進程、一次回到新建立的子進程。

 

進程描述符及任務結構

 

核心把進程放在task list的雙向迴圈鏈表中,其中每一項都是一個task_struct結構(即進程描述符)。task_struct結構比較大(32位機器上約1.7K),包含了核心管理進程所需的全部資訊。

 

Linux通過slab分配器分配task_struct結構,以達到對象複用和緩衝著色的目的。

 

每個進程通過pid來標識,預設最大值為32768,可以通過/proc/sys/kernel/pid_max修改。

 

thread_info結構

 

struct thread_info {

     struct task_struct     *task;           /* main task structure */

     struct exec_domain     *exec_domain;     /* execution domain */

     unsigned long          flags;          /* low level flags */

     unsigned long          status;          /* thread-synchronous flags */

     __u32               cpu ;          /* current CPU */

     int               preempt_count ;     /* 0 => preemptable, <0 => BUG */

 

 

     mm_segment_t          addr_limit ;     /* thread address space:

                                 0-0xBFFFFFFF for user-thead

                                 0-0xFFFFFFFF for kernel-thread

                              */

     void               *sysenter_return;

     struct restart_block    restart_block ;

 

     unsigned long           previous_esp;   /* ESP of the previous stack in case

                                 of nested (IRQ) stacks

                              */

     __u8               supervisor_stack [0];

};

 

該結構在核心棧的尾端分配。

 

如何尋找當前正在運行進程的進程描述符

 


 


 

為什麼要屏蔽掉低13位(當THREAD_SIZE為8192時):

 

核心中的棧是從高地址到低地址,thread_info和核心棧(核心態堆棧)共用同一塊記憶體, 而每個任務的thread_info在核心棧的尾端分配.



 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.