Deadlocks dopsys 1 onsdag den 8. december 2010

Relaterede dokumenter
Processer og koordinering. dopsys 1

Koordinering. dopsys

Implementation af Koordinering. dopsys 1

Resource types R 1 1, R 2 2,..., R m CPU cycles, memory space, files, I/O devices Each resource type R i has W i instances.

1 Operativsystemer oversigt

Schedulering. dopsys 1

Sider og segmenter. dopsys 1

Schedulering. dopsys 1

Sider og segmenter. dopsys 1

Netværksalgoritmer 1

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Processer og koordinering

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Grafer og graf-gennemløb

Lageradministration. dopsys

Grafer og graf-gennemløb

Principper for Samtidighed og Styresystemer

Dynamisk programmering

Agenda. Muligheder for anvendelse. Komponenter. Features. Restore muligheder. DR og TSM integration. Repository. Demo. Spørgsmål

Danmarks Tekniske Universitet

Sortering. Eksempel: De n tal i sorteret orden

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Processer og tråde. dopsys 1

Sortering af information er en fundamental og central opgave.

Sortering. Eksempel: De n tal i sorteret orden

Sortering af information er en fundamental og central opgave.

Schedulering. dopsys

1 Opsumering fra tidligere. 2 Dagsorden 3 BIMS. 4 Programtilstande. Statements/kommandoer (Stm) i bims. 3.1 Abstrakt syntaks for bims

UniFeeder TM. Betjeningsvejledning

Karaktergivende opgave i Styresystemer og multiprogrammering (reeksamen) 13. august 2007

Filsystemer. dopsys. fredag den 26. november 2010

Bits DM534. Rolf Fagerberg, 2012

Danmarks Tekniske Universitet

Dynamisk programmering

Dynamisk programmering

Lageradministration Paging og segmentering

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Common Language Runtime. Multithreading

Filsystemer: Anvendelse. dopsys

Lageret i maskinarkitekturen. Beregningsenhed, lagre (registre, RAM, disk), ydre enheder

Lageret er hierarkisk fokus nu: disk

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Principper for Samtidighed og Styresystemer

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Danmarks Tekniske Universitet

User Manual for LTC IGNOU

Scheduling. Niels Olof Bouvin. Institut for Datalogi Aarhus Universitet

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Operativsystemer. Tobias Brixen Q2-2012

Danmarks Tekniske Universitet

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)

Regulære udtryk og endelige automater

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen (bemærk at log n betegner totals logaritmen): n 2 (log n) 2 2.

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 2 n (log n) 2. 3 n /n 2 n + (log n) 4

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n 7 n 1 7 7/n. 7nlogn. 7n 7nlogn n7

Sommeren 2001, opgave 1

Operativsystemer - dopsys

Styresystemer og tjenester

dpersp Uge 40 - Øvelser Internetalgoritmer

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 4 n n 3n n 2 /logn 5 n n (logn) 3n n 2 /logn 4 n n 5 n

Noter til kursusgang 8, IMAT og IMATØ

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Analyse af algoritmer

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 5. 5n 2 5 logn. 2 logn

Rolf Fagerberg. Forår 2013

Planen for idag. Synkroniseringsmekanismer. Krav til løsning. Kritiske regioner. Bagerens algoritme. Kritisk region via delt lager.

Sammenhængskomponenter i grafer

Brug sømbrættet til at lave sjove figurer. Lav fx: Få de andre til at gætte, hvad du har lavet. Use the nail board to make funny shapes.

Deling af ÅU-elever Sidst revideret /version 1.0/UNI C/Steen Eske

Input/Output: Disk & Clock. dopsys

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 7 n 1/ log n. (log n) 4

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

Rolf Fagerberg. Forår 2012

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 2 2 n 1/n (logn) n. n 2

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 23n log n. 4 n (log n) log n

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

.. if L(u) + w(u, v) < L(v) then.. begin... L(v) := L(u) + w(u, v)... F (v) := u.. end. med længde L(z)}

SW6 SAI. Services 1: (Fil) service admin torsdag 7/4 05

