簡體   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