Ατοµικά Αντικείµενα. Ατοµικά Αντικείµενα Παναγιώτα Φατούρου

Σχετικά έγγραφα
ΑΤΟΜΙΚΑ ΑΝΤΙΚΕΙΜΕΝΑ Ένα ατοµικό αντικείµενο κάποιου τύπου µοιάζει µε µια κοινή µεταβλητή αυτού του τύπου. Ένα ατοµικό αντικείµενο βρίσκεται σε µια κατ

ΒΑΣΙΚΑ ΑΤΟΜΙΚΑ ΑΝΤΙΚΕΙΜΕΝΑ Καταχωρητής Read/Write Αποθηκεύει µια τιµή από κάποιο σύνολο και υποστηρίζει δύο λειτουργίες: read(r): επιστρέφει την τιµή

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Γιατί υϖάρχει τέτοια καθολική κατάσταση;

Παράδειγµα: Προσοµοίωση µιας ουράς FIFO Οι λειτουργίες που υποστηρίζονται από µια ουρά FIFO είναι: [enq(q,x), ack(q)] [deq(q), return(q,x)] όπου x είν

Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται ως

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΤΟΜΙΚΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ. Υποβάλλεται στην

Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται ως

Ιδιοκτησία Αντικειµένου


Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται ως

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Διάλεξη 8: Πρόβλημα Αμοιβαίου Αποκλεισμού. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Αιτιώδεις Σχέσεις και Χρονισµός. Παναγιώτα Φατούρου Αρχές Κατανεµηµένου Υπολογισµού

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Αρχιτεκτονική Υπολογιστών

Αδιέξοδα (Deadlocks)

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Κατανεµηµένος Υπολογισµός Εαρινό Εξάµηνο Ακ. Έτους ιδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία

Αλγόριθµοι Οπισθοδρόµησης

Κεφάλαιο 10 ο Υποπρογράµµατα

Διάλεξη 13: Κατανεμημένη Κοινόχρηστη Μνήμη. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

ΕΠΑΛΗΘΕΥΣΗ ΠΡΟΓΡΑΜΜΑΤΩΝ Ι

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Αμοιβαίος αποκλεισμός

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις

Κατανεμημένα Συστήματα Ι

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 9: Αλγόριθμοι Αμοιβαίου Αποκλεισμού με τη χρήση μεταβλητών Ανάγνωσης/Εγγραφής. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Κεφάλαιο 3. Διδακτικοί Στόχοι

Κατανεμημένα Συστήματα Ι

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Η σχέση συνέβη-πριν

Διάλεξη 14: Ατομική ΚΚΜ Εγγραφής/Ανάγνωσης στην Παρουσία Σφαλμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

