我试图在Linux中实现一个实时算法。
我研究过linux实时策略: sched_rr,sched_fifo。
比我更深入,我找到了一个完全公平的计划。我推断,如果我使用CFS,就会失去预期,因为CFS只关心公平。
如果我想严格地实现实时调度算法,我不应该使用CFS。我说得对吗?如果是,我应该使用什么Linux Scheduler?
发布于 2018-07-11 18:44:34
CFS在不同并发工作负载之间公平地共享带宽,从而使交互式工作负载吸引人的低延迟。实时意味着满足最后期限,这听起来像是,但与低延迟不一样.由于CFS不提供截止日期,因此不适合实时使用.我建议您查看赛德_截止日期调度程序。它是一个相当好的通用实时调度器,用于定期或零星的有截止日期的任务。
SCHED_DEADLINE任务在所有任务中具有最高优先级,因此抢先所有其他任务.SCHED_RR和SCHED_FIFO是根据优先级1到99来安排的,在这里,更多的人会抢占较低的优先级.SCHED_OTHER是优先级0,这比以前的优先级低,因此这个CFS调度程序只获得实时任务遗留的CPU。实时调度程序最多可以分配95%的CPU带宽,使SCHED_OTHER任务占用5%的带宽(除非通过sysctl进行更改)。还有SCHED_BATCH和SCHED_IDLE,它们告诉调度程序与SCHED_OTHER相比存在不同的缺点。Linux手册页sched(7)给出了更多细节。
https://unix.stackexchange.com/questions/454739
复制相似问题