Operativsystem - Baklås Mats Björkman 2016-02-04.

Slides:



Advertisements
Liknande presentationer
Visual Basic - Genomgång
Advertisements

Talföljder formler och summor
Problemsnack eller bygga lösningar.
Access med Sebastian och Robert
Ruttplanering Vad är det??.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 5: CPU-schemaläggning.
Översikt av operativsystem (kap 1 & 2)
Numeriska beräkningar i Naturvetenskap och Teknik
Funktioner och programorganisation
Problemformulering Vad är problemet eller behovet– gapen i våra resultat? Vad: Vad påverkas? Är det specifikt? Innehåller det ett implicit förslag till.
Spatiella egenskaper hos trafiken i operatörsnät Anders Gunnar Spatiella egenskaper hos trafiken i operatörsnät Anders Gunnar Swedish Institute of Computer.
DAB752: Algoritmteori Leif Grönqvist
Predicting protein folding pathways.  Mohammed J. Zaki, Vinay Nadimpally, Deb Bardhan and Chris Bystroff  Artikel i Bioinformatics 2004.
Algoritmer och datastrukturer
Grundläggande programmering
Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor
Distribuerade system & Realtidssystem. Realtidssystem Distribuerade system Problem.
Editeringsregler vid samtidiga sändningar Pirjo Svedberg, 14 oktober
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kap 3 & 4: Processer & trådar.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 7: Deadlocks.
Pekare och speciell programstruktur i inbyggda system
Detection of similarity between documents Axel Bengtsson Ola Olsson
Pathfinding. –Vad är det? –Sökning från A till B.
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
Grundläggande programmering
Algoritmer. Ordet kommer från en persisk författare som kom från al’Khowârizmi (engelskans algorithm). Han skrev boken ’Kitab al jabr w’al-muqabala’.
Transaktionshantering (kap 17+18)
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 6: Process- synkronisering.
Google SketchUp Del 1.
Problemlösningsmetodik
Troubleshooting Your Network (Felsökning) Troubleshooting And The Helpdesk (Helpdesk och felsökning)
Initiera nätverket med nollflöde. Kapaciteterna i svart ovan bågarna och flödet i grönt nedan bågarna. Skicka igenom ett enhetsflöde genom nätverket. Flödesvägen.
Genetiska Algoritmer En översikt Vetenskapsmetodik - CDT Pablo Santibanez Jara, Ulrika Hjälmgården,
Föreläsning 11 Logik med tillämpningar Innehåll u Generell resolution u Kapitel i Ben-Ari.
Föreläsning 9 Logik med tillämpningar Innehåll u Semantiska tablåer i predikatlogiken u Klausulform u Herbrandmodeller u Kapitel 3.5,
Operativsystem - Processkommunikation
Datastrukturer och algoritmer VT08 P = ((C,F,3), (B,D,3), (C,G,4),(A,F,4), (A,R,4), (C,D,5), (E,G,6), (B,R,6), (A,E,6), (A,C,8)) A R B F C D E G
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 9 ( ) Innehåll: - IPC: Semaforer.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer.
Satslogik, forts. DAA701/716 Leif Grönqvist 5:e mars, 2003.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( ) Innehåll: - Förening av dataströmmar -Blockerande I/O multiplexering -Icke blockerande.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 9 Grafalgoritmer.
1 Registrering och uppladdning shp-filer för geotekniska undersökningsområden - startläge.
Logik med tillämpningar
Föreläsning 14 Logik med tillämpningar Innehåll u Cuts och negation u Input/output u Extralogiska predikat u Interaktiva program, failure-drivna.
Procedurellt potpurri Dagens samtalsämnen –Klipp (Cut) –If-then-else –fail/0 –repeat/0 Att läsa –The Art of Prolog, kapitel 11 –Relevant avsnitt i Learn.
NÄTVERKSPROTOKOLL Föreläsning INNEHÅLL - Routingprotokoll - Interior gateway protocols - Exterior gateway protocols - Link state routing.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: -Exekveringstrådar.
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Repetition.
Föreläsning 1 Introduktion till kursen. Algoritmer
1 Föreläsning 13 programmeringsteknik och Matlab Funktioner, styrstrukturer, mer om matriser.
Växjö 14 april -04Språk & logik: Finita automater1 DAB760: Språk och logik 14/4:Finita automater Leif Grönqvist Växjö Universitet.
Algoritmer och loopar Algoritmer, beräkningsbarhet
Lars Madej  Talmönster och talföljder  Funktioner.
© Författarna och Gleerups Utbildning AB. Detta material ingår som en del i lärarmaterialet till Språket och berättelsen. Att läsa och förstå.
Roland Carlsson Strategisk Logistik 2016 Roland Carlsson Ruttplanering.
IT och medier1 Utgående från boken Computer Science av: J. Glenn Brookshear Grundläggande datavetenskap, 4p Kapitel 3 Operativsystem.
Ruttplanering Vad är det??.
Vetenskapsprojekt, rubrik
Rapport till Örebro läns landsting om Medarbetarundersökning
Träff 11 Välkomna!.
Registrering av valorganisation
Mardrömmen för photoshopanvändaren…
Komma igång med Scratch
 U Q  A  S V   P R T   Prioritetskö <P,0>