for for for for( . */

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε:

Δομές Δεδομένων & Αλγόριθμοι

Συνεπείς καθολικές καταστάσεις & επιβεβαίωση ιδιοτήτων. Κατανεμημένα Συστήματα 1

Εικονική Μνήμη (Virtual Memory)

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

Καθολικέςκαταστάσεις. Ορισµοί Κατασκευή καθολικών καταστάσεων Παθητική στρατηγική Ενεργητική στρατηγική. Κατανεµηµένα Συστήµατα 04-1

Επιτεύγµατα των Λ.Σ.

Αποτίµησηκαθολικού κατηγορήµατος

Εισαγωγή στην Πληροφορική

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

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

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

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Η σχέση συνέβη-πριν

2.4 Κλασσικά Προβλήματα IPC

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

Ανάλυση της Ορθότητας Προγραμμάτων

Παραλληλισµός Εντολών (Pipelining)

οµήτης παρουσίασης Marzullo και Neiger αλγόριθµος Παράδειγµα Distributed Debugging Εισαγωγικά


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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

Συνεπής παρατήρηση εκτέλεσης & συνεπείς καθολικές καταστάσεις. Κατανεμημένα Συστήματα 1

Λύσεις Σειράς Ασκήσεων 5

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Αλγόριθµοι Τύπου Μείωσης Προβλήµατος

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

Σύνοψη Μαθήµατος. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Απαντήσεις. Απάντηση. Απάντηση

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

Υπολογιστικά & Διακριτά Μαθηματικά

3 Αναδροµή και Επαγωγή

Ανάλυση της Ορθότητας Προγραμμάτων

ίκτυα Εξισορόϖησης κατάσταση εξισορροϖητή (balancer state): συλλογή από διακριτικά (tokens) στους συνδέσµους εισόδου και εξόδου του µετάβαση εξισορροϖ

Προγραµµατισµός Η/Υ. Μέρος2

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής

Νήµατα. ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων. Κατανεµηµένα Συστήµατα 10-1

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

Συνεκτικά σύνολα. R είναι συνεκτικά σύνολα.

Μοντέλο Σύγχρονου ικτύου. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

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

Κατανεμημένα Συστήματα με Java. Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα?

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Transcript:

Ατοµικά Αντικείµενα Ατοµικά Αντικείµενα Παναγιώτα Φατούρου

ΑΤΟΜΙΚΑ ΑΝΤΙΚΕΙΜΕΝΑ Ένα ατοµικό αντικείµενο κάποιου τύπου µοιάζει µε µια διαµοιραζόµενη µεταβλητή αυτού του τύπου. Ένα ατοµικό αντικείµενο βρίσκεται σε µια κατάσταση και υποστηρίζει ένα σύνολο από λειτουργίες µέσω των οποίων µπορεί να αλλάξει η κατάστασή του. Τα ατοµικά αντικείµενα έχουν προταθεί σαν δοµικά µπλοκ για την κατασκευή πολυ-επεξεργαστικών συστηµάτων: Εκκίνηση µε απλά βασικά ατοµικά αντικείµενα που παρέχονται από το υλικό. ιαδοχική κατασκευή όλο και πιο πολύπλοκων ατοµικών αντικειµένων από πιο απλά αντικείµενα. Το σύστηµα που προκύπτει είναι απλό, καλά δοµηµένο, και είναι εύκολο να αποδειχθεί ότι είναι ορθό. Ατοµικά Αντικείµενα Παναγιώτα Φατούρου

ΒΑΣΙΚΑ ΑΤΟΜΙΚΑ ΑΝΤΙΚΕΙΜΕΝΑ Καταχωρητής Read/Write Αποθηκεύει µια τιµή από κάποιο σύνολο και υποστηρίζει δύο λειτουργίες: read(r): επιστρέφει την τιµή που είναι αποθηκευµένη στον R χωρίς να τον αλλάξει write(r,v): γράφει την τιµή v στον R και επιστρέφει ack Καταχωρητής Test-And-Set Αποθηκεύει µια τιµή από το σύνολο {0,1} και υποστηρίζει δύο λειτουργίες: Test-And-Set(R): αποθηκεύει την τιµή 1 στον R και επιστρέφει την παλιά τιµή του reset(r): αποθηκεύει την τιµή 0 στον R Ατοµικά Αντικείµενα Παναγιώτα Φατούρου

ΒΑΣΙΚΑ ΑΤΟΜΙΚΑ ΑΝΤΙΚΕΙΜΕΝΑ Καταχωρητής Load-Link, Store-Conditional (LL/SC) Αποθηκεύει µια τιµή από κάποιο σύνολο και υποστηρίζει δύο λειτουργίες LL και SC, όπου κάθε SC συσχετίζεται µε την τελευταία LL που έχει εκτελεστεί από την ίδια διεργασία που εκτέλεσε την SC (δηλαδή, πριν µια διεργασία εκτελέσει την SC θα πρέπει να έχει εκτελέσει την LL που συσχετίζεται µε την SC). LL(R): επιστρέφει την τιµή του R, SC(R,v): αποθηκεύει v στον R αν δεν έχει γίνει καµία αλλαγή στον R από την χρονική στιγµή που εκτελέστηκε η LL η οποία έχει συσχετισθεί µε την SC. Καταχωρητής Compare-And-Swap Αποθηκεύει µια τιµή από κάποιο σύνολο και υποστηρίζει δύο λειτουργίες: read(r): επιστρέφει την τιµή του R, CAS(R,u,v): Αν η κατάσταση του R είναι u αλλάζει σε v και επιστρέφεται TRUE. ιαφορετικά δεν αλλάζει ο R και επιστρέφεται FALSE. Ατοµικά Αντικείµενα Παναγιώτα Φατούρου

ΒΑΣΙΚΑ ΑΤΟΜΙΚΑ ΑΝΤΙΚΕΙΜΕΝΑ Καταχωρητής Πολλα λής-εγγραφής (MW) Όλες οι διεργασίες επιτρέπεται να εκτελούν λειτουργίες ενηµέρωσης στον καταχωρητή Καταχωρητής Α λής-εγγραφής (SW) Μόνο µια από τις διεργασίες επιτρέπεται να εκτελεί λειτουργίες ενηµέρωσης στον καταχωρητή. Χωρητικότητα καταχωρητή Ένας καταχωρητής είναι πεπερασµένης χωρητικότητας όταν το σύνολο τιµών που µπορεί να αποθηκεύει είναι πεπερασµένο. Στην αντίθετη περίπτωση είναι µη-πεπερασµένης χωρητικότητας. Το υλικό πολλών συστηµάτων υποστηρίζει κάποια από τα παραπάνω αντικείµενα. Το υλικό τότε εγγυάται ότι κάθε µια λειτουργία εκτελείται ατοµικά. Ατοµικά Αντικείµενα Παναγιώτα Φατούρου

ΑΤΟΜΙΚΑ ΣΤΙΓΜΙΟΤΥΠΑ ΜΝΗΜΗΣ ιαµοιραζόµενο αντικείµενο που αποτελείται από έναν πίνακα µε m τµήµατα/συνιστώσες που το καθένα αποθηκεύει µια τιµή. Υποστηρίζει δύο είδη ατοµικών λειτουργιών: UPDATE(i,v): εγγράφει στο τµήµα A i του στιγµιoτύπου την τιµή υ. SCAN: επιστρέφει ένα διάνυσµα τιµών, µία για κάθε τµήµα και είναι εγγυηµένο πως οι τιµές αυτές είναι «συνεπείς». A 1 A 2... Τα ατοµικά στιγµιότυπα αποσκοπούν στην παροχή «συνεπών» όψεων των διαµοιραζόµενων µεταβλητών. A m Ατοµικό Στιγµιότυπο A Ατοµικά Αντικείµενα Παναγιώτα Φατούρου

ΑΤΟΜΙΚΑ ΣΤΙΓΜΙΟΤΥΠΑ Ατοµικό Στιγµιότυ ο Πολλα λής-εγγραφής (MW Atomic Snapshot) Κάθε διεργασία µπορεί να εκτελεί UPDATES σε κάθε τµήµα. Στιγµιότυ ο Α λής-εγγραφής (SW Atomic Snapshot) Μόνο η διεργασία i µπορεί να εκτελεί UPDATES στο τµήµα A i. Τα ατοµικά στιγµιότυπα είναι πιο ισχυρά αντικείµενα από τους καταχωρητές και διευκολύνουν τη σχεδίαση κατανεµηµένων αλγορίθµων! Ατοµικά Αντικείµενα Παναγιώτα Φατούρου

ΕΠΑΛΗΘΕΥΣΗ ΚΑΘΟΛΙΚΩΝ ΚΑΤΗΓΟΡΗΜΑΤΩΝ (GLOBAL PREDICATE EVALUATION) Σε πολλά προβλήµατα των κατανεµηµένων συστηµάτων µια ενέργεια πρέπει να συµβεί αν ένα κατηγόρηµα (predicate) που αφορά την καθολική κατάσταση του συστήµατος είναι αληθές. Παραδείγµατα Ανίχνευση αδιεξόδων (deadlock detection). Ανίχνευση τερµατισµού (termination detection). Ανίχνευση απώλειας διακριτικού (token loss detection). ιαχείριση µη-προσβάσιµης ή αχρησιµοποίητης µνήµης (garbage collection). Εισαγωγή σηµείων ελέγχου και επανεκκίνηση (checkpointing & restarting). Παρακολούθηση και αποσφαλµάτωση (monitoring & debugging). Ατοµικά Αντικείµενα Παναγιώτα Φατούρου

ΟΡΘΟΤΗΤΑ & ΑΠΟΣΦΑΛΜΑΤΩΣΗ Η µεγαλύτερη δυσκολία στο να αποδειχθεί η ορθότητα λειτουργίας ενός κατανεµηµένου αλγορίθµου είναι η αναγκαιότητα στήριξης της επιχειρηµατολογίας σε µη συνεπείς όψεις των διαµοιραζόµενων µεταβλητών. Ο υπολογισµός συνεπών όψεων διευκολύνει το έργο επαλήθευσης της ορθότητας των κατανεµηµένων αλγορίθµων αλλά δεν είναι εύκολο πρόβληµα. Ατοµικά Αντικείµενα Παναγιώτα Φατούρου

ΕΦΑΡΜΟΓΕΣ Aµοιβαίος αποκλεισµός [Κatseff - STOC 78, Lamport JACM 86, Dolev & Gafni & Shavit STOC 88]. Επίτευξη οµοφωνίας [Aspnes - J. of Alg. 93, Aspnes & Herlihy J. of Alg 90] & Approximate Agreement [Attiya, Lynch & Shavit JACM 94] Κατασκευή συστηµάτων παράλληλης ανάθεσης χρονοσφραγίδων [Dolev & Shavit - STOC 88]. Αξιόπιστη και αποδοτική υλοποίηση κατανεµηµένων δοµών δεδοµένων [Aspnes & Herlihy - SPAA 90, Herlihy PODC 91]. Υλοποίηση χρήσιµων κατανεµηµένων αντικειµένων [Vitanyi & Awerbuch - FOCS 86, Bloom PODC 87, Peterson & Burns FOCS 87]. Ατοµικά Αντικείµενα Παναγιώτα Φατούρου

ΥΛΟΠΟΙΩΝΤΑΣ ΑΤΟΜΙΚΑ ΣΤΙΓΜΙΟΤΥΠΑ ΜΕ ΧΡΗΣΗ ΚΑΤΑΧΩΡΗΤΩΝ Τα ατοµικά στιγµιότυπα δεν παρέχονται από το υλικό. Παροχή αλγορίθµων για τις λειτουργίες SCAN και UPDATE. Αποτελεσµατικότητα Υλοποίησης Χρονική πολυπλοκότητα µιας SCAN ή µιας UPDATE λειτουργίας: ο µέγιστος αριθµός βηµάτων που εκτελούνται από οποιαδήποτε διεργασία σε οποιαδήποτε εκτέλεση προκειµένου να υλοποιηθεί η λειτουργία Χωρική Πολυπλοκότητα υλοποίησης: # καταχωρητών που χρησιµοποιούνται SCAN ή UPDATE read ή write Ατοµικά Αντικείµενα Παναγιώτα Φατούρου A 1 A 2... A m... R 1 R 2 R k

Χρήσιµοι Ορισµοί ιαφορετικά στιγµιότυπα των λειτουργιών του αντικειµένου µπορούν να εκτελούνται από διαφορετικές διεργασίες ταυτόχρονα. Σε κάθε εκτέλεση, οι κλήσεις και οι αποκρίσεις των λειτουργιών του ατοµικού αντικειµένου µπορεί να πραγµατοποιούνται µε οποιαδήποτε σειρά. Πολλές κλήσεις µπορούν π.χ. να συµβούν πριν να συµβεί οποιαδήποτε απόκριση. Το διάστηµα εκτέλεσης µιας λειτουργίας είναι το διάστηµα από την κλήση της µέχρι την απόκρισή της. Τα διαστήµατα εκτέλεσης των λειτουργιών ενός ατοµικού στιγµιοτύπου µπορεί να επικαλύπτονται (µερικώς ή ολικώς). Μια ακολουθία από κλήσεις και αποκρίσεις είναι έγκυρη, αν κάθε κλήση µπορεί να συσχετισθεί µε µια απόκριση. Ατοµικά Αντικείµενα Παναγιώτα Φατούρου

ΤΕΡΜΑΤΙΣΜΟΣ & ΣΕΙΡΙΟΠΟΙΗΣΙΜΟΤΗΤΑ Ιδιότητα Ελευθερίας Αναµονής (Wait-Freedom) Kάθε µη-εσφαλµένη διεργασία εκτελεί έναν πεπερασµένο αριθµό βηµάτων προκειµένου να διεκπεραιώσει τη λειτουργία της. Σειριο οιησιµότητα (Linearizability) Ακόµα και αν εκτελούνται παράλληλα λειτουργίες σε ένα διαµοιραζόµενο αντικείµενο, υπάρχει µία σειριακή εκτέλεση των λειτουργιών αυτών στην οποία όλες οι λειτουργίες έχουν τις ίδιες αποκρίσεις. Σε κάθε εκτέλεση, κάθε λειτουργία που εµπεριέχεται στην εκτέλεση έχει την ίδια απόκριση µε µια σειριακή εκτέλεση της λειτουργίας σε κάποιο σηµείο στο χρονικό διάστηµα της εκτέλεσης της. Το σηµείο αυτό λέγεται σηµείο σειριοποίησης της λειτουργίας (linearization point). Ατοµικά Αντικείµενα Παναγιώτα Φατούρου

ΣΕΙΡΙΟΠΟΙΗΣΙΜΟΤΗΤΑ Παράδειγµα σειριοποιήσιµης εκτέλεσης update(α 0, 1) update(α 1, 2) * * * scan() -> <1, 0> χρόνος Παράδειγµα µη-σειριοποιήσιµης εκτέλεσης update(α 0, 1) update(α 1, 2) * * *? *? *? χρόνος scan() -> <0, 2> Ατοµικά Αντικείµενα Παναγιώτα Φατούρου

Σειριοποιησιµότητα - Φορµαλιστικά Έστω µια εκτέλεση β. Λέµε ότι η β είναι σειριοποιήσιµη αν τα ακόλουθα είναι δυνατά: 1. Για κάθε προσοµοιούµενη λειτουργία π που έχει περατωθεί στη β, µπορούµε να επιλέξουµε ένα σηµείο σειριοποίησης *π κάπου µεταξύ της κλήσης της π και της απόκρισής της. 2. Μπορούµε να επιλέξουµε ένα υποσύνολο Φ των λειτουργιών των οποίων η εκτέλεση δεν έχει περατωθεί στη β τ.ω. για κάθε λειτουργία π στο Φ: o µπορούµε να εισάγουµε µια απόκριση, και o µπορούµε να επιλέξουµε ένα σηµείο σειριοποίησης *π, το οποίο να βρίσκεται σε κάποιο σηµείο της εκτέλεσης που έπεται της κλήσης της π. ιαισθητικά: «Κάθε λειτουργία µοιάζει σαν να εκτελέστηκε στιγµιαία κάποια χρονική στιγµή µέσα στο διάστηµα εκτέλεσής της.» «Αν και η εκτέλεση κάποιων λειτουργιών µπορεί να συµβαίνει ταυτόχρονα, η υλοποίηση πρέπει να εγγυάται ότι οι λειτουργίες λαµβάνουν χώρα σειριακά, µια κάθε φορά, και η σειριακή αυτή διάταξη θα πρέπει να σέβεται τις κλήσεις και τις αποκρίσεις των λειτουργιών». Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

Σειριοποιησιµότητα Περισσότερα Παραδείγµατα Μια ουρά FIFO Q υποστηρίζει δύο λειτουργίες: enq(q,v): προσθέτει το στοιχείο v στο τέλος της ουράς Q deq(q): αφαιρεί και επιστρέφει το πρώτο στοιχείο της ουράς Q Σε µια παράλληλη ουρά πολλές διεργασίες µπορεί να προσπαθούν να εισάγουν (enq) και να εξάγουν(deq) στοιχεία ταυτόχρονα. head tail Ουρές µπορούν να υλοποιηθούν από απλούστερα αντικείµενα (π.χ., Test-And- Set και LL/SC registers). Το ίδιο ισχύει και για άλλα αντικείµενα, π.χ., στοίβες, λίστες, λίστες παράλειψης, γράφους, κλπ. Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

Σειριοποιήσιµες Εκτελέσεις enq(x) enq(y) deq() x deq() y χρόνος enq(x) enq(y) deq() y deq() x deq() NULL enq(8) deq() 8 enq(8) Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

Σειριοποιήσιµες Εκτελέσεις deq() 8 enq(8).... deq() NULL enq(8)... deq() 8 Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

enq(x) Μη-Σειριοποιήσιµες Εκτελέσεις enq(y) deq y deq 8 enq(8)... Σειριο οίησιµες Υλο οιήσεις Μια υλοποίηση λέγεται σειριοποιήσιµη αν όλες οι εκτελέσεις που παράγει είναι σειριοποιήσιµες. Στη συνέχεια του µαθήµατος, µια υλοποίηση δεν θα θεωρείται ορθή αν δεν είναι σειριοποιήσιµη. Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

Ατοµικά Στιγµιότυπα Προφανής Λύση Είναι δύσκολο για µια διεργασία να καταφέρει να υπολογίσει µια συνεπή όψη όλων των καταχωρητών. Λειτουργίες ιεργασιών Τιµές Καταχ/τών P Q R 0 R 1 0 0 read R 0 0 write(r 0,1) 1 0 write(r 1,2) 1 2 read R 1 2 UPDATE(A 0,1) UPDATE(A 1,2) * * *? *? *? SCAN [read R 0, read R 1 ] <0,2> χρόνος ιαισθητικά: «Σε καµία χρονική στιγµή δεν συνυπάρχουν οι τιµές 0 και 2 στους καταχωρητές.» Τα ατοµικά στιγµιότυπα έχουν σειριοποιήσιµες, ελεύθερες-αναµονής υλοποιήσεις χρησιµοποιώντας καταχωρητές. [Afek et. al JACM 93, Anderson DistComp 93, Aspnes&Herlihy SPAA 90] Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

ΥΛΟΠΟΙΗΣΕΙΣ ΑΤΟΜΙΚΩΝ ΣΤΙΓΜΙΟΤΥΠΩΝ Anderson PODC 90, PODC 93, DISC 91 Afek, Attiya, Dolev, Gafni, Merritt and Shavit PODC 90 + JACM 93 Attiya, Herlihy & Rachman - DISC 92 Attiya & Rachman PODC 93 + SICOMP 98 Israeli & Shaham PODC 92 Israeli, Shaham & Shirazi DISC 93 Inoue, Chen, Masuzawa & Tokura DISC 94 Afek, Stupp & Touitou FOCS 99 Afek, Attiya, Fouren, Stupp & Touitou PODC 99 Fatourou, Fich & Ruppert PODC 02, STOC 03, STOC 06 Fatourou & Kallimanis PODC 06 Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

ΑΠΛΗ ΥΛ/ΣΗ SW Snapshot ΜΕ ΧΡΗΣΗ n SW ΚΑΤΑΧΩΡΗΤΩΝ Υπάρχουν n τµήµατα, A 1,..., A n, ένα για κάθε διεργασία. Στο τµήµα A i µπορεί να εκτελεί UPDATES µόνο η p i. Η υλοποίηση χρησιµοποιεί n καταχωρητές R 1,.., R n, ένα για κάθε τµήµα. Ο καταχωρητής R i έχει συσχετισθεί µε το τµήµα A i. UPDATES στο A i γράφουν µόνο στον R i. Κάθε καταχωρητής R i µπορεί να εγγραφεί µόνο από την p i αλλά να διαβαστεί από όλες τις διεργασίες Οι καταχωρητές είναι single-writer. Θεωρούµε πως κάθε καταχωρητής R i είναι αρκετά µεγάλος ώστε να αποθηκεύει τα εξής πεδία: val i : τιµή του τµήµατος µε το οποίο έχει συσχετισθεί tag i : χρονοσφραγίδα την οποία χρησιµοποιεί η p i για να ξεχωρίζει τις UPDATES της view i : διάνυσµα n τιµών, µια για κάθε τµήµα. Η υπόθεση αυτή δεν είναι ρεαλιστική (αφού τόσο µεγάλοι καταχωρητές δεν παρέχονται στην πράξη), αλλά προς το παρόν µας ενδιαφέρει απλά να σχεδιάσουµε µια απλή υλοποίηση ενός ατοµικού στιγµιοτύπου µνήµης. Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

ΑΠΛΗ ΥΛ/ΣΗ SW Snapshot ΜΕ ΧΡΗΣΗ n SW ΚΑΤΑΧΩΡΗΤΩΝ Ο αλγόριθµος UnboundedSnapshot UPDATE στο τµήµα A i µε τιµή v: view := SCAN; increment p s tag; write(r i,<v, tag,view>); SCAN από τη διεργασία p: repeatedly read R 1,, R m until see 1. either the same vector of values twice (then, return the vector), or 2. three different values in some register R i (return the view field of R i read the third time); Χρονική Πολυπλοκότητα = O(n 2 ) για τη SCAN και την UPDATE. Απαιτούνται n µη-πεπερασµένης χωρητικότητας MW καταχωρητές. Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

ΑΠΛΗ ΥΛ/ΣΗ SW Snapshot ΜΕ ΧΡΗΣΗ n SW ΚΑΤΑΧΩΡΗΤΩΝ UPDATE που γράφει την τιµή view στον R i και embedded SCAN αυτής SCAN S που επιστρέφει το view ενός καταχωρητή R i. first read of R i by p v 1 second read of R i by p v 2 v 1 third read of R i by p v 3 v 2 p k1 p k2 p k3 p kn SCANS ή embedded SCANS UPDATES...... Όλες οι p k1,, p kn είναι ενεργές ταυτόχρονα. Έχουµε n διεργασίες στο σύστηµα. Άρα, η embedded SCAN που εκτελείται από την pkn πρέπει να τερµατίζει βλέποντας το ίδιο διάνυσµα τιµών σε δύο συνεχόµενες οµάδες αναγνώσεων. Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

ΑΠΛΗ ΥΛ/ΣΗ SW Snapshot ΜΕ ΧΡΗΣΗ n SW ΚΑΤΑΧΩΡΗΤΩΝ Θεώρηµα: Ο παραπάνω αλγόριθµος είναι µια ορθή υλοποίηση ενός ατοµικού στιγµιοτύπου µνήµης και επιτυγχάνει τερµατισµό ελεύθερο-αναµονής. Ορισµός: Μια SCAN επιστρέφει ένα συνε ές διάνυσµα τιµών αν, για κάθε τµήµα του στιγµιοτύπου, η τιµή που επιστρέφει η SCAN για το τµήµα είναι η τιµή που χρησιµοποίησε (ως παράµετρο) η τελευταία UPDATE στο τµήµα που σειριοποιείται πριν τη SCAN. Για να α οδείξουµε το θεώρηµα θα ρέ ει: Να αποδώσουµε σηµεία σειριοποίησης. Να δείξουµε ότι για κάθε λειτουργία (SCAN ή UPDATE), το σηµείο σειριοποίησης της λειτουργίας βρίσκεται εντός του διαστήµατος εκτέλεσής της. Να δείξουµε ότι οι SCANS επιστρέφουν συνεπή διανύσµατα. Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

ΑΠΛΗ ΥΛ/ΣΗ SW Snapshot ΜΕ ΧΡΗΣΗ n SW ΚΑΤΑΧΩΡΗΤΩΝ Α όδοση Σηµείων Σειριο οίησης Κάθε UPDATE σειριοποιείται στο σηµείο που εκτελεί τη write εντολή της. Για ευκολία αποδίδουµε σηµεία σειριοποίησης όχι µόνο στις SCANS αλλά και στις embedded SCANS (δηλαδή σε αυτές που καλούνται από τις UPDATES). Στη συνέχεια θα τις ονοµάζουµε όλες SCAN. Χωρίζουµε τις SCAN σε δύο κατηγορίες: Άµεσες: Αυτές που τερµατίζουν λόγω της συνθήκης 1 στον ψευδο-κώδικα. Έµµεσες: Αυτές που τερµατίζουν λόγω της συνθήκης 2. Σειριοποιούµε κάθε άµεση SCAN ανάµεσα στις δύο οµάδες αναγνώσεων (collect) που επιστρέφουν το ίδιο διάνυσµα. Σειριοποιούµε τις έµµεσες SCAN µε επαγωγή ως προς τα σηµεία απόκρισης τους. 1 3 5 2 6 4 Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

ΑΠΛΗ ΥΛ/ΣΗ SW Snapshot ΜΕ ΧΡΗΣΗ n SW ΚΑΤΑΧΩΡΗΤΩΝ Βάση Ε αγωγής: Απόδοση σηµείου σειριοποίησης στην έµµεση SCAN (έστω S) της οποίας το σηµείο απόκρισης είναι 1 ο. Η S επιστρέφει ένα διάνυσµα τιµών το οποίο έχει εγγραφεί από µια UPDATE U (δηλαδή το διάνυσµα αυτό υπολογίστηκε από την embedded SCAN S της UPDATE). Η U και άρα και η S (που εκτελείται από την U) εµπεριέχονται στην S. H S είναι άµεση SCAN (αφού αν δεν ήταν τότε η έµεση SCAN της οποίας το σηµείο απόκρισης είναι το 1 ο θα ήταν η S και όχι η S). Εποµένως, έχει ήδη αποδοθεί σηµείο σειριοποίησης στην S. Το σηµείο σειριοποίησης της S τοποθετείται στο ίδιο σηµείο µε εκείνο της S. * S * S S U S Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

ΑΠΛΗ ΥΛ/ΣΗ SW Snapshot ΜΕ ΧΡΗΣΗ n SW ΚΑΤΑΧΩΡΗΤΩΝ Ε αγωγική Υ όθεση: Έστω S η έµµεση SCAN της οποίας το σηµείο απόκρισης είναι το k-οστό. Ας υποθέσουµε ότι έχουµε αποδώσει σηµεία σειριοποίησης σε όλες τις έµµεσες SCAN των οποίων τα σηµεία απόκρισης προηγούνται εκείνου της S. Ε αγωγικό Βήµα: Αποδίδουµε σηµείο σειριοποίησης στην S. Η S επιστρέφει ένα διάνυσµα τιµών το οποίο έχει εγγραφεί από µια UPDATE U (δηλαδή το διάνυσµα αυτό υπολογίστηκε από την embedded SCAN S της UPDATE). Η U (και άρα και η S ) εµπεριέχονται στην S. Αν η S είναι άµεση SCAN, της έχει ήδη αποδοθεί σηµείο σειριοποίησης. Αν η S είναι έµµεση SCAN, έχει τερµατίσει πριν την S της έχει αποδοθεί σηµείο σειριοποίησης (από επαγωγική υπόθεση). Το σηµείο σειριοποίησης της S τοποθετείται στο ίδιο σηµείο µε εκείνο της S. * S * S S U S Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

ΑΠΛΗ ΥΛ/ΣΗ SW Snapshot ΜΕ ΧΡΗΣΗ n SW ΚΑΤΑΧΩΡΗΤΩΝ Λήµµα: Το σηµείο σειριοποίησης κάθε SCAN ή UPDATE βρίσκεται µέσα στο διάστηµα εκτέλεσης της. Α όδειξη: Για τις UPDATES και τις άµεσες SCAN αυτό είναι προφανές. Για τις έµµεσες SCANS αποδεικνύεται επαγωγικά ως προς τα σηµεία απόκρισής τους. Στη βάση της επαγωγής (θυµηθείτε ότι) η SCAN S της οποίας το σηµείο απόκρισης είναι 1 ο σειριοποιείται στο ίδιο σηµείο µε την άµεση embedded SCAN S της οποίας το διάνυσµα επιστρέφει. Επίσης, η S εµπεριέχεται στην S. Το σηµείο σειριοποίησης της S βρίσκεται στο διάστηµα εκτέλεσής της το σηµείο σειριοποίησης της S εµπεριέχεται στο διάστηµα εκτέλεσής της. * S * S S U S Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

ΑΠΛΗ ΥΛ/ΣΗ SW Snapshot ΜΕ ΧΡΗΣΗ n SW ΚΑΤΑΧΩΡΗΤΩΝ Ε αγωγικό Βήµα: Αποδεικνύουµε τον ισχυρισµό για την έµµεση SCAN S της οποίας το σηµείο σειριοποίησης είναι το k-οστό. Η S επιστρέφει ένα διάνυσµα τιµών το οποίο έχει εγγραφεί από µια UPDATE U (δηλαδή το διάνυσµα αυτό υπολογίστηκε από την embedded SCAN S της UPDATE). Η U (και άρα και η S ) εµπεριέχονται στην S. Αν η S είναι άµεση, το σηµείο σειριοποίησης είναι µέσα στο διάστηµα εκτέλεσής της. Το ίδιο ισχύει αν η S είναι έµµεση (από επαγωγική υπόθεση αφού η S εµπεριέχεται στην S και άρα το σηµείο απόκρισής της προηγείται εκείνου της S). Το σηµείο σειριοποίησης της S τοποθετείται στο ίδιο σηµείο µε εκείνο της S το σηµείο σειριοποίησης της S βρίσκεται µέσα στο διάστηµα εκτέλεσής της. * S * S S U S Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

ΑΠΛΗ ΥΛ/ΣΗ SW Snapshot ΜΕ ΧΡΗΣΗ n SW ΚΑΤΑΧΩΡΗΤΩΝ Λήµµα: Σε κάθε εκτέλεση του αλγορίθµου, οι SCAN λειτουργίες επιστρέφουν συνεπή διανύσµατα τιµών. Α όδειξη: Ο ισχυρισµός ισχύει προφανώς για τις άµεσες SCAN. Για έµµεσες SCAN θα αποδειχθεί µε επαγωγή ως προς τα σηµεία απόκρισης. Στη βάση της επαγωγής (θυµηθείτε ότι) η SCAN S, της οποίας το σηµείο απόκρισης είναι 1 ο, σειριοποιείται στο ίδιο σηµείο µε την άµεση embedded SCAN S της οποίας το διάνυσµα επιστρέφει. Αφού η S επιστρέφει συνεπές διάνυσµα, το ίδιο και η S. Ε αγωγικό Βήµα: Αποδεικνύουµε τον ισχυρισµό για τη έµµεση SCAN S της οποίας το σηµείο σειριοποίησης είναι το k-οστό. Η S επιστρέφει το ίδιο διάνυσµα τιµών που επιστρέφει µια embedded SCAN S και σειριοποιείται στο ίδιο σηµείο. Αν η S είναι άµεση, επιστρέφει προφανώς συνεπές διάνυσµα. Αν η S είναι έµµεση επιστρέφει συνεπές διάνυσµα από επαγωγική υπόθεση (αφού σε αυτή την περίπτωση η S τερµατίζει πριν την S). Άρα και η S επιστρέφει συνεπές διάνυσµα. A1 A2 A3 Vals Scans U(1,1) [1,0,0] U(2,1) [1,1,0] S1 U(1,3) [3,1,0] U(2,4) [3,4,0] U(3,5) [3,4,5] U(3,6) [3,4,6] S2 S3 S4 * U(1,1) [1,0,0] * U(2,1) [1,1,0] * S1 * U(1,3) [3,1,0] * U(2,4) [3,4,0] * U(3,5) [3,4,5] * U(3,6) [3,4,6] * U(1,11) [11,4,6] * S2 * S3 * S4 Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου time