De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Concurrency en Deadlock ICT Infrastructuren David N. Jansen Stallings hoofdstukken 5 en 6.

Verwante presentaties


Presentatie over: "Concurrency en Deadlock ICT Infrastructuren David N. Jansen Stallings hoofdstukken 5 en 6."— Transcript van de presentatie:

1 Concurrency en Deadlock ICT Infrastructuren David N. Jansen Stallings hoofdstukken 5 en 6

2 Concurrency Meerdere processen worden (bijna) te gelijker tijd uitgevoerd voorbeelden meerdere programma’s één programma met threads binnen het besturingssysteem

3 Interleaving en interferentie sommige proces-delen zijn “kritiek” meerdere processen tegelijk in kritieke secties  interferentie is mogelijk interferentie = ongewenst gedrag als gevolg van (een bepaalde) interleaving voorbeeld i := 2 en daarna parallel (i := i + 1) || (i := 2 * i)

4 Mutual Exclusion de standaardoplossing idee: een bepaalde bron kan niet door iedereen tegelijk gebruikt worden iemand moet ervoor zorgen dat beperkingen in acht genomen worden wie?

5 Taken van besturingssysteem processen bewaken bronnen verdelen en beschermen (processor, geheugen, in-/uitvoer, bestanden) doel: geen interferentie

6 Eisen aan mutex-voorziening slechts één proces tegelijk in kritieke sectie als een proces in de niet-kritieke sectie stopt, heeft dat geen gevolg voor de andere een proces dat toegang vraagt krijgt die als geen proces toegang heeft, krijgt de aanvrager onmiddellijk toegang geen aannames over snelheid van processen processen moeten beloven slechts eindig lang in kritieke sectie te blijven (bron: Stallings, p. 211)

7 Mutex in de praktijk Processor / hardware Semaforen Monitoren

8 Mutex: processor / hardware interrupts tijdelijk verbieden werkt alleen voor korte kritieke secties werkt niet bij multicore/multiprocessor-systemen speciale instructies, b.v. in SPARC ldstub: laad een byte en zet het op 255 swap: verwissel geheugenwoord met register deze instructies kunnen niet onderbroken worden, niet eens in multiprocessor-systemen eigenlijk te primitief, nog geen volwaardig mutex

9 Mutex: semaforen speciale variabele, altijd ≥ 0 P(var)probeer de variabele te verlagen (en wacht zo nodig tot dat kan) V(var)verhoog de variabele Stallings: P = semWait, V = semSignal, variabele kan wel < 0 worden, maar processen moeten dan wachten

10 Mutex: monitoren speciale subroutine met exclusieve rechten wie kritieke bronnen wil gebruiken moet dat via een monitor doen monitor zorgt voor mutex voordeel over semafoor: gebruiker van kritieke bron vergeet nooit V(var)

11 Bijwerkingen Deadlock: dodelijke omarming Livelock:systeem rommelt, maar doet niets productiefs Starvation: één proces wacht oneindig lang

12 Vijf filosofen klassiek probleem om deadlock te illustreren 5 filosofen denken en eten eten met twee vorken 5 vorken

13 Intermezzo: Uppaal Uppaal = een modelchecker modellen van gedrag tekenen, simuleren en eigenschappen onderzoeken tool voor de huiswerkopgave 2

14 Meer over Uppaal... voorbeeldmodel, aansluiten bij PA automaten en hun samenhang met PA-termen, in voorbeelden definitie van automaat uitbreidingen van Uppaal alleen synchronisatie-acties (“channels”) hebben een naam + ! of ? klokken om de tijd te meten, variabelen voorbeeldmodel van filosoof en vork

15 Demo van Uppaal... de modellen van filosoof en vork in Uppaal laten zien dat er deadlock kan ontstaan

16 Meer over Uppaal-formules formules om eisen te beschrijven: A[]  in elke toestand geldt  A<>  ooit zal  gelden (wat je ook doet)  -->  telkens als je  bereikt, zul je daarna ook  bereiken mogelijkheden voor  en  : namen van toestanden formules over variabelen of klokken deadlock operatoren als in C

17 Deadlock in detail voorwaarden voor deadlock mutual exclusion bronnen vasthouden en wachten geen preëmptie (d.w.z. OS kan niet dwingen tot tijdelijk afstaan) cirkel van wachtende processen

18 Cirkel van wachtende processen graaf: pijlen tussen processen en bronnen F0 F1 F2F3 F4 Vork 0 Vork 1 Vork 2 Vork 3 Vork 4 F3 heeft vork 3 F4 wil vork 3

19 Maatregelen tegen Deadlock Preventie: verander één van de voorwaarden Avoidance: beïnvloed dynamiek van processen Detectie: laat de zaak op haar beloop gaan en grijp achteraf in

20 Preventie van Deadlocks één van de vier voorwaarden veranderen geen mutual exclusion aanbieden geen bronnen sparen, maar alles tegelijk aanvragen preëmptie toestaan... of... bronnen in een vaste volgorde aanvragen (voor elk proces dezelfde)

21 Vermijden van Deadlocks processen moeten van te voren aangeven hoeveel bronnen ze maximaal nodig hebben het OS laat een proces alleen toe als er voldoende bronnen over zijn testen bij processtart of: testen bij elke aanvraag van extra bronnen Bankiers-algoritme: kan ik dit proces nog krediet verlenen zonder kans te lopen failliet te gaan? (nalezen in Stallings!)

22 Detecteren van deadlocks OS doet niets om deadlocks te vermijden OS test regelmatig of deadlock is ontstaan zo ja: processen afbreken

23 Aanbeveling Lees het nog eens na Kijk alvast eens naar Uppaal Gratis downloaden en installeren Windows, Linux of Mac


Download ppt "Concurrency en Deadlock ICT Infrastructuren David N. Jansen Stallings hoofdstukken 5 en 6."

Verwante presentaties


Ads door Google