linux 进程调度 编程,详解Linux进程调度策略

本文通过Linux进程调度的5类方式详细分析了策略以及实现过程中的详细讲解。

1、Linux 下进程分为5种类别,分别是停止类、截止类、实时类、公平类、空闲类,

每种类别都有一个运行队列,每次调度时,就是先按照类别优先级排序,再按照每个类别内的最高优先级任务调度运行。

34c780de4bd0740b406938af5222c508.png

文件:core.c (linux-4.6\kernel\sched)

781c361e5c6de39ef4fbf530b39006ab.png

解读:先看下面的for循环,可以看到实现思路是,遍历每种类别,选择下一个可运行的任务。由于大部分任务都属于公平队列,所以,绝大部分情况下,都在公平队列中进行选择,所以,内核开发者在上面的代码中加了likely()提高性能。

84801bafd29110e3f10ee9d9d42f8832.png

db44b8d2db36ceee0c78c427caad4cb8.png

db0a1a07151a45bd9ac8e01e38d5b79b.png

371a948f0d28fc0a90cf463f790982ec.png

79cf6a5ad22f5b2ea75274064515460a.png

f6e7b1b2d554c1514afeddaf3fefe38e.png

2、调度程序schedule()的调用次序。

schedule() --- > __schedule () --- > pick_next_task()

文件:core.c (linux-4.6\kernel\sched)

6f568e857d3de1648644080fb27e5411.png

61f52f83968c351935210e46ecbf657c.png

。。。。。。(中间有省略)

2d57f63eab8f2b2366ca905eb17724c8.png

总结

以上是编程之家为你收集整理的详解Linux进程调度策略全部内容,希望文章能够帮你解决详解Linux进程调度策略所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值