![](/img/trans.png)
[英]Effects of sched_yield() from a thread running with SCHED_RR scheduling policy
[英]What scheduling policy does each return int value from sched_getscheduler(pid) correspond to? [C]
當我使用以下代碼將調度策略設置為“截止日期”時:
struct sched_attr attr = {
.size = sizeof(attr),
.sched_policy = SCHED_DEADLINE,
.sched_runtime = 30000000,
.sched_period = 100000000,
.sched_deadline = 100000000
};
pid_t pid = getpid();
printf("pid=(%d)\n",pid);
if (sched_setattr(pid, &attr, 0)){
printf("[ERROR] sched_setattr()\n");
perror("[ERROR] sched_setattr()\n");
}
// Check scheduler policy is set correctly
printf("Scheduler Policy is %d.\n", sched_getscheduler(pid));
上述代碼的結果如下:
pid =(XXXXXX)
計划程序策略為6。
有人可以解釋sched_getscheduler(pid)的哪個返回int值對應於哪個調度程序策略嗎?
例如:從上述代碼中,我相信6對應於SCHED_DEADLINE策略。
您可以自己在系統上輕松找到類似這樣的內容,例如:
$ grep -r SCHED_DEADLINE /usr/include/
/usr/include/linux/sched.h:
#define SCHED_DEADLINE 6
$ grep define.SCHED_ /usr/include/linux/sched.h
#define SCHED_NORMAL 0
#define SCHED_FIFO 1
#define SCHED_RR 2
#define SCHED_BATCH 3
#define SCHED_IDLE 5
#define SCHED_DEADLINE 6
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.