1.sched_yield()中斷當前程序讓出處理器
int sched_yield (void);
2.設定程序優先順序
int nice (int inc);
int getpriority (int which, int who);
int setpriority (int which, int who, int prio);
3.設定i/o優先順序
int ioprio_get (int which, int who)
int ioprio_set (int which, int who, int ioprio)
4.設定獲取處理器親和度
#define _gnu_source
#include typedef struct cpu_set_t;
size_t cpu_setsize;
void cpu_set (unsigned long cpu, cpu_set_t *set);
void cpu_clr (unsigned long cpu, cpu_set_t *set);
int cpu_isset (unsigned long cpu, cpu_set_t *set);
void cpu_zero (cpu_set_t *set);
int sched_setaffinity (pid_t pid, size_t setsize,const cpu_set_t *set);
int sched_getaffinity (pid_t pid, size_t setsize,const cpu_set_t *set);
5.設定排程策略
#include struct sched_param ;
int sched_getscheduler (pid_t pid);
int sched_setscheduler (pid_t pid, int policy,const struct sched_param *sp);
6.設定排程策略引數
#include struct sched_param ;
int sched_getparam (pid_t pid, struct sched_param *sp);
int sched_setparam (pid_t pid, const struct sched_param *sp);
7.確定有效優先順序範圍
int sched_get_priority_min (int policy);
int sched_get_priority_max (int policy);
8.獲取時間片長度
#include struct timespec ;
int sched_rr_get_interval (pid_t pid, struct timespec *tp);
sched yield 函式 高階程序管理
1 讓出處理器 linux提供乙個系統呼叫執行程序主動讓出執行權 sched yield。程序執行的好好的,為什麼需要這個函式呢?有一種情況是使用者空間執行緒的鎖定。如果乙個執行緒試圖取得另乙個執行緒所持有的鎖,則新的執行緒應該讓出處理器知道該鎖變為可用。使用者空間鎖沒有核心的支援,這是乙個最間單 ...
sched yield 函式 高階程序管理
1 讓出處理器 linux提供乙個系統呼叫執行程序主動讓出執行權 sched yield。程序執行的好好的,為什麼需要這個函式呢?有一種情況是使用者空間執行緒的鎖定。如果乙個執行緒試圖取得另乙個執行緒所持有的鎖,則新的執行緒應該讓出處理器知道該鎖變為可用。使用者空間鎖沒有核心的支援,這是乙個最間單 ...
高階程序管理之程序優先順序
linux不會隨意對程序進行排程。事實上,應用程式會被指派優先順序,優先順序會對程序何時執行以及執行多久造成影響。以往,unix將優先順序成為友善值 nice value 因為友善值背後的概念是通過調低乙個程序的優先順序來 善待 系統上的其他程序,這讓其他程序可以使用較多的處理器空間。友善值可控制乙...