Fem varför? Fem varför? är ett enkelt och handfast sätt att hitta rotorsaker! Tänk på att: Svaren ska vara relevanta för problemet och inte vara svepande.
Logga in på din Nacka-sida. Sök på Varbi i sökrutan
Den här presentationen innehåller:
Presentationens avskrift:

Operativsystem - Baklås Mats Björkman

Operativsystem, © Mats Björkman, MDH 2 Lärandemål Vad är baklås? Villkor för baklås Strategier för att hantera baklås

Operativsystem, © Mats Björkman, MDH 3 Vad är baklås? Exempel: A B S1 S2 Process Resurs Teckenförklaring: A S A håller S A S A begär S “Pilen pekar mot den kontrollerande noden”

Operativsystem, © Mats Björkman, MDH 4 Formell definition av baklås A set of processes is deadlocked if each process in the set is waiting for an event that only another process in the set can cause

Operativsystem, © Mats Björkman, MDH 5 Resurser Hårdvaruenhet, delat data, semafor, … Två typer: Preemptable Non-preemptable Baklås kan bara uppstå med resurser som är non-preemptable Resursen används så här: Begär resursen Utnyttja resursen Släpp resursen

Operativsystem, © Mats Björkman, MDH 6 Villkor för baklås 1. Ömsesidigt uteslutande En resurs är antingen allokerad av 1 process eller tillgänglig 2. Hold and wait (håll-och-vänta) En process kan hålla en resurs (ha den allokerad) och begära (vänta på) en annan 3. Non-preemption Resurser kan inte tas ifrån en process ofrivilligt 4. Cirkulär väntan Varje process i en cirkel väntar på en annan i cirkeln Alla fyra villkoren måste vara uppfyllda för att baklås skall kunna uppstå!

Operativsystem, © Mats Björkman, MDH 7 Problemet med de ätande filosoferna 5 filosofer 1 runt bord 5 gafflar En tallrik hal spaghetti En filosof kan antingen äta eller tänka Procedur att äta: 1. Ta upp vänster gaffel 2. Ta upp höger gaffel 3. Ät 4. Lägg ner båda gafflarna Hur kan problemet hanteras?

Operativsystem, © Mats Björkman, MDH 8 Strategier för baklåshantering 1. Strutsalgoritmen 2. Deadlock detection (upptäck baklås och åtgärda) 3. Deadlock avoidance (undvik genom försiktighet vid allokering) 4. Deadlock prevention (undvik genom design)

Operativsystem, © Mats Björkman, MDH 9 Strutsalgoritmen Enklaste sättet att hantera problemet: Stick huvudet i sanden och låtsas att problemet inte existerar Hur kan man komma på en sådan strategi? Andra fel uppstår mycket oftare Slipper begränsningar i OS:et The ostrich algorithm is both Windows and UNIX approved!!

Operativsystem, © Mats Björkman, MDH 10 Deadlock Detection Inga begränsningar på resursallokering Använd en algoritm för att upptäcka baklås Två fall: 1. En resurs av varje typ 2. Flera resurser av varje typ Lös upp baklås som hittas När skall en sådan algoritm köras? När en resurs begärs Periodiskt, varje N tidsenheter När systemet är idle

Operativsystem, © Mats Björkman, MDH 11 Deadlock Detection - En resurs av varje typ Gör en resursgraf Finn eventuella cykler Bryt upp funna cykler Övning: 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? Process Resurs A S A håller S A S A begär S “Pilen pekar mot den kontrollerande noden”

Operativsystem, © Mats Björkman, MDH 12 BAKLÅS!!! Deadlock Detection - En resurs av varje typ

Operativsystem, © Mats Björkman, MDH 13 Algoritm för att hitta cykler: 1. För varje nod N i grafen, utför följande steg med N som startnod: 2. Initiera L som den tomma mängden och avmarkera alla bågar, sätt N som nuvarande nod. 3. Om nuvarande nod inte är i mängden, addera noden till mängden. Om nuvarande nod är i mängden, så har vi upptäckt ett baklås, vi noterar detta (typ spara L) och algoritmen kan därefter termineras 4. Om det finns omarkerade bågar utgående från nuvarande nod, gå till 5, annars gå till Välj en omarkerad båge och markera den. Följ den sedan. Sätt den nya noden till nuvarande nod. Gå till Om vi står vid startnoden, gå till 1 och använd en ny startnod. Om inte: Vi har hamnat i en återvändsgränd. Ta bort nuvarande nod ur L, backa till föregående nod, gör denna till nuvarande nod och gå till 4. Deadlock Detection - En resurs av varje typ

Operativsystem, © Mats Björkman, MDH 14 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, T} Baklås!! =>L={P B, T, P E, V, P G, U, P D } Deadlock Detection - En resurs av varje typ =>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 G, U, P D }

Operativsystem, © Mats Björkman, MDH 15 Lösning med matriser Vektor med existerande resurser av typ e x Vektor med tillgängliga (available) resurser av typ a x Matris med antalet resurser av typ n som process m håller (claimed) Matris med antalet resurser av typ n som process m begär (requested) Vi kan se att: Deadlock Detection - Flera resurser av varje typ

Operativsystem, © Mats Björkman, MDH 16 För två vektorer, X och Y omm för Exempel: Deadlock Detection - Flera resurser av varje typ

Operativsystem, © Mats Björkman, MDH 17 Följande algoritm körs regelbundet: 1. Finn en omarkerad process P i där R i A. 2. Om en sådan process finns, addera C i till A. Markera processen och gå till steg När ingen omarkerad process uppfyller villkoret i 1, terminera. Alla omarkerade processer är i baklås Hur fungerar detta? Deadlock Detection - Flera resurser av varje typ

Operativsystem, © Mats Björkman, MDH 18 Övning: Finns det baklås i systemet? INGET BAKLÅS!!! Deadlock Detection - Flera resurser av varje typ

Operativsystem, © Mats Björkman, MDH 19 Deadlock Detection Hur återhämta sig från baklås? Preemption Process rollback Terminera en av processerna som är i baklås

Operativsystem, © Mats Björkman, MDH 20 Deadlock Avoidance Undviker baklås genom försiktighet vid allokering Arbetar med säkra och osäkra tillstånd En allokering tillåts endast om systemet hamnar i ett säkert tillstånd efter allokeringen

Operativsystem, © Mats Björkman, MDH 21 Deadlock Avoidance - Säkra och osäkra tillstånd (fig. 6-8)

Operativsystem, © Mats Björkman, MDH 22 Algoritmer för att beräkna tillståndet Baseras på E,A,C och R-matriserna. Exempel: Totalt 10 resurser, med följande allokering: ProcHarMax A39 B24 C27 Är systemet i ett säkert eller osäkert tillstånd? Ledigt SÄKERT!!! Deadlock Avoidance - Säkra och osäkra tillstånd

Operativsystem, © Mats Björkman, MDH 23 Deadlock Avoidance -Banker’s Algorithm Av Edsger Dijkstra Ursprungstanken från lån i en bank Avgör om en allokering leder till ett säkert eller osäkert tillstånd Körs varje gång en resurs begärs Två fall: En typ av resurs Flera typer av resurser

Operativsystem, © Mats Björkman, MDH 24 Exempel med en typ av resurs: 72C 42B 93A MaxHarProc Ledigt: 3 Initialt tillstånd SÄKERT! A begär 1 72C 42B 94A MaxHarProc Ledigt: 2 OSÄKERT! TILLÅTS EJ! B begär 1 72C 43B 93A MaxHarProc Ledigt: 2 SÄKERT! TILLÅTS! C begär 1 73C 43B 93A MaxHarProc Ledigt: 1 SÄKERT! TILLÅTS! Deadlock Avoidance -Banker’s Algorithm

Operativsystem, © Mats Björkman, MDH 25 Deadlock Prevention Svårt att åstadkomma Angrip ett av villkoren för baklås Angrip Ömsesidigt uteslutande Angrip Hold and Wait Angrip Non-preemption Angrip Cirkulär väntan

Operativsystem, © Mats Björkman, MDH 26 Hur skulle du göra? I ett vanligt OS? I ett realtids-OS? Angrip Ömsesidigt uteslutande Angrip Hold and Wait Angrip Non-preemption Angrip Cirkulär väntan

Operativsystem, © Mats Björkman, MDH 27 Filosofernas återkomst Summa summarum: OS:et hanterar sällan baklås Alltså: Du som programmerare behöver hantera dem! En enkel regel: Ta alltid semaforerna i en viss ordning! Låt en filosof ta höger gaffel först!

Operativsystem, © Mats Björkman, MDH 28 Summering Vad är baklås? 4 villkor för att baklås skall riskeras: Ömsesidigt uteslutande Hold and wait Non-preemption Cirkulär väntan

Operativsystem, © Mats Björkman, MDH 29 Summering Strategier för att hantera baklås 4 strategier: Strutsalgoritmen Deadlock detections and recovery Deadlock avoidance Deadlock prevention

Operativsystem, © Mats Björkman, MDH 30 Lärandemål Vad är baklås? Villkor för baklås Strategier för att hantera baklås