linux程序排程之nice函式

2021-08-27 08:49:35 字數 1024 閱讀 6632

總結:

int nice(int inc);

程序排程優先順序為,nice的取值範圍是0~(2*nzero)-1

一般標頭檔案會定義:優先順序的最大值nzero;

如果沒有可以通過這個函式得到:sysconf(_sc_nzero);

不管其他書對nice函式的用法怎麼說,下面是我通過實際測試得到的

輸入:輸入引數inc時,inc會以加的形式,設定優先順序如:原理優先順序為1,而inc為2,則優先順序為3,若inc為-1,則優先順序為0

輸出:成功設定輸出inc的值,錯誤返回-1

下面的程式概述:

1.建立乙個子程序,列印父程序和子程序優先順序,

2.子程序通過nice函式設定程序優先順序

3.最後,兩給程序執行10秒,在這10秒中,由於優先順序的不同,兩個程序分配的時間不同,則cout值就不同,優先順序越大,cout的值越大

#include #include #include #include #include #include #include #include #include #include #include #include #define bufsize 20

unsigned long long count;

struct timeval end;

void

checktime(char *str)

}int

main(int argc, char *argv)

else if (pid == 0)

else

for(;;)

}

結果:

程序排程(程序優先順序和nice值)

基本概念 程序優先順序是乙個數值,它通過動態的優先順序和靜態的優先順序來決定程序被cpu處理的順序。乙個擁有更高程序優先順序的程序擁有更大的機率得到處理器的處理。核心根據程序的行為和特性使用試探演算法,動態地調整調高或調低動態優先順序。乙個使用者程序可以通過使用程序的nice值間接改變靜態優先順序。...

Linux程序排程之CFS

在linux2.6核心中,開發人員引入了一種新的排程策略,旨在解決2.5及之前的排程器在處理使用者互動式程式時延遲大的不足。這種排程器就是completely fair scheduler 簡稱cfs 排程器的任務就是從當前系統中的就緒任務中選擇合適的任務執行。排程器需要確定在什麼時候排程什麼任務,...

Linux之程序排程演算法

作業系統管理了系統的有限資源,當有多個程序 或多個程序發出的請求 要使用這些資源時,因為資源的有限性,必須按照一定的原則選擇程序 請求 來占用資源。這就是排程。目的是控制資源使用者的數量,選取資源使用者許可占用資源或占用資源。1.先來先服務 fcfs 排程演算法 fcfs排程演算法是一種最簡單的排程...