譯者:Nica  ( nicaliu at gmail dot com )



作者:M. Tim Jones (mtj@mtjones.com), Consultant Engineer, Emulex Corp.

日期:20 Dec 2008



Linux 裡使用者層面的程序建立與管理有許多原則是與 Unix 共通的,不過也有一些獨特的最佳化設計是特定 Linux 所擁有。在這裡,我們將回顧 Linux 程序的生命週期,並探究 Kernel 內部與使用者程序建立、記憶體管理、排程,以及程序停擺 (death 死亡狀態) 的議題。



Linux 因著持續不斷變動的需求,可以說是變動頻率相當高的系統。Linux 中心計算上的需求則是以程序 (process) 這樣的通用概念展現。程序可以是短暫存活 (自命令列執行命令),也可以是長期存活著的 (網路服務)。基於此,程序的日常管理及其排程化就相當重要了。



從使用者層面來看,程序是以程序辯識碼 (PIDs) 的方式展現。由使用者的角度來看,PID 是用來唯一辯識程序的數值。PID 在程序存活期間是不會改變的,但 PID 可以在程序死亡後再利用,所以將它們快取起來並不理想。



在使用者這邊,可以有很多的方式建立程序。你可以執行程式 (其結果就是建立一個新的程序),或是在程式裡,祈使系統呼叫 (system call) fork 或 exec。fork 呼叫,結果就是建立子程序,而 exec 呼叫,則將以新的程序取代現行程序內容。此處將論述這些方法,瞭解它們的運作模式。



本文中,將先說明代表 kernel 的程序,還有它們在 kernel 下如何進行管理,然後再重新審視這些程序在被一或多個處理程式 (processors) 建立與排程時 所代表的各種意義,最後,則會說明當程序死亡時,會發生什麼事。







詳細內文/原文出處:

http://www.ibm.com/developerworks/linux/library/l-linux-process-management/



如有版權問題,煩請來信告知 nicaliu at gmail dot com  ,謝謝。
arrow
arrow
    全站熱搜

    nicaliu 發表在 痞客邦 留言(0) 人氣()