Bird
0
0

A developer reports that a high priority task is starved even though priority inheritance mutexes are used. What is a likely cause?

medium📝 Debug Q7 of 15
FreeRTOS - Task Scheduling
A developer reports that a high priority task is starved even though priority inheritance mutexes are used. What is a likely cause?
AThe high priority task is blocked on a queue
BA medium priority task is continuously running and preempting the low priority task holding the mutex
CThe mutex was created using xSemaphoreCreateBinary()
DThe low priority task has higher priority than the high priority task
Step-by-Step Solution
Solution:
  1. Step 1: Understand starvation despite priority inheritance

    Priority inheritance only boosts low priority task holding mutex, but medium priority tasks can still preempt it.
  2. Step 2: Match cause with options

    A medium priority task is continuously running and preempting the low priority task holding the mutex correctly identifies medium priority task preempting low priority task causing starvation of high priority task.
  3. Final Answer:

    A medium priority task is continuously running and preempting the low priority task holding the mutex -> Option B
  4. Quick Check:

    Starvation cause = C [OK]
Quick Trick: Medium priority tasks can starve high priority if low task preempted [OK]
Common Mistakes:
  • Assuming binary semaphore supports priority inheritance
  • Thinking high priority task is blocked on queue always
  • Confusing task priorities

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More FreeRTOS Quizzes