chrt 進程的優先級設置


參考以下鏈接

https¥www.cnblogs.com/abels0025/p/11430740.html

系統的整體優先級策略是:如果系統中存在需要執行的實時進程,則優先執行實時進程。直到實時進程退出或者主動讓出CPU時,才會調度執行非實時進程。實時進程可以指定的優先級范圍為1-99

調度隊列:

新產生的進程都會先獲得一個時間片,進入活動隊列等待調度到CPU執行。而內核會在每個tick間隔期間對正在CPU上執行的進程進行檢查。一般的tick間隔時間就是cpu時鍾中斷間隔,每秒鍾會有1000個,即頻率為1000HZ(這是可以設置的)。每個tick間隔周期主要檢查兩個內容:1、當前正在占用CPU的進程是不是時間片已經耗盡了?2、是不是有更高優先級的進程在活動隊列中等待調度?如果任何一種情況成立,就把則當前進程的執行狀態終止,放到等待隊列中,換當前在等待隊列中優先級最高的那個進程執行。

nice值:

如果有兩個nice值為0的進程同時占用cpu,那么它們應該每人占50%的cpu,如果將其中一個進程的nice值調整為1的話,那么此時應保證優先級高的進程比低的多占用10%的cpu,就是nice值為0的占55%,nice值為1的占45%。那么它們占用cpu時間的比例為55:45。這個值的比例約為1.25。就是說,相鄰的兩個nice值之間的cpu占用時間比例的差別應該大約為1.25。進程的優先級應該是從父進程繼承來的,這個值一般是0。

舉例:

通過NICE命令來對一個將要執行的bash命令進行NICE值設置:

[root@zorrozou-pc0 zorro]# nice -n 10 bash

這樣我就又打開了一個bash,並且其nice值設置為10

nice值的-20到19,映射到實際的優先級范圍是100-139

PR值:

ps命令中看到的PRI值或者top命令中看到的PR值。

nice值表示NI值,叫做靜態優先級

priority值表示PRI和PR值,或者叫動態優先級。

我們也統一將“優先級”這個詞的概念規定為表示priority值的意思

實時進程和非實時進程:

如果系統中存在需要執行的實時進程,則優先執行實時進程(PR為0-99); 直到實時進程退出或者主動讓出CPU時,才會調度執行非實時進程(PR為100-140)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM