Linux下线程的调度策略与优先级
小狼@http://blog.csdn.net/xiaolangyangyang
旧版本Linux内核有三种调度策略:
1. SCHED_OTHER 分时调度策略
2. SCHED_FIFO 实时调度策略(先到先服务)
一旦占用cpu则一直运行,一直运行直到有更高优先级任务到达或自己放弃
3. SCHED_RR 实时调度策略(时间片轮转)
当进程的时间片用完,系统将重新分配时间片,并置于就绪队列尾,放在队列尾保证了所有具有相同优先级的RR任务的调度公平
新版本Linux内核有五种调度策略:
1. SCHED_NORMAL 默认的调度策略
在旧版本中名为SCHED_OTHER,分时调度策略
2. SCHED_BATCH 针对批处理进程
3. SCHED_IDLE
使用此调度器的进程的优先级最低,在实现CFS时引入
4. SCHED_FIFO 针对实时进程的先进先出策略
一旦占用cpu就一直进行,直到有更高的优先级的进程或自己放弃cpu,适合时间要求高,每次运行时间短的进程
5. SCHED_RR 针对实时进程的时间片轮转策略
进程的时间片用完后,系统会重新为其分配时间片,并把它放到队列的尾端,这样就能让每个进程都能运行一段时间,适用于每次执行时间较长的进程