有人能解释一下SCHED_OTHER、SCHED_FIFO和SCHED_RR之间的区别吗?

谢谢

推荐答案

SCHED_FIFO和SCHED_RR是所谓的"实时"策略.它们实现POSIX标准指定的固定优先级实时调度.具有这些策略的任务优先于其他任务,因此很容易陷入饥饿状态(如果它们不释放CPU).

SCHED_FIFO和SCHED_RR的区别在于,在具有相同优先级的任务中,SCHED_RR执行具有特定时间片的循环;相反,SCHED_FIFO需要任务显式地生成处理器.

SCHED_OTHER是一种常见的循环分时调度策略,它根据系统中运行的其他任务为特定时间段调度任务.

Update:自Linux3.14以来,有一个额外的策略称为SCHED_DEADLINE.该策略在Earliest Deadline First个队列上实现恒定带宽服务器(CBS)算法.此策略下的每个任务都分配了一个截止日期,并执行最早的截止日期任务.描述该算法的最佳资源是Deadline scheduling in the Linux kernel.

Update 2:自Linux 4.13以来,SCHED_DEADLINE已经用Greedy Reclamation of Unused Bandwidth (GRUB) algorithm取代了CBS.

Linux相关问答推荐

Flutter 构建错误:';DART:JS_interop';在此平台上不可用

"‘operator<<’匹配失败(可能是因为我的C++/GCC版本问题)"

如何让xargs对 bash 脚本中find命令找到的所有文件执行?

如何从 2 个文件中获取内容并使用 shell 脚本将该内容附加到新文件中

使用 bash 在包含模式的 java 文件中查找行,然后替换该行的另一部分

如何使用 sed debug调试正则表达式?

如何在 shell 脚本中动态生成新的变量名?

适用于 Linux 和 Mac 的 HTTP 调试代理

如何让 PHP、Symlinks 和 __FILE__ 很好地协同工作?

用于数据库备份的 Linux shell 脚本

何时使用管道与何时使用共享内存

从命令行导入 PostgreSQL CSV

将 jiffies 转换为毫秒

bash中变量名后的2个逗号是什么意思?

ldconfig 错误:使用 Linux 加载程序时不是符号链接

如何自动化 HTML 到 PDF 的转换?

如何限制堆大小?

在linux中将制表符分隔的文件转换为csv的最快方法

libaio.so.1:无法打开共享对象文件

在tmux中绑定Ctrl+Tab和Ctrl+Shift+Tab