Mundt Balloons MOM CAME Appendices MBA 301

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Synkronisering af sekventielle processer

Introduktion til datastrukturer

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU

Orienterede grafer. Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer.

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

A Profile for Safety Critical Java

Transkript:

Deadlocks dopsys 1

En deadlock! When two trains approach each other at a crossing, both shall come to a full stop and neither shall start up again until the other has gone. Lov - the Kansas Legislature dopsys 2

Resurse-administration..processer anvender resurser administreret af OS: Resurser: Lager Sekundært Lager (disk) Ydre enheder Semaphorer Filer Styring af adgang: Request (proces) Acquisition (OS) Release (proces).. kan der opstå situationer hvor et antal processer er gået i stå på grund af styringen af adgangen, og ikke fordi der er for få resurser som sådan? dopsys 3

Ja, det kan ske! - Eksempel Semaphorer: Filer: (med locks) semaphore s1,s2; p1:... p2:... down(s1); down(s2); down(s2); down(s1); use_resources; use_resources; up(s2); up(s1); up(s1); up(s2);... p1:... p2:... open(f1,w); open(f2,w); open(f2,w); open(f1,w);........ gensidig venten blandt blokerede processer. dopsys 4

Et andet eksempel Producer-consumer systemet (forkert version!): semaphore e = n, f = 0, b = 1; cobegin Producer: while (1) { Produce_next_record ( ); down(e); lock(b); lock(b); down(e); Add_to_buf ( ); up(f); unlock(b); up(f); unlock(b); } // Consumer: while (1) { down(f); lock(b); lock(b); down(f); Take_from_buf ( ); unlock(b); up(e); up(e); unlock(b); Process_record ( ); } coend.. om systemet går i deadlock afhænger af schedulering. dopsys 5

Et andet eksempel Producer-consumer systemet (forkert version!): semaphore e = n, f = 0, b = 1; cobegin Producer: while (1) { Produce_next_record ( ); down(e); lock(b); lock(b); down(e); Add_to_buf ( ); up(f); unlock(b); up(f); unlock(b); } // Consumer: while (1) { down(f); lock(b); lock(b); down(f); Take_from_buf ( ); unlock(b); up(e); up(e); unlock(b); Process_record ( ); } coend.. om systemet går i deadlock afhænger af schedulering. dopsys 5

Et andet eksempel Producer-consumer systemet (forkert version!): semaphore e = n, f = 0, b = 1; cobegin Producer: while (1) { Produce_next_record ( ); down(e); lock(b); lock(b); down(e); Add_to_buf ( ); up(f); unlock(b); up(f); unlock(b); } // Consumer: while (1) { down(f); lock(b); lock(b); down(f); Take_from_buf ( ); unlock(b); up(e); up(e); unlock(b); Process_record ( ); } coend.. om systemet går i deadlock afhænger af schedulering. dopsys 5

Blokering.. venten på resurse via egentlig blokering eller busy waiting: down(s) { Inhibit_Interrupt; s = s - 1; if (s < 0) { Block(self, Ls); Enable_Interrupt; Scheduler(); } else Enable_Interrupt; } mutex_lock(sb): do TS(R,sb) while (!R).. processen opfattes i begge tilfælde som blokeret. dopsys 6

Coffman-betingelserne (1971) Deadlock kun mulig hvis der er: 1. Mutual exclusion: en resurse kan ikke anvendes af mere end een proces ad gangen 2. Hold and wait: en proces der allerede har en resurse kan bede om een til 3. No preemption: ingen resurser kan tvinges væk fra en proces, frigivelse af resurser sker kun på processens eget initiativ 4. Circular wait: to eller flere processer kan danne en cykel hvor hver proces venter på en resurse som den næste proces har dopsys 7

Coffman-betingelserne (1971) Deadlock kun mulig hvis der er: 1. Mutual exclusion: en resurse kan ikke anvendes af mere end een proces ad gangen 2. Hold and wait: en proces der allerede har en resurse kan bede om een til 3. No preemption: ingen resurser kan tvinges væk fra en proces, frigivelse af resurser sker kun på processens eget initiativ 4. Circular wait: to eller flere processer kan danne en cykel hvor hver proces venter på en resurse som den næste proces har dopsys 7

Coffman-betingelserne (1971) Deadlock kun mulig hvis der er: 1. Mutual exclusion: en resurse kan ikke anvendes af mere end een proces ad gangen 2. Hold and wait: en proces der allerede har en resurse kan bede om een til 3. No preemption: ingen resurser kan tvinges væk fra en proces, frigivelse af resurser sker kun på processens eget initiativ 4. Circular wait: to eller flere processer kan danne en cykel hvor hver proces venter på en resurse som den næste proces har dopsys 7

Coffman-betingelserne (1971) Deadlock kun mulig hvis der er: 1. Mutual exclusion: en resurse kan ikke anvendes af mere end een proces ad gangen 2. Hold and wait: en proces der allerede har en resurse kan bede om een til 3. No preemption: ingen resurser kan tvinges væk fra en proces, frigivelse af resurser sker kun på processens eget initiativ 4. Circular wait: to eller flere processer kan danne en cykel hvor hver proces venter på en resurse som den næste proces har dopsys 7

Coffman-betingelserne (1971) Deadlock kun mulig hvis der er: 1. Mutual exclusion: en resurse kan ikke anvendes af mere end een proces ad gangen 2. Hold and wait: en proces der allerede har en resurse kan bede om een til 3. No preemption: ingen resurser kan tvinges væk fra en proces, frigivelse af resurser sker kun på processens eget initiativ 4. Circular wait: to eller flere processer kan danne en cykel hvor hver proces venter på en resurse som den næste proces har dopsys 7

Håndtering af deadlocks 1. Strudsealgoritmen: Tillader deadlock at opstå Timeout eller bruger løser problemet 2. Detektér og fjern deadlock: Tillader deadlock at opstå Deadlock detekteres, og elimineres af systemet 3. Undgå deadlock dynamisk (avoidance): Deadlock kan ikke opstå (systemet kan have potentielle deadlocks) Dynamisk check af forespørgsler på resurser (requests) Hvis tildeling af en resurse kan føre til en deadlock udsættes den 4. Undgå deadlock statisk (prevention): Deadlock kan ikke opstå (ingen potentielle deadlocks) Sikret statisk via regler for requests dopsys 8

Notation og Terminologi dopsys 9

Modellering af resursestyring En resursegraf repræsenterer systemets tilstand:.. repræsenterer alle aktuelle requests og allokeringer. dopsys 10

Modellering af resursestyring En resursegraf repræsenterer systemets tilstand: Proces.. repræsenterer alle aktuelle requests og allokeringer. dopsys 10

Modellering af resursestyring En resursegraf repræsenterer systemets tilstand: Proces Resurseklasse.. repræsenterer alle aktuelle requests og allokeringer. dopsys 10

Modellering af resursestyring En resursegraf repræsenterer systemets tilstand: Proces Resurse Resurseklasse.. repræsenterer alle aktuelle requests og allokeringer. dopsys 10

Modellering af resursestyring En resursegraf repræsenterer systemets tilstand: Request Proces Resurse Resurseklasse.. repræsenterer alle aktuelle requests og allokeringer. dopsys 10

Modellering af resursestyring En resursegraf repræsenterer systemets tilstand: Request Proces Allokering Resurse Resurseklasse.. repræsenterer alle aktuelle requests og allokeringer. dopsys 10

Systemtilstanden.. ændres ved Request, Acquisition og Release af resurser: Tilstandsovergange (transitioner): Request Acquisition Release tilføjer et antal kanter fra en proces til en resurseklasse. vender alle kanter fra en proces til en resurseklasse. fjerner et antal kanter fra resurser til en proces. dopsys 11

Regler for operationer Request kan tilføjes fra proces p når: ingen request findes fra p i forvejen antal ønskede resurser ikke overstiger total Acquire kan udføres når: alle requests kan tilfredsstilles samtidig Release kan udføres når: ingen request findes fra p dopsys 12

Terminologi En proces P er blokeret i en tilstand S hvis P ikke kan lave en operation (request, acquisition, release) i S. En proces P er deadlocked i en tilstand S hvis P er blokeret i alle tilstande der potentielt kan nås fra S. En tilstand S er deadlocked hvis en proces i S er deadlocked. dopsys 14

Eksempel på tilstandsgraf p1 P1: Request R1 før R2 Release R2 før R1 p2 P2: Request R2 før R1 Release R1 før R2 dopsys 13

Eksempel på tilstandsgraf p1 P1: Request R1 før R2 Release R2 før R1 p2 P2: Request R2 før R1 Release R1 før R2 P2 blokeret dopsys 13

Eksempel på tilstandsgraf p1 P1: Request R1 før R2 Release R2 før R1 p2 P2: Request R2 før R1 Release R1 før R2 P2 blokeret P1 blokeret dopsys 13

Eksempel på tilstandsgraf p1 P1: Request R1 før R2 Release R2 før R1 p2 P2: Request R2 før R1 Release R1 før R2 P2 blokeret P1 blokeret Deadlock: P1+P2 blokeret dopsys 13

[Q/A] dopsys 13

[Q/A] Hvordan ser resursegrafen ud for tilstandene S0,0 og S1,2? dopsys 13

[Click] Hvad er forkert? A. Tilstandsgrafer er svagt sammenhængende B. Uden deadlock er tilstandsgrafer stærkt sammenhængende C. En tilstandsgraf kan beskrive et vilkårligt langt scenarie D. En tilstandsgraf kan beskrive scenarier med mere end to processer E. Der kan være deadlock i en knude med udgående kanter F. Ved ikke dopsys 13

Håndtering af deadlocks: Tag chancen dopsys 15

Detektering af Deadlocks Findes der en deadlock i systemets aktuelle tilstand S? Følgende best-case scenarie betragtes: 1. Ingen yderligere requests laves af processer i tilstand S 2. Hvis en aktuel request imødekommes for en proces, så terminerer processen, og de allokerede resurser frigives Baseret på reduktion af resursegrafer: 1. Vælg en proces P der ikke er blokeret 2. Eliminer P og alle tilhørende request- og allokeringskanter.. gentag skridt 1+2 så længe der findes ikke-blokerede processer dopsys 16

Detektering af Deadlocks Findes der en deadlock i systemets aktuelle tilstand S? Følgende best-case scenarie betragtes: 1. Ingen yderligere requests laves af processer i tilstand S 2. Hvis en aktuel request imødekommes for en proces, så terminerer processen, og de allokerede resurser frigives Baseret på reduktion af resursegrafer: 1. Vælg en proces P der ikke er blokeret 2. Eliminer P og alle tilhørende request- og allokeringskanter.. gentag skridt 1+2 så længe der findes ikke-blokerede processer Processer der ikke kan elimineres er i deadlock! dopsys 16

Eksempel 5 dopsys 17

Eksempel 5 dopsys 17

Eksempel 5 dopsys 17

Eksempel 5 dopsys 17

Fjernelse af Deadlocks Cirkulær venten mellem processer skal brydes. Inkrementel terminering af processer i deadlock: Prioritet af processer (ikke scheduleringsprioritet) Omkostninger ved genstart (anslået..) Afhængighed mellem processer (producer/consumer) Resursefratagelse (resource preemption): Tag resurser væk fra processer Roll-back i processen vha. checkpoints kan være nødvendig dopsys 18

Håndtering af deadlocks: Stop dem lige før de opstår dopsys 19

Deadlock Avoidance.. sikrer at systemet aldrig går i deadlock, ved brug af dynamiske checks. Antagelse: 1. Øvre grænse for resurse-allokering til hver proces er kendt 2. En proces terminerer og frigiver resurserne hvis alle dens potentielle requests opfyldes. Kravsgraf (Claim graph): dopsys 20

