由幾個變數影響執行緒的排程。
一些是執行緒支援特有的;另一些是程序排程注意事項的詳盡細節:
優先順序
執行緒的優先順序值是它在爭用處理器時間時優先權的基本指示符。
排程程式執行佇列位置
執行緒在排程程式的可分派執行緒佇列中的位置反映了一些前面的狀況。
排程策略
這一線程屬性決定了乙個正在執行的執行緒在時間片的末尾會遇到什麼情況。
爭用作用域
執行緒的爭用作用域決定了它是否只和它的程序內的其他執行緒競爭,還是和系統裡的所有執行緒競爭。乙個建立時帶有程序爭用作用域的 pthread 由庫來排程,而那些建立時帶有系統作用域的則由核心排程。庫排程程式利用乙個核心執行緒池來排程具有程序作用域的 pthread。一般來說,如果 pthread 正在執行 i/o,那麼建立具有系統作用域的 pthread。當有很多程序內同步時,程序作用域是有用的。爭用作用域是乙個
libpthreads.a 概念。
處理器相似性
在何種程度上強制執行相似性會影響效能。
將這些注意事項結合起來考慮看來是複雜的,但是您在管理乙個給定程序時可以從三種截然不同的方法中選擇:
預設
程序擁有乙個執行緒,該執行緒的優先順序隨著 cpu 消耗而不同,其排程策略是 sched_other。
程序級控制
程序可以有乙個或多個執行緒,但是那些執行緒的排程策略為預設值 sched_other,這允許使用現有的控制 nice 值和固定優先順序的方法。所有這些方法對程序中的每乙個執行緒的影響是相同的。如果 使用了setpri()子例程,程序中所有執行緒的排程策略被設定為 sched_rr。
執行緒級控制
程序可以擁有乙個或多個執行緒。這些執行緒的排程策略設定為 sched_rr 或者 sched_fifo
n,視情況而定。每乙個執行緒的優先順序是固定的,由執行緒級子例程控制。
LVS排程演算法(上) 靜態排程演算法
lvs的排程方法有十幾中,每種方法的排程標準和適用場景不同。大體有兩大類,分別為固定排程方法或稱為靜態排程方法,另一類是動態排程方法。常用的具體演算法有十種。1 輪詢排程 rr 將所有請求平均的分發到每個集群節點上,即輪流排程。2 加權輪詢排程 wrr 由於不同的伺服器效能不同,因此要考慮讓效能高的...
程序排程演算法(程序排程策略)
程序排程演算法 排程演算法是指 根據系統的資源分配策略所規定的資源分配演算法。一 先來先服務和短作業 程序 優先排程演算法 1.先來先服務排程演算法。先來先服務 fcfs 排程演算法是一種最簡單的排程演算法,該演算法既可用於作業排程,也可用於程序排程。fcfs演算法比較有利於長作業 程序 而不利於短...
處理機排程 排程演算法
先來先服務 fcfs 排程演算法 短作業 程序 優先排程演算法sjf spf 根據作業的長短在就緒佇列中排好隊,若採取非搶占方式則根據佇列順序依次執行 若為搶占方式,時間片完或新程序的作業比執行態的作業長度短,則搶占當前正在執行的程序,被搶占程序按照時間長短在就緒佇列排隊等待。特別注意就緒佇列中的排...