【Linux】 sched_setscheduler() 和 sched_getscheduler()函数设置调度策略
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
/* run like this:
gcc filename.c
sudo ./a.out
*/
#include <stdlib.h> /* exit */
#include <stdio.h> /* printf */
#include <sched.h> /* sched_**** */
int main(int argc, char *argv[])
{
printf ("Policy %d\n", sched_getscheduler(0));
printf("max priority: %d\n", sched_get_priority_max(0)); /* 99 for real-time process 0 non-real-time process */
struct sched_param param;
int maxFIFO;
int maxRR;
maxFIFO = sched_get_priority_max(SCHED_FIFO);
maxRR = sched_get_priority_max(SCHED_RR);
if(maxFIFO == -1 || maxRR == -1){
perror("sched_get_priority_max() error!\n");
exit(1);
}
param.sched_priority = maxFIFO;
if(sched_setscheduler(getpid(), SCHED_FIFO, ¶m) == -1){
perror("sched_setscheduler() error!\n");
exit(1);
}
printf ("Policy %d\n", sched_getscheduler(0));
param.sched_priority = maxRR;
if(sched_setscheduler(getpid(), SCHED_RR, ¶m) == -1){
perror("sched_setscheduler() error!\n");
exit(1);
}
printf ("Policy %d\n", sched_getscheduler(0));
return 0;
}
最后执行a.out时必须具有su权限。
sched_normal 或者 sched_other是Linux默认的调度策略,其值为0
sched_fifo 为1
sched_rr 为2
其中后两个为实时进程的调度策略,第一个是非实时进程的调度策略。
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献4条内容
所有评论(0)