Deadlock Avoidance.. sikrer at systemet aldrig går i deadlock, ved brug af dynamiske checks. Antagelse: 1. Øvre grænse for resurse-allokering til hver proces er kendt 2. En proces terminerer og frigiver resurserne hvis alle dens potentielle requests opfyldes. Kravsgraf (Claim graph): Mulige requests (claim edge) dopsys 20

Banker s Algorithm.. udnytter at OS vælger hvilke requests der skal opfyldes: Givet systemtilstand S: 1. Antag at requests for proces P opfyldes i S og modificér kravsgrafen til at reflektere dette 2. Betragt alle kravs-kanter som request-kanter og reducer kravsgrafen (worst-case scenarie) 3. Hvis alle processer kan elimineres, er det sikkert at opfylde den givne request dopsys 21

Banker s Algorithm.. udnytter at OS vælger hvilke requests der skal opfyldes: Givet systemtilstand S: 1. Antag at requests for proces P opfyldes i S og modificér kravsgrafen til at reflektere dette 2. Betragt alle kravs-kanter som request-kanter og reducer kravsgrafen (worst-case scenarie) 3. Hvis alle processer kan elimineres, er det sikkert at opfylde den givne request Selv ved worst-case request scenarie er det muligt at nå tilstand hvor alle processer er kørt færdig. dopsys 21

Eksempel Aktuel tilstand/claim graf: Request fra proces p1 sikker? Request fra proces p2 sikker? dopsys 22

Eksempel Aktuel tilstand/claim graf: Request fra proces p1 sikker? Request fra proces p2 sikker? dopsys 22

Eksempel Aktuel tilstand/claim graf: Request fra proces p1 sikker? Request fra proces p2 sikker? dopsys 22

Eksempel Aktuel tilstand/claim graf: Request fra proces p1 sikker? Request fra proces p2 sikker? dopsys 22

Eksempel Aktuel tilstand/claim graf: Request fra proces p1 sikker? Request fra proces p2 sikker? dopsys 22

Eksempel Aktuel tilstand/claim graf: Request fra proces p1 sikker? Request fra proces p2 sikker? dopsys 22

Eksempel Aktuel tilstand/claim graf: Request fra proces p1 sikker? Request fra proces p2 sikker? dopsys 22

Eksempel Aktuel tilstand/claim graf: Request fra proces p1 sikker? Request fra proces p2 sikker? dopsys 22

Håndtering af deadlocks: Garantér at de ikke forekommer dopsys 23

Deadlock Prevention.. sikrer at systemet aldrig går i deadlock, ved en statisk analyse: Modtræk mod de nødvendige betingelser for deadlock: Mutual exclusion: En resurse er allokeret til højst een proces Modtræk: Visse resurser kan deles (read-only, virtualisering) Hold and wait: Processer med allokerede resurser kan lave yderligere requests Modtræk: Resurser skal allokeres samtidig Circular wait: Resursegrafen skal have en cykel med mindst to processer Modtræk: Total ordning af resurser, requests ordnet derefter.. hvis blot en af disse elimineres kan deadlock ikke opstå (og deadlock detection brød lige præcis den 4. betingelse, no preemption). dopsys 24

Eksempel: ordnede resurser Requests skal følge ordningen (p 3 request: kun R 4 ) Mest efterspurgte resurse får højeste nummer dopsys 25

[Click] A. Der findes en proces B. Enhver proces har en udgående kant C. For alle k findes en vej af længde k D. Der er mindst ligeså mange resurseklasser som processer E. Enhver resurse med en indgående kant har en udgående kant F. Ved ikke En resursegraf med deadlock vil efter reduktion have en cykel. Hvilket argument dur ikke? 28

Opsummering Resursestyring kan ende i deadlock - nogle processer blokeret, andre kan aldrig hjælpe Håndtering: Strudsealgoritmen (ganske almindelig..) Detektion og fjernelse (kræver roll-back!) Avoidance (dynamiske checks) Prevention (statisk check) Analyseværktøjer: resursegraf, kravsgraf (claim graph) Operationer: request, acquire, release Centralt kriterium: komplet reduktion af resursegraf dopsys 26