Υ- 07 Παράλληλα Συστήματα Transac9onal memory

Σχετικά έγγραφα
Υ- 07 Παράλληλα Συστήματα Συνέπεια και συνοχή μνήμης

Transactional Memory

Transactional Memory

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Υ- 07 Παράλληλα Συστήματα Συνοχή κρυφής μνήμης με σύστημα καταλόγων

Βάσεις Δεδομένων ΙΙ. Διάλεξη 3 η Tεχνικές Aνάκαμψης. Ιδιότητες Δοσοληψιών

Έλεγχος συγχρονικότητας Μέρος 1 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

Υ- 01 Αρχιτεκτονική Υπολογιστών Πολυεπεξεργαστές, 2ο μέρος

Προχωρημένα Θέματα Βάσεων Δεδομένων

ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις

Πολυπύρηνοι επεξεργαστές Multicore processors

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

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

Τεχνικές Ανάκαµψης. Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

ΠΛΕ- 027 Μικροεπεξεργαστές

Αποκατάσταση συστήματος Βάσεις Δεδομένων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Τεχνικές Ανάκαµψης. Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε

Κεφάλαιο 13 Δοσοληψίες

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

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

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

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

Σημεία ελέγχου (Checkpoints)

Οργάνωση Υπολογιστών (IΙI)

Οι λίστες, χάνοντας τα πλεονεκτήματα των πινάκων, λύνουν προβλήματα που παρουσιάζουν οι πίνακες

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συνάφεια Κρυφής Μνήµης σε Επεκτάσιµα Μηχανήµατα

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

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

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

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

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

Τεχνικές Ανάνηψης Περιεχόµενα

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

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

Διαχείριση Δοσοληψιών

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης

Βάσεις Δεδομένων 2. Φροντιστήριο Δοσοληψίες Τεχνικές ελέγχου συνδρομικότητας. Ημερ: 05/5/2009 Ακ.Έτος

Υ- 01 Αρχιτεκτονική Υπολογιστών Πρόβλεψη διακλάδωσης

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

Διάλεξη 12 Καθυστερήσεις (Stalls)

Τεχνικές Βελτιστοποίησης Κώδικα για Πολυεπεξεργαστικές Αρχιτεκτονικές. Υπευθυνος Διδάσκων: Νεκτάριος Κοζύρης. Transactional Memory

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Μάθημα 8: Διαχείριση Μνήμης

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

ΠΛΕ- 027 Μικροεπεξεργαστές 11ο μάθημα: Είσοδος- Εξοδος (Ε/Ε)

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035).

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ

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

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

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

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

Κεφάλαιο 5. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -. Σερπάνος 2. Σημείωση

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

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

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI)

Δοσοληψίες Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

Βάσεις Δεδομένων ΙΙ. Διάλεξη 1 η Επεξεργασία Δοσοληψιών. Σύστημα Επεξεργασίας Δοσοληψιών

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

10 η Διάλεξη Python Βάσεις δεδομένων στη python

Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών

Ασκήσεις Caches

Συνοχή κρυφής μνήμης σε πολυπύρηνα/πολυεπεξεργαστικά συστήματα

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

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 8 ο Μερική Επικάλυψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

Άσκηση 1 (15 μονάδες) (Επεκτατός Κατακερματισμός)

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

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

Transcript:

Υ- 07 Παράλληλα Συστήματα Transac9onal memory Αρης Ευθυμίου

Παρ. προγρ/μός με κλειδιά Χαμηλού επιπέδου πολύ κοντά στα μέσα και τις δομές του υλικού πολλές λεπτομέρειες, εύκολα γίνεται λάθος χαμηλή παραγωγικότητα Παράλληλος προγραμματισμός για «όλους» απαιτεί υψηλότερου επιπέδου λύσεις TransacMonal memory νέος τρόπος παράλληλου προγραμματισμού μπορεί να έχει καλύτερη απόδοση Παράλληλα Συστήματα 2011-2012 2

Eμπλοκή (deadlock) Προγραμματίζοντας με κλειδιά είναι σχετικά εύκολο να προκληθεί εμπλοκή Lock(a); Lock(b);. Unlock(b); Unlock(a); Lock(b); Lock(a);. Unlock(a); Unlock(b); Ο προγραμματιστής είναι ελεύθερος να καλέσει τις ρουτίνες όπως θέλει αντί να υπαρχει κάποιο πλαίσιο που εμποδίζει τα λάθη Παράλληλα Συστήματα 2011-2012 3

Συναλλαγές (transacmons) Εστιάζουν στην αδιαιρετότητα (atomicity) αντί για τα θεμελιακά στοιχεία των κλειδωμάτων (lock primimves) Το «σύστημα» εξασφαλίζει ότι μια συναλλαγή θα πραγματοποιηθεί ολόκληρη από μόνη της σαν το υπόλοιπο σύστημα να μη κάνει τίποτα μέχρι να τελειώσει συνήθως οι συναλλαγές εκτελούνται υποθέτοντας ότι δεν υπάρχουν αντιμαχόμενες συναλλαγές που εκτελούνται ταυτόχρονα (opmmismcally) Αν το σύστημα ανιχνεύσει κάποια σύγκρουση (δλδ προσπέλαση μνήμης στις ίδιες διευθύνσεις), η συναλλαγή ακυρώνεται, χωρίς να έχει προκαλέσει οποιαδήποτε αλλαγή στα δεδομένα Παράλληλα Συστήματα 2011-2012 4

Ιδιότητες συναλλαγών Αδιαίρετη εκτέλεση όλες οι εντολές της συναλλαγής φαίνονται να εκτελούνται είτε όλες ή καμία (failure atomicity) η συναλλαγή είτε ολοκληρώνεται (commit) ή ματαιώνεται (abort) Εκτελούνται μεμονωμένα (in isolamon) άλλες πράξεις δεν μπορούν να «δουν» ενδιάμεσα αποτελέσματα/δεδομένα της συναλλαγής (serialisamon) το αποτέλεσμα ταυτόχρονης εκτέλεσης συναλλαγών είναι το ίδιο σαν να είχαν εκτελεστεί με (κάποια) σειρά Παράλληλα Συστήματα 2011-2012 5

Παράδειγμα 1 lock (lock1) counter = counter + 1; unlock (lock1) transaction begin counter = counter + 1; transaction end Η διαφορά είναι μικρή Παράλληλα Συστήματα 2011-2012 6

Παράδειγμα 2 Παραγωγός καταναλωτής με συνδεδεμένη λίστα παραγωγός προσθέτει στην ουρά καταναλωτής αφαιρεί από την κεφαλή Enqueue transaction begin if (tail == NULL) update head and tail else update tail transaction end Dequeue transaction begin if (head->next == NULL) update head and tail else update head transaction end Υλοποίηση με κλειδιά: μόνο μία πράξη στην λίστα μπορεί να γίνει σε κάθε στιγμή Με συναλλαγές οι πράξεις μπορούν να γίνουν ταυτόχρονα, αν δεν είναι (σχεδόν) άδεια η λίστα Παράλληλα Συστήματα 2011-2012 7

Παράδειγμα 3 Παραγωγός καταναλωτής με hash table, λίστα transaction begin index = hash(key); head = bucket[index]; traverse linked list until key matches perform operations transaction end Σπάνια θα υπάρχει σύγκρουση σε ένα bucket, άρα οι συναλλαγές θα γίνονται παράλληλα χωρίς ματαιώσεις Υλοποίησεις με κλειδιά: χονδρόκοκκη (coarse grain): όλες οι πράξεις γίνονται σειριακά λεπτόκοκκη (fine grain): ένα κλειδί ανά bucket περισσότερος χώρος αποθήκευσης, πολύπλοκος κώδικας,... Παράλληλα Συστήματα 2011-2012 8

Κλειδιά - συναλλαγές Απλά αλλάζοντας τα κλειδιά σε συναλλαγές δεν έχει πάντα το αναμενώμενο αποτέλεσμα! Κάθε συναλλαγή εκτελείται αδιαίρετα ως προς κάθε άλλη συναλλαγή Με τα κλειδιά υπάρχει ευελιξία: διαφορετικά κλειδιά για ομάδες νημάτων που εκτελούνται ταυτόχρονα αλλά μοιράζονται διαφορετικά δεδομένα Παράλληλα Συστήματα 2011-2012 9

Επανάληψη συναλλαγής Enqueue transaction begin if (queue is full) retry if (tail == NULL) update head and tail else update tail transaction end Ματαίωση της συναλλαγής και επανάληψη η υλοποίηση μπορεί να προσπαθεί αμέσως ή να περιμένει μέχρι να δεί κάποιες αλλαγές στη μνήμη Παράλληλα Συστήματα 2011-2012 10

