![Page 1: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/1.jpg)
CIMSOLUTIONS B.V.
CIMSOLUTIONS Automation for Industry & Business
SIG Embedded
“Proces Ellende”
André Vink CDP real-time embedded 28 september 2005
![Page 2: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/2.jpg)
CIMSOLUTIONS B.V.
CIMSOLUTIONS Automation for Industry & Business
STARVATION
![Page 3: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/3.jpg)
CIMSOLUTIONS B.V.
Starvation is het verschijnsel dat een thread of proces geen tijd krijgt om uitgevoerd te worden
Mogelijke oorzaken:• Scheduling algoritme is slecht (geconfigureerd)• Geen toegang tot bepaalde resources• Denial Of Service aanval
Wat is starvation?
![Page 4: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/4.jpg)
CIMSOLUTIONS B.V.
Starvation: scheduling
Het algoritme van een scheduler kan zwakke punten bevatten.
Waarschijnlijker is het dat prioriteiten of de configuratie verkeerd zijn ingesteld
• Vuistregel: geef taken die veel processortijd nodig hebben een lage prioriteit en taken die weinig tijd nodig hebben een hoge
![Page 5: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/5.jpg)
CIMSOLUTIONS B.V.
Starvation: scheduling
Optie 1: Taak met veel processortijd heeft hoge prioriteit
Optie 2: Taak met weinig processortijd heeft hoge prioriteit
Taak met weinig processortijd
Taak met veel processortijd
![Page 6: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/6.jpg)
CIMSOLUTIONS B.V.
Starvation: toegang tot resources
Toegang tot een resource kan geblokkeerd worden wanneer de resource veel/vaak gebruikt wordt door processen met hogere prioriteit
Geen universele oplossing: de ontwerper of programmeur moet een dergelijke situatie proberen te voorkomen
![Page 7: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/7.jpg)
CIMSOLUTIONS B.V.
Starvation: Denial Of Service
Denial Of Service: de processor is zo druk bezig met het afhandelen van berichten of interrupts dat andere taken niet aan bod komen.
Voorbeeld 1: aanval op een webserver met honderden connecties per minuut
Voorbeeld 2: een haperende digitale input zorgt voor een continue stroom interrupts op een systeem
Oplossing: inbouwen van een detectie met bijbehorende maatregelen
![Page 8: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/8.jpg)
CIMSOLUTIONS B.V.
CIMSOLUTIONS Automation for Industry & Business
DEADLOCK
![Page 9: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/9.jpg)
CIMSOLUTIONS B.V.
Deadlock is een status waarin de processen van een systeem het niet eens kunnen worden over hoe ze verder moeten, waardoor (een gedeelte van) het systeem stil valt.
Meestal gaat het om het bezit van resources.
Wat is deadlock?
![Page 10: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/10.jpg)
CIMSOLUTIONS B.V.
Deadlock: ingrediënten
Er zijn drie ingrediënten nodig voor een deadlock situatie:
• Mutual exclusion: op elk moment kan er maar één proces gebruik maken van een bepaalde resource
• Vasthouden en wachten: een proces kan/zal resources vasthouden tijdens het wachten op andere resources
• Geen preemption: een resource zal alleen vrijgegeven worden als een proces dat vrijwillig doet. Het vrijgeven forceren is niet mogelijk
![Page 11: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/11.jpg)
CIMSOLUTIONS B.V.
Deadlock: Situatie
Wanneer de drie ingrediënten aanwezig zijn, zal een deadlock optreden in deze (of een vergelijkbare) situatie:
![Page 12: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/12.jpg)
CIMSOLUTIONS B.V.
Deadlock: voorkomen Deadlock kan voorkomen worden door:
• Minstens één van de ingrediënten te verwijderen• Zorgen dat de geschetste situatie nooit kan voorkomen• Nooit toegang tot een resource verlenen als dit tot een deadlock kan leiden• Detectie: regelmatig op deadlocks controleren en gepaste maatregelen nemen indien gevonden
Het succes van de laatste drie opties hangt af van of er aan alle situaties is gedacht
![Page 13: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/13.jpg)
CIMSOLUTIONS B.V.
CIMSOLUTIONS Automation for Industry & Business
PRIORITY INVERSION
![Page 14: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/14.jpg)
CIMSOLUTIONS B.V.
Priority inversion is het verschijnsel dat een taak met hogere prioriteit geblokkeerd wordt, door een taak met een lagere prioriteit
Dit kan gebeuren wanneer delagere prioriteit taak een gedeelderesource gebruikt die de hogereprioriteit taak nodig heeft
Wat is priority inversion?
![Page 15: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/15.jpg)
CIMSOLUTIONS B.V.
Een voorbeeld met twee taken
Task L “lockt” gedeelde resource
Task H moet wachten op gedeelde resource
Task L is klaar met gedeelde resource en Task H kan eindelijk verderTask H onderbreekt Task L
![Page 16: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/16.jpg)
CIMSOLUTIONS B.V.
Een voorbeeld met drie taken
Task L “lockt” gedeelde resource
Task H onderbreekt
Task L
task H moet wachten op gedeelde resource
Taks M onderbreekt Task L
task L is klaar met gedeelde resource en task H kan verder
![Page 17: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/17.jpg)
CIMSOLUTIONS B.V.
elke gedeelde resource krijgt een “priority ceiling”
als een taak een gedeelde resource gebruikt, dan wordt de prioriteit van de taak tijdelijk verhoogd tot de priority ceiling van de resource
als de taak klaar is met de gedeelde resource, dan krijgt de taak weer zijn oorspronkelijke prioriteit terug
priority ceilings moeten hoger zijn dan de hoogste prioriteit van de taken die de resource kunnen gebruiken
lost alleen “unbounded” priority inversion probleem op
“bounded” priority inversion probleem blijft bestaan
Oplossing 1: priority ceilings
![Page 18: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/18.jpg)
CIMSOLUTIONS B.V.
Een voorbeeld met priority ceilings
Task L “lockt” gedeelde resource en prioriteit wordt verhoogd tot boven prioriteit van Task H
Task H kan Task L nu niet onderbreken
Taks M kan Task L nu niet onderbreken
task L is klaar met gedeelde resource en task H kan verder
Prioriteit Task L zakt terug naar oorspronkelijke
waarde
![Page 19: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/19.jpg)
CIMSOLUTIONS B.V.
Oplossing 2: priority inheritance
Is eigenlijk een variant op priority ceilings
Lage prioriteit taak gebruikt gedeelde resource
Als hogere prioriteit taak dezelfde gedeelde resource wil gebruiken, dan “erft” de lage prioriteit taak de prioriteit van de hogere prioriteit taak
Lost alleen “unbounded” priority inversion probleem op
“Bounded” priority inversion probleem blijft bestaan
![Page 20: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/20.jpg)
CIMSOLUTIONS B.V.
Een voorbeeld met priority inheritance
Task L “lockt” gedeelde resource en prioriteit wordt verhoogd tot boven prioriteit van Task H
Task H kan Task L nu wel onderbreken
Task M kan Task L nu niet onderbreken
Task L is klaar met gedeelde resource en Task H kan verder
Prioriteit Task L zakt terug naar oorspronkelijke
waarde
Task H moet wachten op gedeelde resource Hierdoor erft Task L de prioriteit van Task H
![Page 21: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/21.jpg)
CIMSOLUTIONS B.V.
Oplossing 3: voorkom priority inversion
Voorkomen is vaak makkelijker dan genezen
Voorkom dat taken met verschillende prioriteiten resources delen
Manage gedeelde resources
![Page 22: CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005](https://reader035.vdocument.in/reader035/viewer/2022062703/5551a0ed4979591f3c8b59d1/html5/thumbnails/22.jpg)
CIMSOLUTIONS B.V.
CIMSOLUTIONS Automation for Industry & Business
SIG Embedded
Einde
“Proces Ellende”
André Vink CDP real-time embedded 28 september 2005