ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Κεφάλαιο 6ο: Αδιέξοδα



Σχετικά έγγραφα
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Κεφάλαιο 6ο: Αδιέξοδα

Λειτουργικά Συστήματα (Λ/Σ)

Αδιέξοδα (Deadlocks)

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

ΑΔΙΕΞΟΔΑ (Deadlocks) Παράδειγμα 1 Θανάσιμο αγκάλιασμα (deadly embrace)

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Αδιέξοδα Εργαστηριακές Ασκήσεις

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΑΔΙΕΞΟΔΑ

The challenges of non-stable predicates

ΑΔΙΕΞΟΔΑ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

TMA4115 Matematikk 3

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

Locking to ensure serializability


EE512: Error Control Coding

2 Composition. Invertible Mappings

Fractional Colorings and Zykov Products of graphs

09/04/2014 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Μάθηµα: Α ΙΕΞΟ Α. ιδάσκων: Λειτουργικά Συστήµατα Ι Αν. Καθ. Κ. Λαµπρινουδάκης Α ΙΕΞΟ Α

Αρχεία και Βάσεις Δεδομένων

Ordinal Arithmetic: Addition, Multiplication, Exponentiation and Limit

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

The Simply Typed Lambda Calculus

Λιβανός Γιώργος Εξάμηνο 2017Β

Section 8.3 Trigonometric Equations

6. Αδιέξοδο. 1. Ορισμοί είδη πόρων. 3. Συνθήκες αδιεξόδου. 1. Πρόληψη 2. Αποφυγή 3. Ανίχνευση 5. Το πρόβλημα των συνδαιτημόνων φιλοσόφων

Λειτουργικά Συστήματα Η/Υ

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Chapter 6: Systems of Linear Differential. be continuous functions on the interval

Απόκριση σε Μοναδιαία Ωστική Δύναμη (Unit Impulse) Απόκριση σε Δυνάμεις Αυθαίρετα Μεταβαλλόμενες με το Χρόνο. Απόστολος Σ.

Areas and Lengths in Polar Coordinates

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Areas and Lengths in Polar Coordinates

Every set of first-order formulas is equivalent to an independent set

C.S. 430 Assignment 6, Sample Solutions

Συστήματα Διαχείρισης Βάσεων Δεδομένων

Bounding Nonsplitting Enumeration Degrees

Instruction Execution Times

2. THEORY OF EQUATIONS. PREVIOUS EAMCET Bits.

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

Other Test Constructions: Likelihood Ratio & Bayes Tests

Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3

Numerical Analysis FMN011

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Nowhere-zero flows Let be a digraph, Abelian group. A Γ-circulation in is a mapping : such that, where, and : tail in X, head in

Λειτουργικά Συστήματα

Προσομοίωση BP με το Bizagi Modeler

Example Sheet 3 Solutions

