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

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

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

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

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

Αδιέξοδα (Deadlocks)

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

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

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

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

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

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

The challenges of non-stable predicates


Locking to ensure serializability

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Αδιέξοδα

EE512: Error Control Coding

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

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

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

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

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

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

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

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

Ordinal Arithmetic: Addition, Multiplication, Exponentiation and Limit

Fractional Colorings and Zykov Products of graphs

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Αδιέξοδα

2 Composition. Invertible Mappings

The Simply Typed Lambda Calculus

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

C.S. 430 Assignment 6, Sample Solutions

Instruction Execution Times

Section 8.3 Trigonometric Equations

TMA4115 Matematikk 3

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

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

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

Assalamu `alaikum wr. wb.

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

Bounding Nonsplitting Enumeration Degrees

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

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

Galatia SIL Keyboard Information

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

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

the total number of electrons passing through the lamp.

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

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

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

Inverse trigonometric functions & General Solution of Trigonometric Equations

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

Block Ciphers Modes. Ramki Thurimella

[1] P Q. Fig. 3.1

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

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

Example Sheet 3 Solutions

HY150a Φροντιστήριο 3 24/11/2017

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

1) Formulation of the Problem as a Linear Programming Model

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

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

Main source: "Discrete-time systems and computer control" by Α. ΣΚΟΔΡΑΣ ΨΗΦΙΑΚΟΣ ΕΛΕΓΧΟΣ ΔΙΑΛΕΞΗ 4 ΔΙΑΦΑΝΕΙΑ 1

CYTA Cloud Server Set Up Instructions

Numerical Analysis FMN011

Advanced Subsidiary Unit 1: Understanding and Written Response

Homework 3 Solutions

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

Finite Field Problems: Solutions

derivation of the Laplacian from rectangular to spherical coordinates

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

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

ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΕΝΙΣΧΥΣΗ ΤΩΝ ΚΟΜΒΩΝ ΟΠΛΙΣΜΕΝΟΥ ΣΚΥΡΟΔΕΜΑΤΟΣ ΜΕ ΒΑΣΗ ΤΟΥΣ ΕΥΡΩΚΩΔΙΚΕΣ

UNIVERSITY OF CALIFORNIA. EECS 150 Fall ) You are implementing an 4:1 Multiplexer that has the following specifications:

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

ANSWERSHEET (TOPIC = DIFFERENTIAL CALCULUS) COLLECTION #2. h 0 h h 0 h h 0 ( ) g k = g 0 + g 1 + g g 2009 =?

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

Other Test Constructions: Likelihood Ratio & Bayes Tests

Math 6 SL Probability Distributions Practice Test Mark Scheme

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

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

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

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

ES440/ES911: CFD. Chapter 5. Solution of Linear Equation Systems

ST5224: Advanced Statistical Theory II

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

(C) 2010 Pearson Education, Inc. All rights reserved.

Test Data Management in Practice

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

2. THEORY OF EQUATIONS. PREVIOUS EAMCET Bits.

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ342: Βάσεις Δεδομένων. Χειμερινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ. Επερωτήσεις SQL

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

Section 9.2 Polar Equations and Graphs

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

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

Lecture 2. Soundness and completeness of propositional logic

Σχέσεις, Ιδιότητες, Κλειστότητες

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

Transcript:

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

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

Resource Acquisition (1) Figure 6-1. Using a semaphore to protect resources. (a) One resource. (b) Two resources.

Resource Acquisition (2) Figure 6-2. (a) Deadlock-free code. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

Resource Acquisition (3) Figure 6-2. (b) Code with a potential deadlock. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13- 6006639

Αδιέξοδα Ένα σύνολο διεργασιών βρίσκεται σε αδιέξοδο αν κάθε διεργασία του συνόλου περιμένει ένα συμβάν που μόνο μία άλλα διεργασία του συνόλου μπορεί να περιμένει. Θεωρητικά οι διεργασίες διαθέτουν ένα μόνο νήμα, και δεν συμβαίνουν διακοπές αφύπνισης. 6

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

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

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-Hall, Inc. All rights reserved. 0-13-6006639

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-Hall, Inc. All rights reserved. 0-13-6006639

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-Hall, Inc. All rights reserved. 0-13-6006639

Deadlock Modeling (4) Figure 6-4. An example of how deadlock occurs and how it can be avoided. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice- Hall, Inc. All rights reserved. 0-13-6006639

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

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

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

Στρατηγικές Αντιμετώπισης Εντοπισμός/ Ένας πόρος από κάθε είδος Αλγόριθμος εντοπισμού: 1.Για κάθε κόμβο Ν στο γράφο, εκτέλεση των επόμενων 5 βημάτων του αλγορίθμου, με σημείο εκκίνησης το N. 2.Αρχικοποίηση της μιας κενής λίστας L, και χαρακτηρισμός όλων των τόξων ως ασημείωτα. 3.Εισαγωγή του τρέχοντα κόμβου στο τέλος της λίστας L, έλεγχος αν ο κόμβος εμφανίζεται δύο φορές στη λίστα L. Αν ο κόμβος εμφανίζεται δύο φορές, τερματισμός. 4.Για τον τρέχοντα κόμβο, έλεγχος αν υπάρχουν εξερχόμενα ασημείωτα τόξα. Αν ναι, συνέχεια στο βήμα 5, αλλιώς συνέχεια στο βήμα 6. 5.Επιλογή ενός εξερχόμενου ασημείωτου τόξου και σημείωσή του. Επιλογή του κόμβου που δείχνει το τόξο, συνέχεια στο βήμα 3. 6.Ο κόμβος δεν έχει ασημείωτα εξερχόμενα τόξα. Οπισθοδρόμηση στο προηγούμενο κόμβο και συνέχεια στο βήμα 3. Αν πρόκειται για τον αρχικό κόμβο, ο γράφος δεν περιέχει κύκλους, τερματισμός.

Στρατηγικές Αντιμετώπισης Εντοπισμός/ Ένας πόρος από κάθε είδος Κόμβος Λίστα Βήματα Τόξο R R 1, 2, 3, 4, 5 R A A R, A 3, 4, 5 A S S R, A, S 3, 4, 6 Α R, A 3, 4, 6 R R 3, 4, 6 B B 3, 4, 5 B T T B, T 3, 4, 5 T E E B, T, E 3, 4, 5 E V V B, T, E, V 3, 4, 5 V G G B, T, E, V, G 3, 4, 5 G U U B, T, E, V, G, U 3, 4, 5 U D D B, T, E, V, G, U, D 3, 4, 5 D S S B, T, E, V, G, U, D, S 3, 4, 6 D B, T, E, V, G, U, D 3, 4, 5 D T T B, T, E, V, G, U, D, T 3, Tερματισμός

[R] [R.A] [R, A, S] [B] [B.T] [B,T,E] [B,T,E,V] [B,T,E,V,G] [B,T,E,V,G,U] [B,T,E,V,G,U,D] [B,T,E,V,G,U,D,S] 18

Deadlock Detection with Multiple Resources of Each Type (1) Figure 6-6. The four data structures needed n by the deadlock k 1 C + Al = El detection kl algorithm. D Ισχύει: n k =1 C + A = kl l E l Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

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-6006639

Deadlock Detection with Multiple Resources of Each Type (3) Figure 6-7. An example for the deadlock detection algorithm. If (2) need another CD-ROM deadlock Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

Στρατηγικές Αντιμετώπισης Ανάκαμψη από αδιέξοδο Ανάκαμψη μέσω προεκτόπισης Ανάκαμψη μέσω επιστροφής (rollback) Ανάκαμψη μέσω εξάλειψης (kill) Αφαίρεση πόρου από μια διεργασία και προσωρινή εκχώρηση σε άλλη διεργασία Εξαρτάται από τον τύπο του πόρου (προεκτοπίσιμος) Περιοδικός έλεγχος διεργασιών σε ειδικά σημεία ελέγχου (checkpoints) Διαδοχικές καταγραφές της εικόνας (image) της διεργασίας, της δέσμευσης πόρων κ.λπ. Αν ανιχνευτεί αδιέξοδο η διεργασία διακόπτεται, οι λειτουργίες μέχρι το τελευταίο checkpoint ακυρώνονται (rollback), οι πόροι αποδεσμεύονται Μετά τη λύση του αδιεξόδου η διεργασία επανέρχεται στη κατάσταση του τελευταίου checkpoint Άτσαλος αλλά απλός τρόπος επίλυσης αδιεξόδων Εξάλειψη (kill -9) μιας διεργασίας στο κύκλο του αδιεξόδου, ενώ οι άλλες διεργασίες συνεχίζουν Επιλογή διεργασίας που μπορεί να ξεκινήσει από την αρχή χωρίς πρόβλημα

Recovery from Deadlock Recovery through preemption (μερικές φορές με ανθρώπινη παρέμβαση για παράδειγμα ανθρώπινος χειριστής σε εκτυπωτή) Recovery through rollback (περιοδικά σημεία ελέγχου όπου κάποιοι πόροι είναι διαθέσιμοι) Recovery through killing processes Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

Abort all deadlocked processes Abort one process at a time until the deadlock cycle is eliminated In which order should we choose to abort? Priority of the process How long process has computed, and how much longer to completion Resources the process has used Resources process needs to complete How many processes will need to be terminated Is process interactive or batch?

Αποφυγή αδιεξόδου (μία μία αίτηση όχι όλες μαζί) To κρίσιμο σημείο είναι η μετακίνηση από το s στο t. Στο σημείο s δεν έπρεπε να δοθεί ο πόρος. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentie-Hall, Inc. All rights reserved. 0-13-6006639

Αποφυγή Αδιεξόδων Τροχιές πόρων Ποια είναι η κυριότερη διαφορά μεταξύ του μοντέλου της εικόνας και ασφαλούς και ανασφαλούς κατάστασης. Ποια είναι η συνέπεια της διαφοράς αυτής; Απάντηση: Το μοντέλο που φαίνεται στην εικόνα απαιτεί γνώση του πότε μια διεργασία απελευθερώνει τους πόρους της. Από την άλλη πλευρά, η διαπίστωση για το εάν μια κατάσταση είναι ασφαλής ή ανασφαλής, δεν απαιτεί αυτή τη γνώση. Μια συνέπεια αυτού είναι ότι το μοντέλο της εικόνας μπορεί να χρησιμοποιηθεί για να προσδιορίσει τα παραλληλόγραμμα, όπως αυτό που οριοθετείται από τα Ι 1, Ι 2, Ι 5, και Ι 6, που εγγυάται ότι το σύστημα οδηγείται τελικά σε αδιέξοδο, διότι μια ανασφαλής κατάσταση σημαίνει ότι δεν υπάρχει καμία εγγύηση ότι δεν θα συμβεί ένα αδιέξοδο.

Αποφυγή Αδιεξόδων Τροχιές πόρων Θεωρητικά οι γράφοι των τροχιών πόρων χρησιμοποιούνται για την αποφυγή των αδιεξόδων. Αν εφαρμοστεί έξυπνος χρονοπρογραμματισμός, το σύστημα μπορεί να αποφύγει τις ανασφαλείς περιοχές. Αναφέρετε ένα πρακτικό πρόβλημα όπου είναι δυνατόν να εφαρμοστεί η μέθοδος αυτή. Απάντηση: Η μέθοδος μπορεί να χρησιμοποιηθεί μόνο για την καθοδήγηση του χρονοπρογραμματισμού, εάν είναι γνωστή εκ των προτέρων η ακριβής στιγμή κατά την οποία ένας πόρος πρόκειται να απαιτηθεί. Στην πράξη, αυτό συμβαίνει σπάνια.

Αποφυγή αδιεξόδου Requires that the system has some additional a priori information available. Simplest and most useful model requires that each process declare the maximum number of resources of each type that it may need. The deadlock-avoidance algorithm dynamically examines the resource-allocation state to ensure that there can never be a circular-wait condition. Resource-allocation state is defined by the number of available and allocated resources, and the maximum demands of the processes.

Resource-Allocation Graph

Unsafe State In Resource-Allocation Graph

Resource-Allocation Graph Algorithm Suppose that process P i requests a resource R j The request can be granted only if converting the request edge to an assignment edge does not result in the formation of a cycle in the resource allocation graph

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

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

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-Hall, Inc. All rights reserved. 0-13-6006639

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-Hall, Inc. All rights reserved. 0-13-6006639

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

Deadlock Avoidance Banker's Algorithm for a Single Resource Resource allocation state has max has max has max A 60 6 A 35 61 6 A 1 6 B 50 5 B 351 5 B 2 5 C 40 4 C 42 4 C 2 4 D 70 0 7 D 474 7 D 4 7 Free: 10 Free: 45 62 Free: 1

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

The Banker s Algorithm for Multiple Resources (2) Algorithm for checking to see if a state is safe: 1. Look for row whose unmet resource needs all Free (<=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, add all its resources to the Free (A) vector. 3. Repeat steps 1 and 2 until either all processes marked terminated (initial state was safe) or no process left whose resource needs can be met (there is a deadlock). Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

The Banker s Algorithm for Multiple Resources (1) Figure 6-12. The banker s algorithm with multiple resources. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

Banker s Algorithm for Multiple Resources E=( 6 3 4 2 ) Assigned resources A 3 0 1 1 P=( 5 3 2 2 ) Resources still needed A=( 1 0 2 0 ) A 1 1 0 0 B 0 1 0 0 B 0 1 1 2 C 1 1 1 0 C 3 1 0 0 D 1 1 0 1 E 0 0 0 0 D 0 0 1 0 E 2 1 1 0 An example for the banker algorithm

Banker s Algorithm for Multiple Resources E=( 6 3 4 2 ) Assigned resources A 3 0 1 1 P=( 4 2 2 1 ) Resources still needed A=( 2 1 2 1 ) A 1 1 0 0 B 0 1 0 0 B 0 1 1 2 C 1 1 1 0 C 3 1 0 0 D 0 0 0 0 E 0 0 0 0 D - - - - E 2 1 1 0 An example for the banker algorithm

Banker s Algorithm for Multiple Resources E=( 6 3 4 2 ) Assigned resources A 0 0 0 0 P=( 1 2 1 0 ) Resources still needed A=( 5 1 3 2 ) A - - - - B 0 1 0 0 B 0 1 1 2 C 1 1 1 0 C 3 1 0 0 D 0 0 0 0 E 0 0 0 0 D - - - - E 2 1 1 0 An example for the banker algorithm

Banker s Algorithm for Multiple Resources E=( 6 3 4 2 ) Assigned resources A 0 0 0 0 P=( 1 1 1 0 ) Resources still needed A=( 5 2 3 2 ) A - - - - B 0 0 0 0 B - - - - C 1 1 1 0 C 3 1 0 0 D 0 0 0 0 E 0 0 0 0 D - - - - E 2 1 1 0 An example for the banker algorithm

Banker s Algorithm for Multiple Resources E=( 6 3 4 2 ) Assigned resources A 0 0 0 0 P=( 0 0 0 0 ) Resources still needed A=( 6 3 4 2 ) A - - - - B 0 0 0 0 B - - - - C 0 0 0 0 C - - - - D 0 0 0 0 E 0 0 0 0 D - - - - E 2 1 1 0 An example for the banker algorithm

Banker s Algorithm for Multiple Resources Assigned resources A 3 0 1 1 SAFE E=( 6 3 4 2 P=( 5 3 2 2 ) Resources still needed A=( 1 0 2 0 ) A 1 1 0 0 ) B 0 1 0 0 B 0 1 1 2 C 1 1 1 0 C 3 1 0 0 D 1 1 0 1 E 0 0 0 0 D 0 0 1 0 E 2 1 1 0 An example for the banker algorithm

Banker s Algorithm for Multiple Resources E=( 6 3 4 2 ) Assigned resources A 0 0 0 0 P=( 0 0 0 0 ) Resources still needed A=( 6 3 4 2 ) A - - - - B 0 0 0 0 B - - - - C 0 0 0 0 C - - - - D 0 0 0 0 E 0 0 0 0 D - - - - E 2 1 1 0 An example for the banker algorithm

Banker s Algorithm for Multiple Resources Assigned resources A 3 0 1 1 SAFE E=( 6 3 4 2 P=( 5 3 2 2 ) Resources still needed A=( 1 0 2 0 ) A 1 1 0 0 ) B 0 1 0 0 B 0 1 1 2 C 1 1 1 0 C 3 1 0 0 D 1 1 0 1 E 0 0 0 0 D 0 0 1 0 E 2 1 1 0 An example for the banker algorithm

Tι συμβαίνει αν ζητήσει το Β ένα εκτυπωτή, (SAFE) και μετά το Ε (UNSAFE) παράδειγμα

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

Deadlock Prevention Restrain the ways request can be made Mutual Exclusion not required for sharable resources; must hold for nonsharable resources Hold and Wait must guarantee that whenever a process requests a resource, it does not hold any other resources Require process to request and be allocated all its resources before it begins execution, or allow process to request resources only when the process has none Low resource utilization; starvation possible

Deadlock Prevention (Cont.) No Preemption If a process that is holding some resources requests another resource that cannot be immediately allocated to it, then all resources currently being held are released Preempted resources are added to the list of resources for which the process is waiting Process will be restarted only when it can regain its old resources, as well as the new ones that it is requesting Circular Wait impose a total ordering of all resource types, and require that each process requests resources in an increasing order of enumeration

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-Hall, Inc. All rights reserved. 0-13-6006639

(i) Αν i>j η Β δεν μπορεί να ζητήσει τον j αλλιώς η Α δεν μπορεί να ζητήσει το I (ii) Aυτό ισύει και για περισσόρες διεργασίες. Μία έχει τον μεγαλύτερο αριθμό, και είναι αυτή που θα ολοκληρωθεί (iii) Aπαγορευεται σε μία διαδικασία να ζητά πόρους με μικρότερο αριθμό από αυτους που κατέχει. (iv) Η διαδικασία που έχει το μεγαλύτερο θα ολοκληρωθεί, μετά η επόμενη με μεγαλύτερο θα ολοκληρωθεί κ.ο.κ. 54

Deadlock Prevention Circular Wait Condition Impose an order of requests for all resources Method Assign a unique id to each resource All resource requests must be in an ascending order of the ids Release resources in a descending order Can you prove this method has no circular wait? Is this generally feasible?

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-6006639

Livelock Figure 6-16. Busy waiting that can lead to livelock. Ιt also holds for process tables and files tables (busy waiting) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

Ανοιχτά προβλήματα Ανιχνευση αδιεξόδων από λανθασμένη χρήση κλειδωμάτων και σημαφόρων Αποτροπή αδιεξόδων μεταξύ νημάτων java Αντιμετώπιση αδιεξόδων σε δίκτυα Μοντελοποίηση αδιεξόδων σε συστήματα ροής δεδομένων Δυναμικό αδιεξοδο Διερεύνηση συναφών προβλημάτων (λιμοκτονια) 58