linux - Linux Kernel 3.0+中的调度机制

标签 linux linux-kernel scheduling scheduler

默认情况下,Linux 内核 (3.0+) 使用哪种调度机制,我猜是 Premptive Scheduling?
我们可以在构建时(从菜单配置中)选择一些其他机制,如截止日期优先或循环法吗?
而在Round-Robin机制中,内核中的时间片是如何分配和使用的? (我的意思是时间片是在运行时计算的吗?)

最佳答案

Linux 目前使用的是 CFS(Completely Fair Scheduler)调度器。您可以在 kernel documentation 中阅读相关信息.它还包含一个默认禁用的实时调度程序。

简而言之,CFS 维护着一个按时间排序的红黑树,其中所有可运行的任务都按 CPU 已执行的工作量排序(考虑环绕)。 CFS 选择完成工作量最少的任务并“坚持下去”。文档中提供了更多详细信息。

关于linux - Linux Kernel 3.0+中的调度机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15875792/

相关文章:

linux - 为什么Linux内核函数filp_close中posix线程id可以为NULL?

linux - 虚拟 GPIO 仿真

java - Spring 4.0.2中如何在@Scheduled方法中获取当前 session (HttpSession)对象?

c# - 这是在 C# 中制作简单 "scheduler"的可接受方法吗?

c - 如何在Windows上实现RPC客户端

c++ - 如果我的进程在事件之间处于空闲状态,为什么延迟会更大?

c - Linux声音编程。如何确定帧中的缓冲区大小?

c++ - 使用 GDB 调试时如何将 std::cin 重定向到 Linux 终端?

java - 将 Java 与 Google 日历连接

copy_to_user 在字符设备读取函数中返回错误