繁体   English   中英

检测截止日期线程抢占

[英]Detect deadline thread preemption

我正在使用SCHED_DEADLINE调度策略来实现一个线程,这是我的高优先级线程,而另一个正在使用SCHED_FIFO策略来实现,这是我的低优先级线程。 例如,我定义了我的截止日期线程如下:

attr.sched_runtime = 0.5 * 1000000;   // --> 0.5 ms
attr.sched_deadline = 0.6 * 1000000;  // --> 0.6 ms
attr.sched_period = 1 * 1000000;      // --> 1 ms

在正常情况下,我的高优先级线程处理的时间不应超过0.5毫秒,而在此持续时间内,它应该有时间完成任务。

如果任务的持续时间超过0.5毫秒,则OS调度程序将抢占我的高优先级线程以给我的低优先级时间。 这是我之前测试过的行为。

我的问题是:如何警告我的高优先级线程它已被系统抢占?

当前,SCHED_DEADLINE API不提供向任务发信号通知它已被限制所需的功能。 我们了解到它可能是一个有用的功能,因此我们将考虑在不久的将来将其包含在内。

目前唯一的选择是检查时间以了解是否发生了节流。

更新 :Linux内核4.16将在SCHED_DEADLINE上添加对“运行时溢出”信号的支持。 这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM