1 / 23

Concurrency en Deadlock

Concurrency en Deadlock. ICT Infrastructuren David N. Jansen Stallings hoofdstukken 5 en 6. Concurrency. Meerdere processen worden (bijna) te gelijker tijd uitgevoerd voorbeelden meerdere programma’s één programma met threads binnen het besturingssysteem. Interleaving en interferentie.

xander
Download Presentation

Concurrency en Deadlock

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Concurrencyen 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 nietdoor 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 belovenslechts 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 gebruikenmoet 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, simulerenen eigenschappen onderzoeken • tool voor de huiswerkopgave 2 • http://www.uppaal.com/

  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 Vork 0 Vork 4 F4 F1 F4 wil vork 3 F3 heeft vork 3 Vork 3 Vork 1 F3 F2 Vork 2

  19. Maatregelen tegen Deadlock • Preventie: verander één van de voorwaarden • Avoidance:beïnvloed dynamiek van processen • Detectie: laat de zaak op haar beloop gaanen 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 • http://www.uppaal.com/

More Related