Linux 任务调度策略

Linux任务调度策略

linux内核的三种调度方法

  • SCHED_OTHER 分时调度策略
  • SCHED_FIFO实时调度策略,先到先服务
  • SCHED_RR实时调度策略,时间片轮转

当系统中只有三种调度方式中的一种时

所有任务都采用linux分时调度策略时(SCHED_OTHER)
创建任务指定采用分时调度策略,并指定优先级nice值(-20~19)。
将根据每个任务的nice值确定在cpu上的执行时间(counter)。
如果没有等待资源,则将该任务加入到就绪队列中。
调度程序遍历就绪队列中的任务,通过对每个任务动态优先级的计算(counter+20-nice)结果,选择计算结果最大的一个去运行,当这个时间片用完后(counter减至0)或者主动放弃cpu时,该任务将被放在就绪队列末尾(时间片用完)或等待队列(因等待资源而放弃cpu)中。
此时调度程序重复上面计算过程,转到第4步。
当调度程序发现所有就绪任务计算所得的权值都为不大于0时,重复第2步。当调度程序发现所有就绪任务计算所得的权值都为不大于0时,重复第2步。

所有任务都采用FIFO时

创建进程时指定采用FIFO,并设置实时优先级rt_priority(1-99)。
如果没有等待资源,则将该任务加入到就绪队列中。
调度程序遍历就绪队列,根据实时优先级计算调度权值(1000+rt_priority),选择权值最高的任务使用cpu,该FIFO任务将一直占有cpu直到有优先级更高的任务就绪(即使优先级相同也不行)或者主动放弃(等待资源)。相同优先级的任务在队列中

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值