Vranglås (Deadlocks) Fag: Operativsystemer 1
Innhold: Vranglås Vranglås Eksempler: Svensk flagg, Veikryss, spisende filosofer Betingelser for vranglås Metoder for å håndtere vranglås Tilbake til systemer uten multiprogrammering Strutse (ostrich) algoritme Oppdage vranglås og løse det opp Unngå vranglås (f. eks. bankmannens algoritme) Forebygge (hindre helt) vranglås Vranglås operativsystemer 2
Definisjon vranglås Et sett av prosesser er i vranglås dersom hver prosess i settet venter på en henvendelse som kun en av de andre kan forårsake Vranglås operativsystemer 3
Tegne svensk flagg Tilgjengelige ressurser: - blå fargeblyant - gul fargeblyant - to tegneark Karis program hent hent ark ark hent hent gul gul farge farge hent hent blå blå farge farge fargelegg fargelegg gul gul fargelegg fargelegg blå blå lever lever gul gul farge farge lever lever blå blå farge farge Olas program hent hent ark ark hent hent blå blå farge farge hent hent gul gul farge farge fargelegg fargelegg gul gul fargelegg fargelegg blå blå lever lever gul gul farge farge lever lever blå blå farge farge Vranglås operativsystemer 4
Tegne svensk flagg 2 Tilgjengelige ressurser: en blå og en gul fargeblyant pluss to tegneark Karis program Olas program Rekkefølge ting skjer i: hent hent ark ark hent hent gul gul farge farge hent hent blå blå farge farge fargelegg gul gul fargelegg blå blå lever lever gul gul farge farge lever lever blå blå farge farge hent hent ark ark hent hent blå blå farge farge hent hent gul gul farge farge fargelegg gul gul fargelegg blå blå lever lever gul gul farge farge lever lever blå blå farge farge Kari: hent ark Ola: hent ark Kari: hent gul farge Ola: hent blå farge Kari: hent blå farge Ola: hent gul farge Vranglås operativsystemer 5
Trafikkvranglås Vranglås operativsystemer 6
Sultefôring Ny vei inn her Vranglås operativsystemer 7
Spisende filosofer For å spise trengs to gafler, man bruker dem på skift. Vranglås hvis alle tar én gaffel hver Filosofene har to tilstander: filosoferende spisende Vranglås operativsystemer 8
Deadlock Modeling Modeled with directed graphs resource R assigned to process A process B is requesting/waiting for resource S process C and D are in deadlock over resources T and U Vranglås operativsystemer 9
Grafisk modellering Prosess P n P n Ressurs R m R m Forespørsel P n ønsker R m Tilordning P n R m En instans av R m R m P n holdes av P n Vranglås operativsystemer 10
Sirkulær venting Process Requests Held By Resource A Resource B Held by Requests Process P2 Vranglås operativsystemer 11
Deadlock Modeling (2) A B C How deadlock occurs Vranglås operativsystemer 12
Vranglås: sirkulær venting R2 R4 P 2 P3 R1 R3 Vranglås operativsystemer 13
Betingelse for vranglås 1. Gjensidig utelukkelse ikke alle resurser kan deles 2. Holde og vente Må kunne holde en ressurs mens den venter på en annen 3. Ingen preemptiv oppførsel Ingen prosess kan fratas sin ressurs mot sin vilje 4. Sirkulær venting Vranglås operativsystemer 14
Håndtere vranglås 1. Strutsealgoritme late som ingenting 2. Detektere og løse opp vranglås 3. Unngå vranglås deadlock avoidance 4. Forebygge vranglås deadlock prevention Vranglås operativsystemer 15
Detektere vranglås Lar vranglås forekomme Løser dem etterpå: Drepe prosesser Preemptiv metode på ressursen Rollback: gå tilbake Vranglås operativsystemer 16
Unngå vranglås Hvilke konsekvenser får en ressursdeling? Sikker tilstand: (stable state) Alle ventende forespørsler kan tilfredstilles ved å kjøre prosesser i en bestemt rekkefølge Usikker tilstand: motsatt av sikker Vranglås operativsystemer 17
Modellering 3 2 2 1 0 0 9 3 6 P2 6 1 3 P2 5 1 1 ressurs-tabell P3 3 1 4 P3 2 1 1 P4 4 2 2 P4 0 0 2 1 1 2 krav-tabell allokert-tabell tilgjengelig-tabell Start-tilstand Vranglås operativsystemer 18
3 2 2 1 0 0 P2 6 1 3 P2 6 1 2 P3 3 1 4 P3 2 1 1 P4 4 2 2 P4 0 0 2 0 1 1 krav-tabell allokert-tabell tilgjengelig-tabell P2 har fått en R1 og en R3 Vranglås operativsystemer 19
3 2 2 1 0 0 P2 0 0 0 P2 0 0 0 P3 3 1 4 P3 2 1 1 P4 4 2 2 P4 0 0 2 6 2 3 krav-tabell allokert-tabell tilgjengelig-tabell P2 kjører til ferdig Vranglås operativsystemer 20
0 0 0 0 0 0 P2 0 0 0 P2 0 0 0 P3 3 1 4 P3 2 1 1 P4 4 2 2 P4 0 0 2 7 2 3 krav-tabell allokert-tabell tilgjengelig-tabell kjører til ferdig Vranglås operativsystemer 21
0 0 0 0 0 0 P2 0 0 0 P2 0 0 0 P3 0 0 0 P3 0 0 0 P4 4 2 2 P4 0 0 2 9 3 4 krav-tabell allokert-tabell tilgjengelig-tabell P3 kjører til ferdig Vranglås operativsystemer 22
3 2 2 2 0 1 P2 6 1 3 P2 5 1 1 P3 3 1 4 P3 2 1 1 P4 4 2 2 P4 0 0 2 0 1 1 krav-tabell allokert-tabell tilgjengelig-tabell spør om en R1 og en R3 Vranglås operativsystemer 23
Example of Deadlock Progress of Q A Required Release A Release B 1 2 P and Q want A B Required Get A Get B 3 deadlock inevitable 4 P and Q want B 5 6 Get A Get B Release A Release B Progress of P A Required B Required Vranglås operativsystemer 24
Bankmanns algoritme Unngå å komme i usikker tilstand: Prosesser må si ifra om behov på forhånd Algoritmen fordeler de ressuser som er tilgjengelig og unngår vranglås I praksis er det vanskelig: prosessene vet ikke om behov antall prosesser dynamisk resurser kan svikte Se Fig. 6.10 i Tanenbaum: Modern operation Systems Vranglås operativsystemer 25
Forebygge vranglås Utelukke betingelsene for vranglås: 1. Gjensidig utelukkelse (umulig) 2. Holde og vente Forlanger at prosess allokerer alle ressurser med en gang 3. Ingen preemptiv oppførsel Tvinge til å gi slipp på ressurser (opsys) 4. Sirkulær venting Vranglås operativsystemer 26
Forebygge sirkulær venting 1. Kreve at prosess kun allokerer én ressurs om gangen 2. Nummerer ressurser i en bestemt rekkefølge og kreve at allokeringen skjer i denne rekkefølge Vranglås operativsystemer 27