Linux内核如何使用权重值调度进程?

男性

我正在阅读“ Linux内核开发”,但我不了解过程的价值。在linux内核中,每个进程都有一个不错的值,然后将不错的值映射到weight。

  • 我认为权重是“处理器时间的比例”。它表示分配给进程的运行时为:它的权重/(所有进程的总权重)*(处理器时间)。如果以上公式的结果为10%,但实际过程的运行时间低于10%,则为优先。正确的?
  • 我对cfs的检查方式感到困惑。cfs是否定期检查(例如1毫秒)并更新进程的运行时,将实际运行时/进程的运行时所分配的比例与选定的最小值进行比较并运行它?顺便说一句,您可以列出一些使用的功能吗?
生而自由

检查set_load_weightlinux内核源代码中的功能在此,计算调度实体(任务/任务组)的实际负载。从不同的地方调用此例程(例如,fork或从用户空间设置新的nice值等)。

if (update_load && p->sched_class == &fair_sched_class) {
    reweight_task(p, prio);
} else {
    load->weight = scale_load(sched_prio_to_weight[prio]);
    load->inv_weight = sched_prio_to_wmult[prio];
}

sched_prio_to_weight 根据优先级包含权重。

保存任务重量信息的结构是struct load_weightcfs使用此结构来获取实体的负载并vruntime在例程中更新任务的runtime(update_currcfs选择要在中运行的下一个任务pick_next_task下面是代码片段。

for_each_class(class) {
        p = class->pick_next_task(rq, prev, rf);
        if (p) {
            if (unlikely(p == RETRY_TASK))
                goto again;
            return p;
        }
    }

在这里,它遍历每个调度类并检查要运行的任务。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在逻辑回归中使用权重

来自分类Dev

如何使用权重重新排列线性布局?

来自分类Dev

如何在“randomForestSRC”中使用权重进行引导?

来自分类Dev

在 Weka 中使用权重

来自分类Dev

Linux内核3.x是否使用CFS进程调度程序?

来自分类Dev

抑制Linux内核调度程序中的进程(不终止)

来自分类Dev

使用权重按年份使用xtile

来自分类Dev

内核调度程序如何知道如何抢占进程?

来自分类Dev

GridLayout和使用权重居中的框

来自分类Dev

MySQL计数记录并使用权重

来自分类Dev

在pytorch中使用权重的自定义初始值创建新模型

来自分类Dev

在Linux中使用进程进行线程调度

来自分类Dev

Linux 5.9 内核调度

来自分类Dev

如何在numpy.random.choice中使用权重而不进行替换以获得所需的样本

来自分类Dev

使用权重函数或类似功能的PostgreSQL数组比较

来自分类Dev

Izhikevich神经元模型是否使用权重?

来自分类Dev

使用权重和偏差的扫描时无法导入模块

来自分类Dev

Izhikevich神经元模型是否使用权重?

来自分类Dev

在相对布局中使用权重以并排显示文本视图

来自分类Dev

使用权重生成重复项(python)

来自分类Dev

使用权重属性动态创建复选框

来自分类Dev

Keras 使用权重提取文本中的信息特征

来自分类Dev

了解Linux内核调度程序

来自分类Dev

如何限制进程使用的内核数?

来自分类Dev

如何确定进程使用的GPU内核数量?

来自分类Dev

内核使用哪种调度算法?

来自分类Dev

如何让我的Luigi调度程序使用带有并行调度标志的多个内核?

来自分类Dev

如何在共享 Linux 内核上运行 Docker 守护进程?

来自分类Dev

如何在最小的 linux 内核环境中启动进程?

Related 相关文章

热门标签

归档