Wat is Prioriteitsinversie (priority inversion)?

Verschijnsel waarbij een taak met hoge prioriteit wacht op een middel dat een taak met lage prioriteit vasthoudt, terwijl een taak met middelhoge prioriteit de lage taak onderbreekt en blijft doorlopen, zodat de hoge taak lang moet wachten.

Japanse benaming: 優先度逆転

“Prioriteitsinversie (priority inversion)” komt voor in 2 oefenvragen uit 1 onderwerpen, bijv. Embedded systemen en firmware.

Vakgebied: Embedded systemen en firmware

Nu oefenen: vragen over Prioriteitsinversie (priority inversion)

Welke uitspraak over prioriteitsinversie bij een RTOS is juist?

  1. ATerwijl een taak met hoge prioriteit wacht op een middel van een taak met lage prioriteit, onderbreekt een taak met middelmatige prioriteit de lage taak en blijft draaien, zodat de hoge taak lang moet wachten
  2. BEen fout waarbij de numerieke waarde van taakprioriteit tegengesteld aan de instelling wordt geïnterpreteerd
  3. CEen regel dat een taak met hoge prioriteit altijd na een taak met lage prioriteit wordt uitgevoerd
Antwoord en toelichting tonen

Antwoord: A. Terwijl een taak met hoge prioriteit wacht op een middel van een taak met lage prioriteit, onderbreekt een taak met middelmatige prioriteit de lage taak en blijft draaien, zodat de hoge taak lang moet wachten

Wanneer een taak met hoge prioriteit wacht op een mutex die een taak met lage prioriteit bezit, wacht de hoge taak tot de lage taak die loslaat. Als dan een taak met middelmatige prioriteit gaat draaien die niets met het middel te maken heeft, wordt de lage taak onderbroken en kan hij het middel niet loslaten, zodat de hoge taak uiteindelijk op de middelmatige taak moet wachten. Bij de Mars Pathfinder-ruimtesonde in 1997 veroorzaakte dit herhaalde resets van het systeem.

Welke gedachte ligt achter "prioriteitsovererving" (priority inheritance), dat wordt gebruikt om prioriteitsinversie te voorkomen?

  1. ADe prioriteit van de hoge taak wordt verlaagd tot die van de lage taak
  2. BAlle taken krijgen dezelfde prioriteit
  3. CDe prioriteit van de lage taak die het middel bezit, wordt tijdelijk verhoogd tot die van de hoge taak die op het middel wacht
Antwoord en toelichting tonen

Antwoord: C. De prioriteit van de lage taak die het middel bezit, wordt tijdelijk verhoogd tot die van de hoge taak die op het middel wacht

Bij prioriteitsovererving wordt, wanneer een taak met hoge prioriteit begint te wachten op een mutex van een taak met lage prioriteit, de prioriteit van de lage taak tijdelijk gelijk gemaakt aan die van de hoge taak. De lage taak kan dan verder zonder door een middelmatige taak te worden onderbroken en keert terug naar zijn oorspronkelijke prioriteit zodra het middel is vrijgegeven. De wachttijd van de hoge taak is dan beperkt tot de korte tijd dat de lage taak het middel gebruikt. De mutex van veel RTOS'en heeft deze functie.

Vragen met “Prioriteitsinversie (priority inversion)” (2)

  1. Welke uitspraak over prioriteitsinversie bij een RTOS is juist?
  2. Welke gedachte ligt achter "prioriteitsovererving" (priority inheritance), dat wordt gebruikt om prioriteitsinversie te voorkomen?

Verwante termen

RTOS (real-time besturingssysteem) Mutex Prioriteitsovererving (priority inheritance) Baudrate Bootloader Brown-outdetectie Contactstuiteren (switch bounce) Debounce Duty cycle GPIO

Naar de woordenlijst