Assalamu `alaikum wr. wb.

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

Code Breaker. TEACHER s NOTES

Λειτουργικά Συστήματα

Δίκτυα Επικοινωνιών ΙΙ: OSPF Configuration

Practice Exam 2. Conceptual Questions. 1. State a Basic identity and then verify it. (a) Identity: Solution: One identity is csc(θ) = 1

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Οικονομία. Διάλεξη 10η: Basics of Game Theory part 2 Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible.

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΝΟΣΗΛΕΥΤΙΚΗΣ

Solutions to the Schrodinger equation atomic orbitals. Ψ 1 s Ψ 2 s Ψ 2 px Ψ 2 py Ψ 2 pz

Chap. 6 Pushdown Automata

Finite Field Problems: Solutions

4.6 Autoregressive Moving Average Model ARMA(1,1)

the total number of electrons passing through the lamp.

Inverse trigonometric functions & General Solution of Trigonometric Equations

[1] P Q. Fig. 3.1

Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony

Partial Differential Equations in Biology The boundary element method. March 26, 2013

Second Order RLC Filters

Concrete Mathematics Exercises from 30 September 2016

ω ω ω ω ω ω+2 ω ω+2 + ω ω ω ω+2 + ω ω+1 ω ω+2 2 ω ω ω ω ω ω ω ω+1 ω ω2 ω ω2 + ω ω ω2 + ω ω ω ω2 + ω ω+1 ω ω2 + ω ω+1 + ω ω ω ω2 + ω

Fourier Series. MATH 211, Calculus II. J. Robert Buchanan. Spring Department of Mathematics

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ «ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ» ΚΑΤΕΥΘΥΝΣΗ «ΕΥΦΥΕΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΕΠΙΚΟΙΝΩΝΙΑΣ ΑΝΘΡΩΠΟΥ - ΥΠΟΛΟΓΙΣΤΗ»

ST5224: Advanced Statistical Theory II

Approximation of distance between locations on earth given by latitude and longitude

Galatia SIL Keyboard Information

Section 9.2 Polar Equations and Graphs

Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση

Solutions to Exercise Sheet 5

CYTA Cloud Server Set Up Instructions

Démographie spatiale/spatial Demography

Right Rear Door. Let's now finish the door hinge saga with the right rear door

Potential Dividers. 46 minutes. 46 marks. Page 1 of 11

Lecture 2. Soundness and completeness of propositional logic

On a four-dimensional hyperbolic manifold with finite volume

Econ 2110: Fall 2008 Suggested Solutions to Problem Set 8 questions or comments to Dan Fetter 1

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

Chapter 6: Systems of Linear Differential. be continuous functions on the interval

Λειτουργικά Συστήματα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΟ ΚΙΤ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS EV3

Αλγόριθμοι και πολυπλοκότητα NP-Completeness (2)

( y) Partial Differential Equations

Statistical Inference I Locally most powerful tests

Ασφάλεια Πληροφοριακών και Επικοινωνιακών Συστημάτων

Λειτουργικά Συστήματα. Ενότητα # 6: Αδιέξοδα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

FSM Toolkit Exercises

Math221: HW# 1 solutions

Transcript:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Κεφάλαιο 6ο: Αδιέξοδα 1

3.1 Εισαγωγή Αδιέξοδο = ένα σύνολο από διεργασίες που δημιουργούν μια κυκλική αλυσίδα όπου κάθε process στην αλυσίδα δεν μπορεί να προχωρήσει και περιμένει για κάποιο γεγονός που μπορεί να προκληθεί μόνο από κάποιο άλλο μέλος της αλυσίδας. Τα γεγονότα για τα οποία περιμένουν οι διεργασίες είναι η απελευθέρωση κάποιου πόρου. Για να χρησιμοποιήσουν κάποιο πόρο οι διεργασίες πρέπει να ακολουθήσουν το εξής πρωτόκολλο. Να: 1. ζητήσουν τους πόρους: Αν δεν είναι διαθέσιμοι (δηλ. κάποια άλλη διαδικασία τους χρησιμοποιεί) τότε η διεργασία που το ζητάει μπλοκάρει. 2. Κλειδώνουν και χρησιμοποιούν τον πόρο, αν είναι ελεύθερος 3. Απελευθερώνουν τον πόρο, όταν τελειώσουν. 2

3.1 Εισαγωγή Αναγκαίες Συνθήκες για Αδιέξοδο: mutual exclusion (αμοιβαίος αποκλεισμός): Μόνο μια διεργασία μπορεί να χρησιμοποιεί έναν πόρο. Κατοχή και αναμονή (hold & wait): Οι διεργασίες που συμμετέχουν στο αδιέξοδο πρέπει και να κατέχουν κάποιο πόρο αλλά και να περιμένουν για κάποιο πόρο. Μη προεκτοπισμός (No preemption): Μόνο η κατέχουσα διεργασία μπορεί ν' απελευθερώσει τον πόρο - δηλ. ο πόρος δεν μπορεί ν' αφαιρεθεί από τη διεργασία. κυκλική αναμονή (circular wait): Ν διεργασίες, όπου κάθε διεργασία περιμένει για έναν πόρο που τον κατέχει η επόμενη διεργασία στην αλυσίδα. Να σημειωθεί, ότι οι «πόροι» μπορεί να είναι λογισμικό και υλικό (π.χ. mutex, κλειδιά για αρχεία, ή δίσκοι, εκτυπωτές, τμήματα μνήμης, κ.λπ). 3

Μοντέλα Αδιεξόδων Το πρόβλημα μοντελοποιείται ως εξής: Δημιουργείται ένας κατευθυνόμενος γράφος. Κόμβοι του γράφου είναι οι διεργασίες και οι πόροι. Η ακμή P R σημαίνει ότι η διεργασία P περιμένει για τον πόρο R. Η ακμή R P σημαίνει ότι η διεργασία P κατέχει τον πόρο R. Στο σύστημα υπάρχει deadlock εάν και μόνο εάν ο κατευθυνόμενος γράφος περιέχει ένα κύκλο! Έτσι, το σύστημα μπορεί να χρησιμοποιεί ένα τέτοιο γράφο και έναν αλγόριθμο ανίχνευσης κύκλων για να ανιχνεύει αδιέξοδα. 4

Γενικές Λύσεις Υπάρχουν 4 γενικές στρατηγικές για την αντιμετώπιση του προβλήματος: Στρουθοκαμηλισμός: Κάνε τίποτα. Αποφυγή deadlock (προσέχεις πότε δίνονται οι πόροι στις διεργασίες) Ανίχνευση και ανάνηψη (χρήση του γράφου). Πρόληψη (σιγουρεύει ότι μια από τις 4 αναγκαίες συνθήκες δεν μπορεί να ισχύσει). Στρουθοκαμηλισμός: Η αντιμετώπιση του προβλήματος των αδιεξόδων «κοστίζει» ακριβά. Γι αυτό, πολλά Λ.Σ. επιλέγουν να μην αντιμετωπίζουν καθόλου το πρόβλημα - ούτε καν ανίχνευση!!! Καθιστούν έτσι υπεύθυνες τις εφαρμογές για τη λύση του προβλήματος. Το UNIX ανήκει σ' αυτή την κατηγορία (όπως και όλα τα σύγχρονα Λ.Σ.)... Γιατί; 5

3.2 Αποφυγή Αδιεξόδων Ας υποθέσουμε ότι για κάθε διεργασία, όταν αυτή αρχίζει, το σύστημα γνωρίζει το μέγιστο αριθμό και τον τύπο κάθε πόρου που θα χρειαστεί η διεργασία. Ο «αλγόριθμος του τραπεζίτη» «Banker's algorithm» μπορεί να χρησιμοποιηθεί τότε. Βασίζεται στην έννοια των ασφαλών καταστάσεων (safe states). Ένα σύστημα σε μια χρονική στιγμή βρίσκεται σε μια ασφαλή κατάσταση αν: δεν υπάρχει deadlock, και υπάρχει τρόπος ικανοποίησης των υπόλοιπων αιτημάτων για πόρους (με το να εξυπηρετηθούν οι αιτήσεις των διεργασιών με όποια σειρά). 6

3.2 Αποφυγή Αδιεξόδων Παράδειγμα: Έχει Max P1 3 9 P2 2 4 P3 2 7 Ελεύθεροι πόροι: 3 Αυτό αντιπροσωπεύει μια ασφαλή κατάσταση γιατί: μπορούμε να δώσουμε 2 (απ' τους 3) ελεύθερους πόρους στο P2. όταν τελειώσει θα έχουμε 5 ελεύθερους πόρους που δίνουμε στο P3 και όταν τελειώσει δίνουμε 6 στο P1 και έτσι όλες τελειώνουν χωρίς αδιέξοδο. Αν τώρα το P1 κατείχε 4 (αντί για 3) πόρους το σύστημα δεν θα ήταν σε ασφαλή κατάσταση. Γιατί; 7

Ο αλγόριθμος του τραπεζίτη (Banker's algorithm) Για κάθε αίτηση για έναν πόρο: Εξέτασε, αν δινόταν ο πόρος, αν το σύστημα θα είναι σε ασφαλή κατάσταση: Αν ναι, τότε δώσε τον πόρο Αν όχι, τότε δεν δίνεται Για να ελεγχθεί αν το σύστημα είναι σε ασφαλή κατάσταση: εξετάζεται το: αν δοθούν οι ελεύθεροι πόροι σε κάποια διεργασία, τότε καλύπτονται οι ανάγκες της; Αν υπάρχει κάποια τέτοια διεργασία, τότε αυτή θεωρείται ότι τελείωσε (ελευθερώνοντας πόρους). Μετά, επαναλαμβάνεται η παραπάνω διαδικασία και αν όλες οι διεργασίες εντέλει θεωρηθούν τελειωμένες, τότε το σύστημα είναι σε ασφαλή κατάσταση. Αλλιώς, δεν είναι. 8

Ο αλγόριθμος του τραπεζίτη (Banker's algorithm) Ο παραπάνω αλγόριθμος χρησιμοποιείται για συστήματα μ' ένα μόνο τύπο πόρων. Ο αλγόριθμος μπορεί εύκολα να τροποποιηθεί για πολλούς τύπους. Αντί για μια ακέραια μεταβλητή για τους πόρους, υπάρχουν οι εξής πίνακες: Has[N] όπου Ν είναι ο αριθμός τύπων πόρων (δηλ. Has[i], i<=ν για το process P δείχνει πόσους πόρους τύπου i το P κατέχει). Wants[N] που ορίζεται όμοια και εκφράζει πόσους πόρους κάθε τύπου χρειάζεται κάθε process. Free[N]: δηλώνει πόσους πόρους κάθε τύπου είναι ελεύθερα. Το μεγαλύτερο πρόβλημα του αλγόριθμου αυτού είναι η υπόθεσή του: Είναι πολύ σπάνιο να ξέρουμε από πριν τις αιτήσεις για πόρους που πρόκειται να υποβληθούν αργότερα από κάθε process! 9

3.3 Ανίχνευση και Ανάνηψη Η στρατηγική αυτή βασίζεται στη χρήση του κατευθυνόμενου γράφου που παρουσιάσαμε πριν, αφ' ένός. Αφ' ετέρου, βασίζεται στην ύπαρξη ενός αλγόριθμου που, δεδομένου ενός κατευθυνόμενου γράφου, βρίσκει αν υπάρχει κύκλος. Εφ' όσον ανιχνευθεί ένας κύκλος-deadlock, η ανάνηψη μπορεί να βασισθεί (και συνήθως βασίζεται) στον τερματισμό (killing) μερικών διεργασιών. Η επιλογή της διεργασίας-θύματος: μπορεί να γίνει ανάμεσα στις διεργασίες που συμμετέχουν στο αδιέξοδο. (Τα κριτήρια που χρησιμοποιούνται συνήθως είναι η ηλικία ή ο αριθμός πόρων που κατέχει, κ.λπ). ή μπορεί να γίνει ανάμεσα και σε άλλες διεργασίες π.χ. μπορεί να τερματισθεί μια "μεγάλη" διεργασία που κατέχει πολλά resources για τα οποία περιμένει κάποια διεργασία που είναι σε αδιέξοδο. 10

3.4 Πρόληψη Αδιεξόδων Εγγυώνται, αυτές οι στρατηγικές, ότι μια από τις 4 αναγκαίες συνθήκες δεν μπορεί να συμβεί/ισχύσει. Mutual Exclusion: πολλοί πόροι απαιτούν αποκλεισμό (π.χ. ταινίες, εκτυπωτές, mutex) δεν μπορούμε σε γενικές γραμμές να τον αποφύγουμε. Hold & Wait: αποφεύγεται αν στη αρχή των διεργασιών γίνουν όλες οι αιτήσεις για όλα τους πόρους που χρειάζονται. Αλλά, όπως προείπαμε, αυτή η πληροφορία δεν υπάρχει. Επίσης ο προεκτοπισμός σε πολλούς τύπους πόρων (π.χ. εκτυπωτές) είναι αδύνατος. Circular Wait: Μπορεί ν' αποφευχθεί με τον εξής τρόπο: σ' όλους τους πόρους δίνεται ένας αύξοντας αριθμός. Όλες οι διεργασίες αναγκάζονται να ζητούν πόρους με την σειρά που αντιστοιχεί στους αριθμούς τους έτσι δεν μπορεί να προκύψει κυκλική αλυσίδα. 11

Preemptable and Nonpreemptable Resources Sequence of events required to use a resource: 1. Request the resource. 2. Use the resource. 3. Release the resource. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Hall, Inc. All rights reserved. 0-13-

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Resource Acquisition (1) Figure 6-1. Using a semaphore to protect resources. (a) One resource. (b) Two resources.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Resource Acquisition (2) Figure 6-2. (a) Deadlockfree code.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Resource Acquisition (3) Figure 6-2. (b) Code with a potential deadlock.

Introduction To Deadlocks Deadlock can be defined formally as follows: 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. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Hall, Inc. All rights reserved. 0-13-

Conditions for Resource Deadlocks 1. Mutual exclusion condition 2. Hold and wait condition. 3. No preemption condition. 4. Circular wait condition. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Hall, Inc. All rights reserved. 0-13-

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Deadlock Modeling (1) Figure 6-3. Resource allocation graphs. (a) Holding a resource. (b) Requesting a resource. (c) Deadlock.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Deadlock Modeling (2) Figure 6-4. An example of how deadlock occurs and how it can be avoided.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Deadlock Modeling (3) Figure 6-4. An example of how deadlock occurs and how it can be avoided.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Deadlock Modeling (4) Figure 6-4. An example of how deadlock occurs and how it can be avoided.

Deadlock Modeling (5) Strategies for dealing with deadlocks: 1. Just ignore the problem. 2. Detection and recovery. Let deadlocks occur, detect them, take action. 3. Dynamic avoidance by careful resource allocation. 4. Prevention, by structurally negating one of the four required conditions. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Hall, Inc. All rights reserved. 0-13-

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Deadlock Detection with One Resource of Each Type (1) Figure 6-5. (a) A resource graph. (b) A cycle extracted from (a).

Deadlock Detection with One Resource of Each Type (2) Algorithm for detecting deadlock: 1. For each node, N in the graph, perform the following five steps with N as the starting node. 2. Initialize L to the empty list, designate all arcs as unmarked. 3. Add current node to end of L, check to see if node now appears in L two times. If it does, graph contains a cycle (listed in L), algorithm terminates. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Hall, Inc. All rights reserved. 0-13-

Deadlock Detection with One Resource of Each Type (3) 4. From given node, see if any unmarked outgoing arcs. If so, go to step 5; if not, go to step 6. 5. Pick an unmarked outgoing arc at random and mark it. Then follow it to the new current node and go to step 3. 6. If this is initial node, graph does not contain any cycles, algorithm terminates. Otherwise, dead end. Remove it, go back to previous node, make that one current node, go to step 3. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Hall, Inc. All rights reserved. 0-13-

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Deadlock Detection with Multiple Resources of Each Type (1) Figure 6-6. The four data structures needed by the deadlock detection algorithm.

Deadlock Detection with Multiple Resources of Each Type (2) Deadlock detection algorithm: 1. Look for an unmarked process, P i, for which the i-th row of R is less than or equal to A. 2. If such a process is found, add the i-th row of C to A, mark the process, and go back to step 1. 3. If no such process exists, the algorithm terminates. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Hall, Inc. All rights reserved. 0-13-

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Deadlock Detection with Multiple Resources of Each Type (3) Figure 6-7. An example for the deadlock detection algorithm.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Hall, Inc. All rights reserved. 0-13- Recovery from Deadlock Recovery through preemption Recovery through rollback Recovery through killing processes

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Deadlock Avoidance Figure 6-8. Two process resource trajectories.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Safe and Unsafe States (1) Figure 6-9. Demonstration that the state in (a) is safe.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Safe and Unsafe States (2) Figure 6-10. Demonstration that the state in (b) is not safe.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- The Banker s Algorithm for a Single Resource Figure 6-11. Three resource allocation states: (a) Safe. (b) Safe. (c) Unsafe.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- The Banker s Algorithm for Multiple Resources (1) Figure 6-12. The banker s algorithm with multiple resources.

The Banker s Algorithm for Multiple Resources (2) Algorithm for checking to see if a state is safe: 1. Look for row, R, whose unmet resource needs all A. If no such row exists, system will eventually deadlock since no process can run to completion 2. Assume process of row chosen requests all resources it needs and finishes. Mark process as terminated, Tanenbaum, Modern Operating add all its resources Systems 3 e, (c) 2008 to Prenticethe A vector. Hall, Inc. All rights reserved. 0-13-

Deadlock Prevention Attacking the mutual exclusion condition Attacking the hold and wait condition Attacking the no preemption condition Attacking the circular wait condition Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Hall, Inc. All rights reserved. 0-13-

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Attacking the Circular Wait Condition Figure 6-13. (a) Numerically ordered resources. (b) A resource graph.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Approaches to Deadlock Prevention Figure 6-14. Summary of approaches to deadlock prevention.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Hall, Inc. All rights reserved. 0-13- Other Issues Two-phase locking Communication deadlocks Livelock Starvation

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Communication Deadlocks Figure 6-15. A resource deadlock in a network.

Livelock Figure 6-16. Busy waiting that can lead to livelock. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-