LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2976|回复: 3

SCHED_RR 和 SCHED_OTHER 有什么不同?

[复制链接]
发表于 2005-6-30 10:10:24 | 显示全部楼层 |阅读模式
发表于 2005-7-1 17:19:53 | 显示全部楼层
2.6 Linux有3个scheduling policy
#define SCHED_OTHER     0
#define SCHED_FIFO      1
#define SCHED_RR        2
第一个是普通进程的,后两个是实时进程的
一般的进程都是普通进程,系统中出现实时进程的机会很少

2.6 Linux有140个优先级
后40个和nice value一一对应,属于SCHED_OTHER
前100个属于SCHED_FIFO, SCHED_RR
FIFO,RR这两个的区别学过OS应该都知道吧
一个是先进先出,一个是round robin

因为SCHED_FIFO, SCHED_RR优先级高于所有SCHED_OTHER的进程
所以只要他们能够运行,在他们运行完之前,所有SCHED_OTHER的进程的都没有得到执行的机会

可以以root身份试一下这个小程序,普通用户无法调用sched_setscheduler系统调用
不过做好准备,一但运行起来之后,要结束就只有按机箱上的reset
  1. #include<sched.h>
  2. #include<unistd.h>
  3. int main(){
  4.         struct sched_param sp;
  5.         sp.sched_priority = 99;
  6.         sched_setscheduler(0, SCHED_RR, &sp);
  7.         printf("%d\n", sched_getscheduler(0));
  8.         for(;;);
  9.         return 0;
  10. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-1 18:20:16 | 显示全部楼层
那是不是说普通用户没有提升到实时的权力,所以不会出错呢?
回复 支持 反对

使用道具 举报

发表于 2005-7-2 09:29:30 | 显示全部楼层
Post by bbbush
那是不是说普通用户没有提升到实时的权力,所以不会出错呢?

单就这个问题来讲,应该是
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表