linux - 在linux任务调度程序中,sheduler_tick()在哪里调用?

标签 linux load-balancing scheduling

最近在玩linux任务调度器。

现在我想了解一下任务调度器的负载均衡机制和CFS算法。首先,我在__schedule()中找到了功能idle_balance(cpu, rq)如果当前运行队列为空,则调用它尝试进行一些负载平衡。

然后我又在core.c中找到了文件中有一个函数scheduler_tick()这似乎是定期调用的,更新 rq 和其他数据结构,并且还进行负载平衡(调用函数 trigger_load_balance(rq, cpu) )。我对吗?但是 scheduler_tick() 是如何做到的?工作?计时器在哪里?我知道 CFS 不是基于刻度的。所以可能在启动后创建了一个计时器,它将调用 scheduler_tick()定期?

这似乎是一个幼稚的问题,但我现在是linux系统的菜鸟。

最佳答案

它是由系统定时器定期生成的中断请求触发的。 1

关于linux - 在linux任务调度程序中,sheduler_tick()在哪里调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11172867/

相关文章:

NGINX 入口 Controller 返回 502,后端应用程序 pod 中没有日志

c# - ASP.NET-如何定期监控数据库表?

linux - 如何削减所有的制表符和空格 Linux shell?

php - 使用 Xampp 和 Ubuntu 安装 Drupal 时出现问题

linux - 如何在 bash 中存储 32 位小尾数法签名整数?

php - Amazon 横向扩展 Web 服务器的数据库服务器

linux - 如何获取在 LSF 上启动的命令的完整路径

http - HTTP负载均衡下的TCP连接和流量路由

c - C中输出到文件时的随机字符串

algorithm - 带区间调度的回文划分