首页 > 编程语言 > 详细

线程调度策略SCHED_RR(轮转法)和SCHED_FIFO(先进先出)之对照

时间:2017-05-24 09:18:03      阅读:420      评论:0      收藏:0      [点我收藏+]

我们在用pthread创建线程时,能够指定调度策略policy——SCHED_OTHER(默认)、SCHED_RR和SCHED_FIFO。这里TALK一下两个实时策略——SCHED_RR和SCHED_FIFO。

先看一下效果。我们创建了四个子线程,指定最高优先级(针对特定策略):

  • SCHED_RR
技术分享

  • SCHED_FIFO
技术分享

对同样优先级的任务。SCHED_RR是分配给每一个任务一个特定的时间片,然后轮转依次运行。而SCHED_FIFO则是让一个任务运行完再调度下一个任务,而顺序就是依照创建的先后。

SCHED_RR是依据时间片来调度线程的,当时间片用完时,无论这个线程优先级有多高,都不会在执行,而是进入就绪队列,等待下一个时间片到来。只是图1显示,在thread5798时间片用完时,该线程紧接着进行了一次抢占preemption。又获得了一个时间片。顺便提一句时间片长度的定位是linux凭经验来的。即选择尽可能长、同一时候能保持良好对应时间的一个时间片。

线程调度策略SCHED_RR(轮转法)和SCHED_FIFO(先进先出)之对照

原文:http://www.cnblogs.com/cynchanpin/p/6897070.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!