程序優先順序

2021-08-09 02:43:48 字數 1148 閱讀 7899

1動態優先順序

因為高優先順序的程序總比低優先順序的程序先被排程,為防止有多個高優先順序且一直占用cpu資源,導致其它程序不能占用cpu,所以引用動態優先順序概念.

2互動式的程序

如果某個程序被認為是互動式的,那麼將被賦予較高的優先權,例如:鍵盤輸入.互動式的程序從來不被搶占,並且占用cpu很少,它們常常自動放棄cpu.

3有效優先順序

程序的有效優先順序就是靜態優先順序與額外值的和。

靜態優先順序是在系統建立時就已經分配給程序了,整個執行週期裡不變.額外值是乙個可正可負的值,也可以把額外值理解為動態優先順序,因為系統通過改變這個額外值(動態優先順序)來改變程序的有效優先順序.

額外值是由核心來管理

4、nice與有效優先順序的範圍

nice的範圍是-20到19有效優先順序的範圍是0-39

計算公式:優先順序(pri)= 靜態優先順序() + 附加值() - nice()

實時優先順序

1、實時優先順序概述:

linux提供了乙個實時排程策略,提供了100個額外優先級別,以保證系統能及時響應程序.

2、實時優先順序和普通優先順序的區別:

實時優先順序比普通優先順序高,普通優先順序是0-39.而實時優先順序是(41-139),優先順序一般不用40.

實時優先順序在整個程序的生命週期裡是不變的,所以實時程序沒有nice值,也沒有額外值.它的有效優先順序就是靜態優先順序.

3、posix標準為實時程序指定了兩種策略:先進先出(fifo),時間片法(round_robin,簡稱rr)

a、先進先出(fifo)排程

如果有兩個同優先順序的程序位於就緒佇列,通常情況下,排在前面的先被執行

fifo的策略要求程序不能搶占cpu,除非另乙個實時程序有更高優先順序

b、時間片排程(rr)

用時間片排程來執行chewer程式,則不會出現宕機的情況.因為它在執行一段時間後,會根據時間片釋放自己,這樣就會fork出sleep程序,最後kill掉自己(chewer).

程序優先順序

程序的優先順序可以通過setpriority nice修改優先順序。程序分為普通程序和實時程序。實時程序的優先順序比普通程序的優先順序高。nice的值 20 19值越小優先順序越高。預設為0 不同程序的執行緒優先順序?執行緒會繼承程序的優先順序,核心的排程是執行緒。所以先看程序是普通程序還是實時程序...

程序優先順序

用top或者ps命令會輸出pri pr ni ni nice這三種指標值,這些到底是什麼東西?先給出大概的解釋如下 pri 程序優先權,代表這個程序可被執行的優先順序,其值越小,優先順序就越高,越早被執行 ni 程序nice值,代表這個程序的優先值 nice 改變過優先順序的程序的占用cpu的百分比...

程序優先順序

l 程序優先順序 l 獲取當前程序控制代碼 l 優先順序設定 l 優先順序變動 l 優先順序獲取 一 程序優先順序 優先順序等級 簡單的說就是程序 執行緒 的優先順序越高,那麼就可以分佔相對多的cpu時間片。每個程序都有相應的優先順序,優先順序決定它何時執行和占用 cpu 時間。最終的優先順序共分3...