我正在使用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 毫秒,操作系统调度程序将抢占我的高优先级线程,为我的低优先级线程腾出时间。这是我之前测试过的行为。
我的问题是:如何警告我的高优先级线程已被系统抢占?