Operativsystem - Baklås

Relevanta dokument
Genomsnittligt sökdjup i binära sökträd

x 1 x 2 x 3 x 4 x 5 x 6 HL Z x x x

Föreläsning 10: Kombinatorik

Deadlocks. detektera och undvik

Operativsystem - Processkommunikation

. Mängden av alla möjliga tillstånd E k kallas tillståndsrummet.

Datastrukturer och algoritmer

ENDIMENSIONELL ANALYS B1 FÖRELÄSNING VI. Föreläsning VI. Mikael P. Sundqvist

Design mönster. n n n n n n. Command Active object Template method Strategy Facade Mediator

Armin Halilovic: EXTRA ÖVNINGAR

2. Konfidensintervall för skillnaden mellan två proportioner.

101. och sista termen 1

MS-A0409 Grundkurs i diskret matematik I

MS-A0409 Grundkurs i diskret matematik Sammanfattning, del I

Statistisk analys. Vilka slutsatser kan dras om populationen med resultatet i stickprovet som grund? Hur säkra uttalande kan göras om resultatet?

Kompletterande kurslitteratur om serier

Borel-Cantellis sats och stora talens lag

Induktion och Binomialsatsen. Vi fortsätter att visa hur matematiska påståenden bevisas med induktion.

Digital signalbehandling Alternativa sätt att se på faltning

Linjär Algebra (lp 1, 2016) Lösningar till skrivuppgiften Julia Brandes

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

SANNOLIKHETER. Exempel. ( Tärningskast) Vi har sex möjliga utfall 1, 2, 3, 4, 5 och 6. Därför är utfallsrummet Ω = {1, 2, 3, 4, 5,6}.

Ekvationen (ekv1) kan beskriva en s.k. stationär tillstånd (steady-state) för en fysikalisk process.

REGULJÄRA SPRÅK (8p + 6p) 1. DFA och reguljära uttryck (6 p) Problem. För följande NFA över alfabetet {0,1}:

Analys av algoritmer. Beräkningsbar/hanterbar. Stora Ordo. O(definition) Datastrukturer och algoritmer. Varför analysera algoritmer?

Föreläsning G04: Surveymetodik

