程序時間片的分配(優先順序設定)

2021-07-10 07:49:21 字數 1100 閱讀 8894

系統對不同程序所分配的cpu時間的多少主要由程序的優先順序決定。每乙個程序都有自己的優先順序都有自己的優先順序。靜態優先順序高的程序會搶占低的程序。對優先順序為0的程序將依照其動態優先順序來分配執行時間,優先順序的值越小,優先權越高。但是對程序執行一定的操作就可以改變其動態優先順序。

其操作如下:

#inclde

int nice(int inc);

#include

#include

int setpriority(int which,int who,int prio);

int getpriority(int which,int eho);

#include

int sched_set_priority_max(int policy);//獲取由policy指定的排程策略下優先順序的最大值

int sched_set_priority_min(int policy);//獲取最小值

int nice(int inc) 改變程序的動態優先順序。呼叫此函式的程序,優先順序將被加上引數inc所設的值,inc為正時優先順序降低,反之...

root使用者呼叫nice時,inc的值才可以為負。(呼叫成功時,返回值為0,失敗時為-1,將其返回值存放在errno內)

setpriority 設定程序/程序組或使用者的動態優先順序。

getpriority 獲取

which用於指定所做操作的物件

who指定函式所要設定優先順序的程序

prio指定程序優先順序

呼叫setpriority成功時,返回值為0,失敗時為-1;

呼叫getpriority成功時,返回值為所有匹配的程序中優先順序最小的值,失敗時,返回值為-1。

whiich取值

prio_process 設定程序的動態優先順序

prio_pgrp設定程序組的動態優先順序

prio_user設定使用者的動態優先順序

呼叫getpriority函式時,其返回值是程序的優先順序,而乙個程序的優先順序可能為-1,所以呼叫getpriority時,如果返回值為-1,並不表示函式的呼叫失敗,需要根據errno的值來確定,所以呼叫getpriority函式前,應該將errno的值清楚,呼叫完畢後檢查errno的值是否成功。

Linux優先順序時間片排程

程序的優先順序有2種度量方法,一種是nice值,一種是實時優先順序 rtprio nice值的範圍是 20 19,值越大優先順序越低,也就是說nice值為 20的程序優先順序最大。實時優先順序 rtprio 的範圍是0 99,與nice值的定義相反,實時優先順序是值越大優先順序越高。實時程序都是一些...

設定程序的優先順序

系統中執行的每個程序都有乙個優先順序 亦稱 nice 值 其範圍從 20 最高優先順序 到 19 最低優先順序 預設情況下,程序的優先順序是 0 基本 排程優先順序 優先順序比較大的程序 nice 值比較小,最低到 20 相對優先順序比較小的程序 直到 19 將比較頻繁地被排程執行,因此就擁有更多的...

設定程序的優先順序

系統中執行的每個程序都有乙個優先順序 亦稱 nice 值 其範圍從 20 最高優先順序 到 19 最低優先順序 預設情況下,程序的優先順序是 0 基本 排程優先順序 優先順序比較大的程序 nice 值比較小,最低到 20 相對優先順序比較小的程序 直到 19 將比較頻繁地被排程執行,因此就擁有更多的...