CIMSOLUTIONS - PowerPoint PPT Presentation

1 / 22
About This Presentation
Title:

CIMSOLUTIONS

Description:

Title: Korte introductie real-time embedded Subject: real-time embedded Author: Henk van Dijk Last modified by: Preferred Customer Created Date: 4/14/2003 8:36:51 AM – PowerPoint PPT presentation

Number of Views:54
Avg rating:3.0/5.0
Slides: 23
Provided by: Henk88
Category:

less

Transcript and Presenter's Notes

Title: CIMSOLUTIONS


1
CIMSOLUTIONS
Automation for Industry Business
SIG Embedded Proces Ellende
André Vink CDP real-time embedded 28
september 2005
2
CIMSOLUTIONS
Automation for Industry Business
STARVATION
3
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

4
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

5
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
6
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

7
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

8
CIMSOLUTIONS
Automation for Industry Business
DEADLOCK
9
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.

10
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

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

12
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

13
CIMSOLUTIONS
Automation for Industry Business
PRIORITY INVERSION
14
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 delagere prioriteit
    taak een gedeelderesource gebruikt die de
    hogereprioriteit taak nodig heeft

15
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
16
Een voorbeeld met drie taken
task H moet wachten op gedeelde resource
Task H onderbreekt Task L
task L is klaar met gedeelde resource en task H
kan verder
Taks M onderbreekt Task L
Task L lockt gedeelde resource
17
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

18
Een voorbeeld met priority ceilings
task L is klaar met gedeelde resource en task H
kan verder
Task H kan Task L nu niet onderbreken
Prioriteit Task L zakt terug naar oorspronkelijke
waarde
Taks M kan Task L nu niet onderbreken
Task L lockt gedeelde resource en prioriteit
wordt verhoogd tot boven prioriteit van Task H
19
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

20
Een voorbeeld met priority inheritance
Task H moet wachten op gedeelde resource Hierdoor
erft Task L de prioriteit van Task H
Task H kan Task L nu wel onderbreken
Task L is klaar met gedeelde resource en Task H
kan verder
Prioriteit Task L zakt terug naar oorspronkelijke
waarde
Task M kan Task L nu niet onderbreken
Task L lockt gedeelde resource en prioriteit
wordt verhoogd tot boven prioriteit van Task H
21
Oplossing 3 voorkom priority inversion
  • Voorkomen is vaak makkelijker dan genezen
  • Voorkom dat taken met verschillende prioriteiten
    resources delen
  • Manage gedeelde resources

22
CIMSOLUTIONS
Automation for Industry Business
SIG Embedded Einde Proces Ellende
André Vink CDP real-time embedded 28
september 2005
Write a Comment
User Comments (0)
About PowerShow.com