Proces ellende

January 9, 2018 | Author: Anonymous | Category: Engineering & Technology, Elektrotechniek, Microelectronics
Share Embed Donate


Short Description

Download Proces ellende...

Description

CIMSOLUTIONS Automation for Industry & Business

SIG Embedded “Proces Ellende”

André Vink CIMSOLUTIONS B.V.

CDP real-time embedded

28 september 2005

CIMSOLUTIONS Automation for Industry & Business

STARVATION

CIMSOLUTIONS B.V.

Wat is starvation? 

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

• • •

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



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

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

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

CIMSOLUTIONS B.V.

CIMSOLUTIONS Automation for Industry & Business

DEADLOCK

CIMSOLUTIONS B.V.

Wat is deadlock? 

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.

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

• •

CIMSOLUTIONS B.V.

Deadlock: Situatie 

Wanneer de drie ingrediënten aanwezig zijn, zal een deadlock optreden in deze (of een vergelijkbare) situatie:

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

CIMSOLUTIONS B.V.

CIMSOLUTIONS Automation for Industry & Business

PRIORITY INVERSION

CIMSOLUTIONS B.V.

Wat is priority inversion? 

Priority inversion is het verschijnsel dat een taak met hogere prioriteit geblokkeerd wordt, door een taak met een lagere prioriteit



Dit kan gebeuren wanneer de lagere prioriteit taak een gedeelde resource gebruikt die de hogere prioriteit taak nodig heeft

CIMSOLUTIONS B.V.

Een voorbeeld met twee taken Task H moet wachten op gedeelde resource Task L is klaar met gedeelde resource en Task H kan eindelijk verder Task H onderbreekt Task L

Task L “lockt” gedeelde resource

CIMSOLUTIONS B.V.

Een voorbeeld met drie taken Task H onderbreekt Task L

task H moet wachten op gedeelde resource

task L is klaar met gedeelde resource en task H kan verder

Taks M onderbreekt Task L Task L “lockt” gedeelde resource

CIMSOLUTIONS B.V.

Oplossing 1: priority ceilings 

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

CIMSOLUTIONS B.V.

Een voorbeeld met priority ceilings Task H kan Task L nu niet onderbreken

task L is klaar met gedeelde resource en task H kan verder

Taks M kan Task L nu niet onderbreken Task L “lockt” gedeelde resource en prioriteit wordt verhoogd tot boven prioriteit van Task H CIMSOLUTIONS B.V.

Prioriteit Task L zakt terug naar oorspronkelijke waarde

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

CIMSOLUTIONS B.V.

Een voorbeeld met priority inheritance Task H moet wachten op gedeelde resource Task H kan Task L nu Hierdoor erft Task L de prioriteit van Task H wel onderbreken Task L is klaar met gedeelde resource en Task H kan verder

Task M kan Task L nu niet onderbreken Task L “lockt” gedeelde resource en prioriteit wordt verhoogd tot boven prioriteit van Task H CIMSOLUTIONS B.V.

Prioriteit Task L zakt terug naar oorspronkelijke waarde

Oplossing 3: voorkom priority inversion 

Voorkomen is vaak makkelijker dan genezen



Voorkom dat taken met verschillende prioriteiten resources delen



Manage gedeelde resources

CIMSOLUTIONS B.V.

CIMSOLUTIONS Automation for Industry & Business

SIG Embedded Einde “Proces Ellende”

André Vink CIMSOLUTIONS B.V.

CDP real-time embedded

28 september 2005

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF