IT-lexicon › Programmeren › Prioriteitsinversie

Prioriteitsinversie

Programmeren Svenska → Bijgewerkt: 2026-11-02

Een taak met hoge prioriteit zit feitelijk te wachten op een taak met lage prioriteit, omdat een taak met middelmatige prioriteit in de weg staat.

Er zijn drie taken nodig. Laag houdt een mutex vast. Hoog wil dezelfde mutex en blokkeert. Midden, die niets met de mutex te maken heeft, wordt gereed en neemt de cpu van Laag over — zodat Laag het slot nooit kan vrijgeven. Hoog wacht nu op Midden, terwijl de scheduler precies doet wat hem is opgedragen.

Het beroemde geval deed zich in 1997 op Mars voor, toen de Pathfinder-lander steeds door zijn watchdog werd gereset. JPL reproduceerde de bug op een replica op aarde en schakelde via uplink priority inheritance in VxWorks in: wie het slot vasthoudt, erft tijdelijk de hoogste prioriteit van iedereen die erop wacht. Sha, Rajkumar en Lehoczky hadden de oplossing in 1990 al gepubliceerd. Het alternatief, priority ceiling, wordt onder meer in Ada en AUTOSAR gebruikt.

← Terug naar het lexicon