高階程序管理

2021-06-08 10:46:10 字數 1433 閱讀 5934

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 因為友善值背後的概念是通過調低乙個程序的優先順序來 善待 系統上的其他程序,這讓其他程序可以使用較多的處理器空間。友善值可控制乙...