Επιλογή atomic { x = q0.dequeue() orelse { x = q1.dequeue() } Αν η πρώτη εντολή ματαιωθεί (ή προκαλέσει retry) δοκίμασε την δεύτερη Αν και οι δύο ματαιωθούν επανέλαβε ολόκληρο το atomic Παράλληλα Συστήματα 2011-2012 11

Πλεονεκτήματα συναλλαγών Ευκολος προγραμματισμός παρόμοια δυσκολία με coarse- grain locks Καλές επιδόσεις παρόμοιες με fine- grain locks Παραλληλισμός με εικασία ότι δεν υπάρχουν συγκρούσεις Δεν μπορεί να υπάρξει εμπλοκή (deadlock) Μπορεί να αντέξει σφάλματα προσωρινά προβλήματα του συστήματος (π.χ. λάθος κατά τη μεταφορά) Παράλληλα Συστήματα 2011-2012 12

Εγγραφές στη μνήμη Οι εγγραφές δεν μπορούν να αλλάξουν πραγματικά τη μνήμη πριν ολοκληρωθεί η συναλλαγή Είτε οι νέες τιμές κρατούνται σε ένα χώρο που λειτουργεί παρόμοια με cache (lazy versioning) και γράφονται στη μνήμη όταν επιτύχει η συναλλαγή ή οι παλιές τιμές κρατούνται σε ένα χώρο αποθήκευσης undo log (eager versioning) ώστε να μπορούν να αποκατασταθούν αν η συναλλαγή ματαιωθεί Παράλληλα Συστήματα 2011-2012 13

Ανίχνευση συγκρούσεων Το βασικό πρόβλημα υλοποίησης συστήματος συναλλαγών μνήμης είναι η ανίχνευση συγκρούσεων απαιτεί γνώση των διευθύνσεων μνήμης που διαβάστηκαν και γράφτηκαν Κρατούνται δύο set write- set το σύνολο των διευθύνσεων που γράφονται read- set το σύνολο των διευθύνσεων που διαβάζονται Οταν μια άλλη συναλλαγή τελειώνει, σύγκριση του write set με το δικό μας read- set αν υπάρχει επικάλυψη, ματαίωση της συναλλαγής (ποιάς?) Οταν η συναλλαγή τελειώνει, αποστολή του write- set σε όλους για έλεγχο Παράλληλα Συστήματα 2011-2012 14

Πολιτικές ανίχνευσης Η προηγούμενη μέθοδος ανίχνευσης είναι αισιόδοξη δουλεύει καλά αν σπάνια συμβαίνουν συγκρούσεις όλη η δουλειά της συναλλαγής ακυρώνεται αν υπάρχει σύγκρουση το κόστος είναι μεγάλο αν οι συγκρούσεις είναι συχνές Εναλλακτικά, κάθε εγγραφή μπορεί να ελέγχεται μεγάλο κόστος ανα εγγραφή γρήγορη ματαίωση σε περίπτωση σύγκρουσης Conflict detecmons: eager, lazy Παράλληλα Συστήματα 2011-2012 15

Εμπειρικοί κανόνες Οι συναλλαγές συνήθως αφορούν λίγα δεδομένα πάνω από 95% των προσπελάσεων χωρούν στη κρυφή μνήμη Οι συναλλαγές συνήθως ολοκληρώνονται με επιτυχία Λιγότερες από 10% ματαιώνονται 99.9% των συναλλαγών δεν κάνουν I/O Νόμος του Amdahl: βελτιστοποίηση του πιο συχνού φαινομένου Παράλληλα Συστήματα 2011-2012 16

Υλοποίηση TM Με λογισμικό (so ware transacmonal memory STM) αρκετά αργό χωρίς υποστήριξη από υλικό Με υλικό (hardware TM HTM) έμφαση της διάλεξης Παράλληλα Συστήματα 2011-2012 17

TCC (lazy TM) TransacMonal Coherence and Consistency (TCC) Kozyrakis, Olukotun (Stanford U.) Lazy system: ανίχνευση συγκρούσεων, data versioning Υποθέτουμε μικρό σύστημα με snoop πρωτόκολλο Βασίζεται σε μικρές αλλαγές του πρωτόκολλου συνοχής 2 επιπλέον bit κατάστασης ανά γραμμή κρυφής μνήμης rd- bit - 1 όταν μια γραμμή διαβάζεται από μια συναλλαγή wr- bit 1 όταν μια γραμμή γράφεται από μια συναλλαγή Παράλληλα Συστήματα 2011-2012 18

Λειτουργία TCC Αναγνώσεις: η γραμμή cache, προσκομίζεται ως read- only, αν δεν υπάρχει ήδη το rd- bit τίθεται (για το read- set) Εγγραφές: το wr- bit τίθεται (για το write- set) η γραμμή προσκομίζεται πάλι ως read- only, ως προς το πρωτόκολλο coherence, αν δεν υπάρχει ήδη έτσι οι αλλαγές δεν φαίνονται εξωτερικά, πριν το τέλος της συναλλαγής Αντικατάσταση γραμμών αν η γραμμή έχει το wr- bit η συναλλαγή απορίπτεται ή υπάρχει κάποιος μηχανισμός σε λογισμικό Παράλληλα Συστήματα 2011-2012 19

Διαδικασία commit Οταν η συναλλαγή τελειώσει οι αλλαγές πρέπει να γίνουν γνωστές στο σύστημα (commit) Ο διαιτητής του διαύλου (bus arbiter), αποφασίζει ποια συναλλαγή θα κάνει commit η συναλλαγή κρατάει το δίαυλο μέχρι να κάνει όλες τις εγγραφές Ολες οι γραμμές με wr- bit ίσο με 1, ακυρώνουν πιθανά αντίγραφα σε άλλες caches (busupgrade αφού ήταν read- only) δεν χρειάζεται πραγματική αντιγραφή των γραμμών μέχρι να αντικατασταθούν Οι άλλες συναλλαγές, αν έχουν ακύρωση μιας γραμμής που έχει το rd- bit, πρέπει να ματαιωθούν καθαρίζουν τα rd- wr- bits και ξανατρέχουν (ή εκτελούν το orelse) Παράλληλα Συστήματα 2011-2012 20

Συμπεράσματα TCC Lazy versioning: οι αλλαγές είναι τοπικές (στην cache) η μνήμη ενημερώνεται στο τέλος της συναλλαγής Lazy conflict detecmon: στο τέλος (commit) γίνεται ο έλεγχος Οι ματαιώσεις γίνονται γρήγορα Απαιτείται καθαρισμός των bit στη cache, άδειασμα pipeline και αντιγραφή καταχωρητών από checkpoint Η ολοκλήρωση της συναλλαγής είναι αργή έλεγχος συγκρούσεων, ακυρώσεις μέσω πρωτοκόλου coherence Δεν συμβαίνουν αδιέξοδα (deadlock) η συναλλαγή που θα κερδίσει τη διαιτησία ολοκληρώνεται πάντα Παράλληλα Συστήματα 2011-2012 21

LogTM (eager TM) Log based TM Un. of Wisconsin Εγγραφές γίνονται αμέσως, πριν τελειώσει η συναλλαγή eager versioning Αν γίνει ανάγνωση από άλλη συναλλαγή, η τελευταία τιμή επιστρέφεται και μπορεί να αλλάξει την κύρια μνήμη η προηγούμενη τιμή κρατιέται σε log γιατί μπορεί η συναλλαγή να αποτύχει το log κρατιέται στη μνήμη της διεργασίας και μπορεί να είναι στη κρυφή μνήμη υπάρχει βοήθεια από το υλικό Παράλληλα Συστήματα 2011-2012 22

Eager versioning Εγραφές απαιτούν ανάγνωση και εγγραφή της αρχικής τιμής στο log τμήμα της εικονικής μνήμης του νήματος Μια γραμμή που ήδη καταγράφεται (ανήκει write- set) δεν χρειάζεται άλλες καταχωρήσεις στο log μόνο η τιμή πριν την συναλλαγή χρειάζεται, όχι όλες οι ενδιάμεσες τιμές Το log μπορεί να είναι οργανωμένο ως στοίβα υποστήρίζει φωλιασμένες συναλλαγές Παράλληλα Συστήματα 2011-2012 23

Ανίχνευση συγκρούσεων Αφού οι αλλαγές μιας συναλλαγής, TrA γίνονται άμεσα, ανάγνωση/εγγραφή από άλλη συναλλαγή, TrB, επικοινωνεί με το αντίγραφο της TrA Ανίχνευση σύγκρουσης: αν μία τουλαχιστον από τις δύο προσπελάσεις είναι εγγραφή Μία λύση (requester retries) είναι να καθυστερήσει η TrB: η TrA στέλνει ένα NACK στην TrB η TrB περιμένει λίγο και ξαναπροσπαθεί με λίγη τύχη η TrA θα έχει ολοκληρωθεί και μπορεί να δώσει τη γραμμή στην TrB, χωρίς να χρειάζεται να ματαιωθεί καμία συναλλαγή Παράλληλα Συστήματα 2011-2012 24

Εμπλοκή Η λύση requester replies μπορεί να προκαλέσει εμπλοκή: Tr-A Tr-B write X write Y read Y read X Μπορεί να ανιχνευθεί και να ματαιωθεί μία συναλλαγή, χρησιμοποιώντας έναν contenmon manager (σε υλικό/ λογισμικό) Εναλλακτικά κάθε συναλλαγή έχει μια ηλικία και η νεώτερη ματαιώνεται όταν υπάρχει σύγκρουση Παράλληλα Συστήματα 2011-2012 25

eager versioning = απαισιοδοξία! Αφού οι συναλλαγές δεν ελέγχουν συγκρούσεις στο τέλος, δεν ξέρουμε με ποιά σειρά θα ολοκληρωθούν αν T1 τελειώσει πριν την T2, δεν υπάρχει σύγκρουση Αλλά επειδή δεν ξέρουμε τη σειρά υποθέτουμε το χειρότερο: T2 - > T1, δλδ. σύγκρουση Παράλληλα Συστήματα 2011-2012 26