程式管理

tengrid發表於2009-05-18
程式管理
Linux Processes:每一個程式用一個 task_struct (在 Linux 中 task 和 process 互用)的資料結構來表示,用

來管理系統中的程式。
Identifiers:一個程式的 task_struct 中有 4 對程式和組識別符號:Uid,gid;Effective uid and gid;File

system uid and gid;Saved uid and gid。
Scheduling (排程):排程程式選擇系統中所有可以執行的程式中最值得的程式。
policy 程式的排程策略。 Linux 有兩種型別的程式:普通和實時。實時程式有兩種策略:環或先進先出( round

robin and first in first out )。在環的排程策略下,每一個實時程式依次執行,而在先進先出的策略下,每一個

可以執行的程式按照它在排程佇列中的順序執行,這個順序不會改變。
Priority 程式的排程優先順序。
jiffies 程式執行時可以使用的時間量。
Coutner 程式可以執行的時間量
Process Selection 排程程式檢視執行佇列中的程式,查詢最值得執行的程式。
Swap Processes 如果最值得執行的程式不是當前程式,當前程式必須被掛起,執行新的程式。
Scheduling in Multiprocessor Systems (多處理器系統中的排程):需要注意的是,不只有一個CPU,所以不只有

一個空閒程式,所以SMP需要紀錄每一個處理器的當前和空閒(idle)程式。
Virtual Memory :...很難說,理解task_struct,vm_area_struct ,demand paging ,page fault,AVL樹,以及記憶體

管理的知識。
Creating a Process (建立一個程式):理解init_task ;克隆發生在核心的核心態;可能克隆的程式保留它的父進

程的程式識別符號;
Executing Programs (執行程式):理解demand loading

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/94384/viewspace-600318/,如需轉載,請註明出處,否則將追究法律責任。

相關文章