c n x n, där c 0, c 1, c 2,... är givna (reella eller n=0 c n x n n=0 absolutkonvergent om x < R divergent om x > R n n lim = 1 R.

Databaser - Design och programmering. Databasdesign. Kravspecifikation. Begrepps-modellering. Design processen. ER-modellering

Stat. teori gk, ht 2006, JW F13 HYPOTESPRÖVNING (NCT ) Ordlista till NCT

Uppsala Universitet Matematiska Institutionen Bo Styf. Genomgånget på föreläsningarna Föreläsning 26, 9/2 2011: y + ay + by = h(x)

Uppgifter 3: Talföljder och induktionsbevis

Sannolikheten. met. A 3 = {2, 4, 6 }, 1 av 11

(a) Skissa täthets-/frekvensfunktionen och fördelningsfunktionen för X. Glöm inte att ange värden på axlarna.

Lösningar till tentamensskrivning i kompletteringskurs Linjär Algebra, SF1605, den 10 januari 2011,kl m(m + 1) =

Webprogrammering och databaser. Begrepps-modellering. Exempel: universitetsstudier Kravspec. ER-modellen. Exempel: kravspec forts:

CONSTANT FINESS SUNFLEX

LINJÄR ALGEBRA II LEKTION 4

Anmärkning: I några böcker använder man följande beteckning ]a,b[, [a,b[ och ]a,b] för (a,b), [a,b) och (a,b].

DEL I. Matematiska Institutionen KTH

Jag läser kursen på. Halvfart Helfart

Lösningar och kommentarer till uppgifter i 1.1

Tentamen 19 mars, 8:00 12:00, Q22, Q26

Tentamenskrivning, , kl SF1625, Envariabelanalys för CINTE1(IT) och CMIEL1(ME ) (7,5hp)

Vad är det okända som efterfrågas? Vilka data är givna? Vilka är villkoren?

TAMS15: SS1 Markovprocesser

Databaser - Design och programmering. Programutveckling. Programdesign, databasdesign. Kravspecifikation. ER-modellen. Begrepps-modellering

RESTARITMETIKER. Avsnitt 4. När man adderar eller multiplicerar två tal som t ex

Befolkning per födelseland Reviderad metod vid framskrivningar. Version: 2

vara ett polynom där a 0, då kallas n för polynomets grad och ibland betecknas n grad( P(

Art Brugsanvisning

Efter tentamen För kurser med fler än 60 examinerande meddelas resultatet SENAST 20 arbetsdagar efter examinationen annars 15 arbetsdagar.

Sannolikhetslära. c 2015 Eric Järpe Högskolan i Halmstad

Geometriska summor. Aritmetiska summor. Aritmetiska talföljder kallar vi talföljder som. Geometriska talföljder kallar vi talföljder som

Duo HOME Duo OFFICE. Programmerings manual SE

Datorövning 2 Fördelningar inom säkerhetsanalys

Hambley avsnitt 12.7 (även 7.3 för den som vill läsa lite mer om grindar)

Universitetet: ER-diagram e-namn

Korrelationens betydelse vid GUM-analyser

Räkning med potensserier

Mätbar vetskap om nuläget och tydliga målbilder om framtiden. Genomför en INDICATOR självvärdering och nulägesanalys inom tre veckor

Fourierserien. fortsättning. Ortogonalitetsrelationerna och Parsevals formel. f HtL g HtL t, där T W ã 2 p, PARSEVALS FORMEL

Föreskrift. om publicering av nyckeltal för elnätsverksamheten. Utfärdad i Helsingfors den 2. december 2005

(a) om vi kan välja helt fritt? (b) om vi vill ha minst en fisk av varje art? (c) om vi vill ha precis 3 olika arter?

Systemdesign fortsättningskurs

Egna funktioner. Vad är sin? sin är namnet på en av många inbyggda funktioner i Ada (och den återfinns i paketet Ada.Numerics.Elementary_Functions)

Induktion LCB Rekursion och induktion; enkla fall. Ersätter Grimaldi 4.1

Återanvändning. Två mekanismer. Nedärvning av egenskaper (inheritance) Objekt komposition

Enkät inför KlimatVardag

H1009, Introduktionskurs i matematik Armin Halilovic POLYNOM, POLYNOMDIVISION, ALGEBRAISKA EKVATIONER, PARTIALBRÅKSUPPDELNING. vara ett polynom där a

Introduktion till statistik för statsvetare

1. Test av anpassning.

Hambley avsnitt 12.7 (även 7.3 för den som vill läsa lite mer om grindar)

Universitetet: ER-diagram e-namn

Föreläsning G70, 732G01 Statistik A. Föreläsningsunderlagen är baserade på underlag skrivna av Karl Wahlin

Z-Testet. Idè. Repetition normalfördelning. rdelning. Testvariabel z

Deadlock. Deadlock uppstår när två eller flera processer hamnar i ett cirkelberoende. Resurs 1. Processen vill ha resursen. Processen äger resursen

Innehåll Grafräknaren och diskret matematik...1 Vad handlar diskret matematik om?...1 Permutationer och kombinationer...3 Något om heltalsräkning...

Intervallskattning. c 2005 Eric Järpe Högskolan i Halmstad. Antag att vi har ett stickprov x 1,..., x n på X som vi vet är N(µ, σ) men vi vet ej

Tommy Färnqvist, IDA, Linköpings universitet

NEWTON-RAPHSONS METOD (en metod för numerisk lösning av ekvationer)

Samtal med Karl-Erik Nilsson

Extrem prestanda Nu utan BPA UPPLEV DEN FANTASTISKA STYRKAN HOS VÅRA BPA-FRIA PRODUKTER

Tentamen i matematisk statistik, Statistisk Kvalitetsstyrning, MSN320/TMS070 Lördag , klockan Lärare: Jan Rohlén

Introduktion till etik (2)

Trigonometriska polynom

b) Bestäm det genomsnittliga antalet testade enheter, E (X), samt även D (X). (5 p)

E F. pn-övergång. Ferminivåns temperaturberoende i n-dopade halvledare. egen ledning. störledning

Multiplikationsprincipen

Vid mer än 30 frihetsgrader approximeras t-fördelningen med N(0; 1). Konfidensintervallet blir då

Datorövning 2 Fördelningar inom säkerhetsanalys

Tentamen i Sannolikhetsteori III 13 januari 2000

Sannolikheter 0 < P < 1. Definition sannolikhet: Definition sannolikhet: En sannolikhet kan anta värden från 0 till 1

NEWTON-RAPHSONS METOD (en metod för numerisk lösning av ekvationer)

Tentamen i Statistik, STA A13 Deltentamen 2, 5p 20 januari 2007, kl

Visst kan man faktorisera x 4 + 1

a utsöndring b upptagning c matspjälkning d cirkulation

Stokastiska variabler

4. Uppgifter från gamla tentor (inte ett officiellt urval) 6

Föreläsning F3 Patrik Eriksson 2000

Mönster. n n n n n. Visitor Decorator Extension Object State Taskmaster

Transkript:

Operativsystem - Baklås Mats Björkma 2017-02-01

Lärademål Vad är baklås? Villkor för baklås Strategier för att hatera baklås Operativsystem, Mats Björkma, MDH 2

Defiitio av baklås (boke 6.2) A set of processes is deadlocked if each process i the set is waitig for a evet that oly aother process i the set ca cause Operativsystem, Mats Björkma, MDH 3

Evet som vätas på Nästa alltid att e upptage resurs skall bli ledig Taebaum ämer äve (i 6.7) kommuikatiosbaklås där processer vätar på meddelade som har kommit bort Operativsystem, Mats Björkma, MDH 4

Resurser som vätas på Hårdvarueheter (skrivarexemplet) Delat data (kritiska avsitt) Sykroiserig (semaforer, mailboxes) Nätverkshädelser (köer, buffertar, paket, ) Semaforer och likade mekaismer som aväds för att skydda resursera ova Operativsystem, Mats Björkma, MDH 5

Resurser Två typer: Preemptable No-preemptable Baklås ka bara uppstå med resurser som är o-preemptable Resurse aväds så här: Begär resurse exv. wait(resource_semaphore); Utyttja resurse kritiskt avsitt... Släpp resurse exv. sigal(resource_semaphore); Operativsystem, Mats Björkma, MDH 6

Villkor för baklås 1. Ömsesidigt uteslutade E resurs är atige allokerad av 1 process eller tillgäglig 2. Hold ad wait (håll-och-väta) E process ka ha e resurs allokerad (hålla de) och begära (väta på) e aa 3. No-preemptio Resurser ka ite tas ifrå e process ofrivilligt 4. Cirkulär väta Varje process i e cirkel vätar på e aa i cirkel Alla fyra villkore måste vara uppfyllda för att baklås skall kua uppstå! Operativsystem, Mats Björkma, MDH 7

Att rita resursgrafer A S2 S1 B Exempel: Teckeförklarig: Process Resurs A S S hålls av A A S A begär S Pile pekar mot de kotrollerade ode Operativsystem, Mats Björkma, MDH 8

Att rita resursgrafer A S2 Exempel på mer ä bara e cykel: S1 B Äve C och D är i mägde av processer som befier sig i baklås eftersom de vätar på e resurs som edast e aa process ka släppa frå sig C S3 D Operativsystem, Mats Björkma, MDH 9

Problemet med de ätade filosofera Klassiskt sykroiserigsproblem Urspruglige formulerat av Edsger Dijksta (samme ma som amgav P och V som semaforoperatioer) Operativsystem, Mats Björkma, MDH 10

Problemet med de ätade filosofera 5 filosofer 1 rut bord E tallrik hal spaghetti 5 gafflar E filosof ka atige äta eller täka Procedur att äta: 1. Ta upp väster gaffel 2. Ta upp höger gaffel 3. Ät 4. Lägg er båda gafflara Hur ka problemet hateras? Operativsystem, Mats Björkma, MDH 11

Strategier för baklåshaterig 1. Strutsalgoritme 2. Deadlock detectio (upptäck baklås och åtgärda) 3. Deadlock avoidace (udvik geom försiktighet vid allokerig) 4. Deadlock prevetio (udvik geom desig) Operativsystem, Mats Björkma, MDH 12

Strutsalgoritme Eklaste sättet att hatera problemet på OS-ivå: Stick huvudet i sade och låtsas att problemet ite existerar Hur ka ma es komma på e såda strategi? Adra fel uppstår mycket oftare Slipper begräsigar i OS:et Avädara vet bäst hur udvika baklås i deras tillämpigar The ostrich algorithm is both Widows ad UNIX approved!! J Operativsystem, Mats Björkma, MDH 13

Deadlock Detectio Iga begräsigar på resursallokerig Aväd e algoritm för att upptäcka baklås Två fall: 1. E resurs av varje typ 2. Flera resurser av varje typ Lös upp baklås som hittas När skall e såda algoritm köras? När e resurs begärs Periodiskt, varje N tidseheter När systemet är idle Operativsystem, Mats Björkma, MDH 14

Deadlock Detectio - E resurs av varje typ Gör e resursgraf Fi evetuella cykler Bryt upp fua cykler Process Resurs A S S hålls av A A S A begär S Pile pekar mot de kotrollerade ode Övig: P A håller R och begär S P B begär T P C håller S P D håller U och begär S och T P E håller T och begär V P F håller W och begär S P G håller V och begär U Är systemet i baklås? Operativsystem, Mats Björkma, MDH 15

Deadlock Detectio - E resurs av varje typ R P A P B P C S P D T P E P F U BAKLÅS!!! V W P G Operativsystem, Mats Björkma, MDH 16

Deadlock Detectio - E resurs av varje typ Algoritm för att hitta cykler: 1. För varje od N i grafe, utför följade steg med N som startod: 2. Iitiera L som de tomma mägde och avmarkera alla bågar, sätt N som uvarade od. 3. Addera uvarade od till mägde L. Om uvarade od reda tidigare är i mägde, så har vi upptäckt ett baklås, vi oterar detta (typ spara L) och algoritme ka därefter termieras 4. Om det fis omarkerade bågar utgåede frå uvarade od, gå till 5, aars gå till 6. 5. Välj e omarkerad båge och markera de. Följ de seda. Sätt de ya ode till uvarade od. Gå till 3. 6. Om vi står vid startode, gå till 1 och aväd e y startod. Om ite: Vi har hamat i e återvädsgräd. Ta bort uvarade od ur L, backa till föregåede od, gör dea till uvarade od och gå till 4. Operativsystem, Mats Björkma, MDH 17

Deadlock Detectio - E resurs av varje typ R P A P B PC S P D P T E P F W U V P G N=P B L={} =>L={P B } =>L={P B, T} =>L={P B, T, P E } =>L={P B, T, P E, V} =>L={P B, T, P E, V, P G } =>L={P B, T, P E, V, P G, U} =>L={P B, T, P E, V, P G, U, P D } =>L={P B, T, P E, V, P G, U, P D, S} =>L={P B, T, P E, V, P G, U, P D, S, P C } =>L={P B, T, P E, V, P G, U, P D, S} =>L={P B, T, P E, V, P =>L={P B, T, P E, V, P G, U, P G, U, P D } D, T} Baklås!! Operativsystem, Mats Björkma, MDH 18

Deadlock Detectio - Alterativ uta baklås R P A P B PC S P D P T E P F W U V P G N=P B L={} =>L={P B } =>L={P B, T}. =>L={P B, T, P E, V, P G, U} =>L={P B, T, P E, V, P G } =>L={P B, T, P E, V} =>L={P B, T, P E } =>L={P B, T} =>L={P B } (iget baklås utgåede frå P B ) dito med N=P A, P C, P D, P E, P F, resp. P G Slutsats: Iget baklås existerar Operativsystem, Mats Björkma, MDH 19

Deadlock Detectio - Flera resurser av varje typ Lösig med matriser [ e e ] E... = 1 2 e Vektor med Existerade resurser av typ e x = [ a1 a2 a ] Vektor med tillgägliga (Available) c11 c12 c1 resurser av typ a x A... c C = R = " cm 21 1 r r " rm 11 21 1 c c 22 " m1 r r r 12 22 " m1! #!! #! Vi ka se att: c c r r 2 " m 1 r 2 " m Matris med atalet resurser av typ som process m håller (Claimed) Matris med atalet resurser av typ som process m begär (Requested) m i=1 c + a = ij Operativsystem, Mats Björkma, MDH 20 j e j

Deadlock Detectio - Flera resurser av varje typ För två vektorer, X och Y gäller att X Y omm x i y i för 0 i <! "! " Exempel: 1 2 3 4 1 2 3 4 # $! " 2 3 4 4 # $! " 2 3 2 4 # $ # $ Operativsystem, Mats Björkma, MDH 21

Deadlock Detectio - Flera resurser av varje typ Följade algoritm körs regelbudet: 1. Hitta e omarkerad process P i där R i A. 2. Om e såda process fis, markera processe (de har möjlighet att exekvera klart), addera C i till A, och gå till steg 1. 3. När ige omarkerad process uppfyller villkoret i 1, termiera. Alla omarkerade processer är i baklås Hur fugerar detta? Operativsystem, Mats Björkma, MDH 22

Operativsystem, Mats Björkma, MDH 23 Övig 1: [ ] 1 3 2 4 = E [ ] 0 0 1 2 A = = 0 2 1 0 1 0 0 2 0 1 0 0 C Fis det baklås i systemet? = 0 0 1 2 0 1 0 1 1 0 0 2 R 1 [ ] 0 2 2 2 A'= 2 [ ] 1 2 2 4 ' A' = 3 [ ] 1 3 2 4 '' A' = INGET BAKLÅS!!! Deadlock Detectio - Flera resurser av varje typ

Övig 2: E = [ 4 2 3 1] A = [ 2 1 0 0] C = Deadlock Detectio - Flera resurser av varje typ 0 0 3 0 2 0 0 1 0 1 0 0 R = Fis det baklås i systemet? 2 0 0 1 1 0 1 0 2 1 0 0 1 A' = 2 2 0 0 SYSTEMET ÄR I BAKLÅS!!! Operativsystem, Mats Björkma, MDH 24

Deadlock Detectio Hur återhämta sig frå baklås? Preemptio Process rollback Termiera e av processera som är i baklås Operativsystem, Mats Björkma, MDH 25

Deadlock Avoidace Udviker baklås geom försiktighet vid allokerig Arbetar med säkra och osäkra tillståd E allokerig tillåts edast om systemet hamar i ett säkert tillståd efter allokerige Operativsystem, Mats Björkma, MDH 26

Deadlock Avoidace - Säkra och osäkra tillståd (fig. 6-8) B Both Fiished Pri t er Pl ot ter I8 I7 I6 I5 Safe Safe Safe Usafe Ureachable r s Safe Safe p q I1 I2 I3 I4 A Priter Plotter Operativsystem, Mats Björkma, MDH 27

Deadlock Avoidace - Säkra och osäkra tillståd Algoritmer för att beräka tillstådet Förutsäger ett värstafallsbeteede Vad är värsta fallet? Om e process vill ha alla resurser de överhuvudtaget ka täkas vilja ha i framtide, u och alla samtidigt Fråga är: Skulle systemet då gå i baklås? Svår uppgift: skatta maxatalet Operativsystem, Mats Björkma, MDH 28

Deadlock Avoidace - Säkra och osäkra tillståd Algoritmer för att beräka tillstådet Motsvarar baklåsdetekterig med E, A, C och R-matrisera. Exempel 1: Totalt 10 resurser, med följade allokerig: Proc Har Max A 3 9 B 2 4 C 2 7 Ledigt 3 5 7 10 3 1 2 SÄKERT!!! Är systemet i ett säkert eller osäkert tillståd? Operativsystem, Mats Björkma, MDH 29

Deadlock Avoidace - Säkra och osäkra tillståd Algoritmer för att beräka tillstådet Motsvarar baklåsdetekterig med E, A, C och R-matrisera. Exempel 2: Totalt 10 resurser, med följade allokerig: Proc Har Max A 3 9 B 2 4 C 2 8 Ledigt 3 5 1 OSÄKERT!!! Är systemet i ett säkert eller osäkert tillståd? Operativsystem, Mats Björkma, MDH 30

Deadlock Avoidace - Säkra och osäkra tillståd Observera att ett osäkert tillståd här ite måste leda till baklås! Maxallokerige är ett värsta fall som kaske aldrig iträffar vid e exekverig Däremot är tillstådet osäkert eftersom det fis e risk att tillstådet leder till baklås Operativsystem, Mats Björkma, MDH 31

Deadlock Avoidace - Baker s Algorithm Av Edsger Dijkstra Ursprugstake frå lå i e bak Avgör om e allokerig leder till ett säkert eller osäkert tillståd Körs varje gåg e resurs begärs Två fall: E typ av resurs Flera typer av resurser Operativsystem, Mats Björkma, MDH 32

Deadlock Avoidace - Baker s Algorithm Fråga är ifall vi skall tillåta process P att allokera e begärd resurs eller ite Take är att studera värsta fallet: OM vi tillåter process P att allokera e begärd resurs, och OM därefter alla processer vill allokera det maximala atalet resurser på e gåg, är systemet fortfarade i ett säkert tillståd? Proc Har Max A 3 9 B 2 4 C 2 7 Operativsystem, Mats Björkma, MDH 33

Deadlock Avoidace - Baker s Algorithm Exempel med e typ av resurs: Proc A B C Iitialt tillståd Har 3 9 2 4 2 7 Ledigt: 3 Max B begär 1 Proc Har Max A B C SÄKERT! 3 9 3 4 2 7 Ledigt: 2 SÄKERT! Proc A begär 1 4 9 2 4 2 7 Ledigt: 2 OSÄKERT! Operativsystem, Mats Björkma, MDH 34 A B C Har Max C begär 1 Proc Har Max A B C 3 9 3 4 3 7 Ledigt: 1 SÄKERT!

Deadlock Avoidace - Baker s Algorithm Motsvarade för flera typer av resurser lämas om e övig (boke 6.5.4) Aväd samma typ av matriser som vid deadlock detectio för flera resurser, och applicera Baker s Algorithm d.v.s.: OM vi tillåter e begära om resurser, och OM alla processer seda vill ha maxatalet, kommer då systemet att gå i baklås? Om ja, eka de begärda allokerige Operativsystem, Mats Björkma, MDH 35

Deadlock Avoidace - Baker s Algorithm Värt att otera ige är att ett osäkert tillståd ite måste leda till baklås Det är bara om alla processer verklige vill allokera maxatalet resurser som det blir ett baklås Baker s algorithm är alltså koservativ eftersom de alltid atar värsta fallet Operativsystem, Mats Björkma, MDH 36

Deadlock Prevetio Svårt att åstadkomma Agrip ett av villkore för baklås Agrip Ömsesidigt uteslutade Agrip Hold ad Wait Agrip No-preemptio Agrip Cirkulär väta Operativsystem, Mats Björkma, MDH 37

Hur skulle du göra? I ett valigt OS? I ett realtids-os? Agrip Ömsesidigt uteslutade Agrip Hold ad Wait Agrip No-preemptio Agrip Cirkulär väta Operativsystem, Mats Björkma, MDH 38

Filosoferas återkomst Summa summarum: OS:et haterar sälla baklås Alltså: Du som programmerare behöver hatera dem! E ekel regel: Ta alltid semaforera i e viss ordig! Låt e filosof ta höger gaffel först! 1-2 2 1 1-5 5-1 5 4 4-5 2-3 3 3-4 Operativsystem, Mats Björkma, MDH 39

Summerig Vad är baklås? 4 villkor för att baklås skall riskeras: Ömsesidigt uteslutade Hold ad wait No-preemptio Cirkulär väta Operativsystem, Mats Björkma, MDH 40

Summerig Strategier för att hatera baklås 4 strategier: Strutsalgoritme Deadlock detectio (ad recovery) Deadlock avoidace Deadlock prevetio Operativsystem, Mats Björkma, MDH 41

Lärademål Vad är baklås? Villkor för baklås Strategier för att hatera baklås Operativsystem, Mats Björkma, MDH 42