程序排程之拉幫結派

2021-08-18 19:00:32 字數 1273 閱讀 8202

uid:linux os所有的使用者由乙個唯一的數字來標識,即使用者識別符號。

user group id:為了和其它使用者由選擇地共享資料,每個使用者是乙個或者多個使用者組的一名成員,組由唯一的使用者組識別符號標識。每個檔案也恰好與乙個組相對應。例如,可以設定這樣的訪問許可權:擁有檔案的使用者具有對檔案的讀寫許可權;同組使用者僅有唯讀許可權;而系統的其它使用者對檔案沒有任何訪問許可權。

pid:linux os允許使用者使用乙個叫程序識別符號的數來標識程序,它儲存在程序描述符的pid欄位中。

thread group:unix程式設計師希望同一組中的執行緒有共同的pid。事實上,乙個多執行緒應用程式的所有執行緒都必須有相同的pid。按照這個標準,linux引入執行緒組的概念。乙個執行緒組中的所有執行緒和該執行緒組的領頭執行緒(thread group leader)有相同的pid,也就是該組中的第乙個輕量級程序的pid,它被存入程序描述符的tgid欄位中。

process group:現在unix os引入該該概念,以表示一種作業(job)的抽象。例如,為了執行命令列 $ls | sort | more,shell支援程序組,例如bash,為三個相應的程序ls、sort和more建立了乙個新的組。shell以這種方式作用於這3個程序,就好像它們是乙個單獨的實體(作業)。每個程序描述符包括乙個包含程序組id的字段。每個程序組可以有乙個領頭程序(即其pid與這個程序組的id相同的程序)。新建立的程序最初被插入到其父程序的程序組中。

login session:乙個登陸會話包含在指定終端已經開始工作會話的那個程序的所有後代程序。通常情況下,登陸會話就是shell程序為使用者建立的第一條命令。程序組中的所有程序必須在同一登陸會話中。乙個登陸會話可以讓幾個程序組同時處於活動狀態,其中,只有乙個程序組一直處於前台,這意味著該程序組可以訪問終端,而其他活動的程序組在後台。

group_leader:p所在程序組的領頭程序的描述符指標

signal->pgrp:p所在程序組的領頭程序的的pid

signal->session:p的登陸會話領頭程序的pid

syscall_spu(getpid)

=>sys_getpid //

#define syscall_spu(func) sys_##func

=>current->tgid

linux程序pid雜湊表

linux執行緒之執行緒 執行緒組 程序

程序id號

程序排程之建立程序

do fork struct pid pid alloc pid struct pid pid kmem cache alloc pid cachep,gfp kernel 分配pid結構體空間 nr alloc pidmap current nsproxy pid ns 分配pid程序號 pid ...

OS之程序排程

處理機排程 在多道程式程式的環境中,記憶體中存在著多個程序,程序往往大於處理機數目,這就要系統按照某種演算法,動態的將處理機分配給處於就緒狀態的程序。是之執行,分配處理機的任務就是由處理機排程完成的。排程實質上是一種資源分配。處理機排程演算法的目標 處理價排程演算法的共同目標 1 資源利用率,為了提...

程序排程之喚醒

關於 wait event interruptible中的for迴圈裡面的condition怎麼才能為真,自己很迷惑,因為如果condition為真,那麼在wait event interruptible就直接退出了。根本走不到for迴圈裡面。define wait event interrupti...