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

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

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

Φροντιστήριο 4 Σκελετοί Λύσεων

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

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές

Εργαστήριο 5: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Διπλά Συνδεδεμένη Λίστα

Φροντιστήριο 4 Σκελετοί Λύσεων

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

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

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

Δομές ελέγχου ροής προγράμματος

Στοίβες με Δυναμική Δέσμευση Μνήμης

Εισαγωγή στον Προγραμματισμό (με. τη C)

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

ΠΛΗ111. Ανοιξη Μάθηµα 5 ο. Ουρά. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Υλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις

Διδάσκων: Παναγιώτης Ανδρέου

Εισαγωγή στον Προγραμματισμό

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο)

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διάλεξη 11: Φροντιστήριο για Στοίβες. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

ΠΛΗ111. Ανοιξη Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Διδάσκων: Παναγιώτης Ανδρέου

Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα

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

Προγραμματισμός Ι. Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Βασικές Έννοιες Δοµών Δεδοµένων

Ανάπτυξη και Σχεδίαση Λογισμικού

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Εργαστήριο 5 Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ με αλφαβητική σειρά

IsEmptyList(L): επιστρέφει true αν L = < >, false

Θεωρητικό Μέρος. 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); } }

Ενότητα 2 Στοίβες Ουρές - Λίστες. ΗΥ240 - Παναγιώτα Φατούρου 1

Στοιχειώδεις Δομές Δεδομένων

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου

Στοίβες Ουρές - Λίστες

Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 2η: Στοίβες Ουρές - Λίστες Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Διάλεξη 14: Δομές Δεδομένων ΙΙI (Λίστες και Παραδείγματα)

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1

Γράφοι. Ορολογία. Ορισµός: G = (V, E) όπου. Ορολογία (συνέχεια) γράφος ή γράφηµα (graph) V:ένα σύνολο E:µια διµελής σχέση στο V

Διδάσκων: Παναγιώτης Ανδρέου

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη

HY-486 Αρχές Κατανεμημένου Υπολογισμού

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

Κεφάλαιο 10 Ψηφιακά Λεξικά

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

Πανεπιστήµιο Θεσσαλίας, THMMY HY120, Σεπτέµβριος 2015 ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

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

Sheet2. - Άσκηση 1 οκ - Άσκηση 2 οκ. Σκέψου πώς θα µπορούσες να την

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)

Περιεχόμενα. Πρόλογος... 21

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Εργαστήριο 8: Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Διαδικασιακός Προγραμματισμός

Εισαγωγή στον δομημένο προγραμματισμό

Εισαγωγή στην επιστήμη των υπολογιστών. Οργάνωση εδομένων Κεφάλαιο 11ο ομές εδομένων

Προγραµµατισµός Ι (ΗΥ120)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

for for for for( . */

Ενότητα 2 Στοίβες Ουρές - Λίστες

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

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή

Δομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες

Διαδικασιακός Προγραμματισμός

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

Εισαγωγή στον Προγραμματισμό

Alternative to Balanced Trees, Comms of the ACM, 33(6), June 1990,

Εργαστήριο 5. Εαρινό Εξάμηνο

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

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

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

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

Η γλώσσα προγραμματισμού C Συνδεδεμένες Λίστες

Διδάσκων: Παναγιώτης Ανδρέου

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Σημειώσεις έκτης και έβδομης εβδομάδας

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

υναµική έσµευση Μνήµης (συν.) ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 Εφαρµογή

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Διδακτικά προβλήματα σχετικά με την έννοια της επανάληψης

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and

Transcript:

Software Transactional Memory H STM υποστηρίζει την εκτέλεση δοσοληψιών από τις διεργασίες, οι οποίες περιέχουν λειτουργίες που ο χρήστης θέλει να εκτελέσει στα διαµοιραζόµενα αντικείµενα. H STM εγγυάται την ατοµική εκτέλεση των λειτουργιών µιας δοσοληψίας -> είτε όλες οι λειτουργίες της δοσοληψίας θα εκτελεστούν ατοµικά ή καµία. Σκοϖός της STM Απλούστευση της συγγραφής παράλληλου κώδικα Υποστηρίζεται η σύνθεση µιας ή περισσότερων λειτουργιών ατοµικών αντικειµένων σε µια που εκτελείται µε ατοµικό τρόπο. o π.χ., InsertDual() σε λίστα (εισαγωγή δυο στοιχείων στη λίστα)

STM: Πως λειτουργεί; Αντιστοιχίζονται κάποιου είδους επιπλέον πληροφορίες (metadata): 1. σε κάθε δοσοληψία π.χ., κατάσταση δοσοληψίας (ενεργή, ολοκληρωµένη επιτυχώς, ολοκληρωµένη µη-επιτυχώς), κλπ. 2. σε κάθε διαµοιραζόµενο αντικείµενο που προσπελάζεται µέσω δοσοληψιών π.χ., περιγραφή δοσοληψίας που κατέχει δικαίωµα προσπέλασης στο αντικείµενο Ιδιοκτησία Αντικειµένου Αποκτάται από µια δοσοληψία πριν την ενηµέρωση του αντικειµένου Αντιστρέψιµη (π.χ., βίαιος τερµατισµός δοσοληψίας, µηχανισµός βοήθειας, κ.α.) Μη-αντιστρέψιµη (κλείδωµα, κ.α.)

Ορατές Μη ορατές Αναγνώσεις Η ανάγνωση ενός αντικειµένου από µια δοσοληψία πρέπει να εξασφαλίζει ότι τα δεδοµένα δεν ενηµερώνονται ταυτόχρονα από άλλες δοσοληψίες. Απόκτηση ιδιοκτησίας ανάγνωσης (ορατή ανάγνωση) Μη ορατή ανάγνωση (αναγκαιότητα µηχανισµού ελέγχου συνέπειας) Ορισµός t-µεταβλητές: κελιά µνήµης που προσπελάζονται µόνο µέσω δοσοληψιών Αν οι t-µεταβλητές είναι γνωστές εξ αρχής (κατά την εκκίνηση κάθε διεργασίας) η STM λέγεται στατική. Αν αυτό δεν ισχύει, η STM λέγεται δυναµική. Πίνακας από µεταβλητές; Λίστα; Ουρά; Η STM επιτρέπει στις διεργασίες να επικοινωνούν διαβάζοντας και ενηµερώνοντας t- µεταβλητές µέσω δοσοληψιών.

STM ως shared object H STM υποστηρίζει τις εξής λειτουργίες: 1. pointer BeginTransaction(): εκκίνηση νέας δοσοληψίας -> επιστρέφεται δείκτης στα metadata που περιγράφουν τη δοσοληψία. Ο δείκτης αυτός χρησιµοποιείται ως παράµετρος σε όλες τις υπόλοιπες λειτουργίες 2. pointer CreateNewTMVar(pointer t, pointer d): δηµιουργία νέας t-µετβλητής -> t: δείκτης στα metadata της δοσοληψίας, d: δείκτης στη θέση µνήµης µε την οποία συσχετίζεται η νέα t-µεταβλητή. 3. (Boolean, d) ReadTMVar(pointer t, pointer tvar): ανάγνωση της t-µεταβλητής στην οποία δείχνει ο δείκτης tvar. Επιστρέφεται TRUE ή FALSE, ανάλογα µε το αν η ανάγνωση ολοκληρώνεται επιτυχώς ή όχι και επιστρέφεται και τα δεδοµένα της tvar σε περίπτωση επιτυχούς ανάγνωσης. 4. Boolean WriteTMVar(pointer t, pointer tvar, pointer d): εγγραφή στην tvar των δεδοµένων που δείχνει ο d 5. Boolean CommitTransaction(pointer t): προσπάθεια επιτυχούς ολοκλήρωσης της δοσοληψίας t 6. AbortTransaction(pointer t): τερµατισµός της t ως µη-επιτυχηµένης.

STM: Χρήσιµοι Ορισµοί Μια δοσοληψία είναι µια ακολουθία από λειτουργίες που εκτελούνται ατοµικά από µια συγκεκριµένη διεργασία. Μια δοσοληψία είναι της µορφής: (BeginTransaction (CreateTMVar ReadTMVar WriteTMVar)* (CommitTransaction AbortTransaction)) δοσοληψία ανάγνωσης δοσοληψία ενηµέρωσης Αν µια δοσοληψία Τ καλέσει την CommitTransaction και αυτή επιστρέψει TRUE, τότε η Τ έχει ολοκληρωθεί επιτυχώς. Αν µια δοσοληψία Τ καλέσει την AbortTransaction λέµε ότι η Τ ολοκληρώνεται µηεπιτυχώς. Λέµε ότι η Τ τερµατίζεται βίαια ως µη-επιτυχηµένη σε µια εκτέλεση, αν η Τ ολοκληρωθεί ως µη-επιτυχηµένη χωρίς να καλέσει την AbortTransaction.

STM: Ορθότητα και Απόδοση Ορθότητα Σειριοποιησιµότητα για δοσοληψίες; Μετρικά Πολυϖλοκότητας Χρονική πολυπλοκότητα µιας λειτουργίας Χωρική πολυπλοκότητα Ικανότητα ιεκϖεραίωσης (throughput): πλήθος δοσοληψιών που ολοκληρώνονται επιτυχώς στη µονάδα του χρόνου Μέσος χρόνος διεκϖεραίωσης: µέσος χρόνος διεκπεραίωσης µιας δοσοληψίας ως επιτυχηµένης (δεδοµένου ότι κάθε φορά που αυτή αποτυγχάνει επαν-εκτελείται µέχρι να επιτευχθεί επιτυχία).

STM: Χρήσιµοι Ορισµοί Σύγκρουση µεταξύ δυο δοσοληψιών t 1 και t 2 : παρουσιάζεται αν οι t 1, t 2 προσπελάζουν την ίδια t-µεταβλητή tvar και τουλάχιστον µια από τις δυο αποσκοπεί στην ενηµέρωση της tvar. Εγγραφής-ανάγνωσης (W-R) Ανάγνωσης-εγγραφής (R-W) Εγγραφής-εγγραφής (W-W) Αϖαραίτητες Συµβάσεις ϖου ϖρέϖει να ακολουθούνται αϖό τον χρήστη Μια δοσοληψία εκκινείται µε την εκτέλεση της BeginTransaction(). δείκτης που επιστρέφεται από την BeginTransaction() χρησιµοποιείται ως παράµετρος σε όλες τις λειτουργίες που καλούνται µέσω αυτής της δοσοληψίας. Ο χρήστης µπορεί να έχει το πολύ µια εκκρεµή δοσοληψία κάθε χρονική στιγµή. Μια δοσοληψία µπορεί να προσπελάζει µόνο t-µεταβλητές καλώντας τις ReadTMVar() και WriteTMVar(). t-µεταβλητές µπορούν να δηµιουργηθούν µόνο καλώντας την CreateNewTMVar().

Παράδειγµα Χρήσης της STM: ιαµοιραζόµενος Μετρητής 1. void AtomicCounterIncrement (TmVar counter) { 2. int tmp; 3. TmVar newtmvar; 4. boolean bool; 5. void *t; 6. while (1) { 7. t = BeginTransaction (); // δηµιουργία µιας νέας δοσοληψίας 8. (bool, tmp) = ReadTmVar (t, counter); // ανάγνωση της t-µεταβλητής counter 9. tmp ++; // tmp = τιµή της t-µετ/τής counter 10. bool = WriteTmVar (t, counter, tmp); // εγγραφή στην t-µετ/τής counter // counter = tmp 11. if (bool == false) { // αν η αυξηµένη τιµή είναι απαρχαιωµένη // η WriteTmVar αποτυγχάνει // επιστρέφοντας FALSE 12. AbortTransaction(t); 13. continue; 14. } 15. if (CommitTransaction(t) == TRUE) 16. break; // η δοσοληψία τερµατίζει επιτυχώς 17. } 18. }

Παράδειγµα Χρήσης της STM: Shared Ordered List struct node{ int num; struct node *next; } typedef void * TmVar; struct node { int num; TmVar next; } list start 0x2048 0x4096 0x8192 M M M e e e list start 0x128 0x256 0x384 3 7 2 t a d t a d t a d a a a 0x128 0x256 0x384 3 7 2

Παράδειγµα Χρήσης της STM: Shared Ordered List boolean InsertS(struct node **L, int x) { struct node *P, *prevp = NULL, *newnode; P = *L; while (P!= NULL && P->num < x) { prevp = P; P = P->next } if (P!= NULL && P->num == x) return(false); else { newnode = malloc( sizeof( struct node)); newnode->next = P; if (prevp == NULL) *L = P; else prevp -> next = newnode; return (TRUE); } } Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

Παράδειγµα Χρήσης της STM: Shared Ordered List void Insert (int num, TmVar liststart) { Object *tmpnode=null, *newnode; TmVar tmpnodetmvar, newtmvar; boolean bool; void *t; while (1) { t = BeginTransaction (); tmpnodetmvar = liststart; do { if (tmpnode!= null) tmpnodetmvar = tmpnode->next; (bool, tmpnode) = ReadTmVar (t, tmpnodetmvar); if (bool == false) break; } while (tmpnode->next == null); if (bool == false) AbortTransaction(t); else { newnode = (Node *)malloc (sizeof(node)); newnode->num = num; newnode->next = null; newtmvar = CreateNewTmVar (t, newnode); tmpnode->next = newtmvar; bool = WriteTmVar (t, tmpnodetmvar, tmpnode); if (bool == false) continue; if (CommitTransaction(t) == TRUE) break; } // else } // while } // Insert Ατοµικά Στιγµιότυπα Μνήµης Παναγιώτα Φατούρου

Κατηγορίες Σχεδιαστικών Επιλογών Οι αλγόριθµοι STM διαφέρουν στα εξής: 1. Τρόπος Ανάθεσης, Απόκτησης και Κατάργησης Ιδιοκτησιών 2. Χρόνος Απόκτησης Ιδιοκτησιών 3. Τρόποι Αποτροπής ή Ανίχνευσης και Επίλυσης Συγκρούσεων και Μηχανισµός Ελέγχου Συνέπειας 4. Πλήθος Ενδιάµεσων Επιπέδων 5. Μοντέλο Μνήµης

Τρόπος Ανάθεσης, Απόκτησης και Κατάργησης Ιδιοκτησιών Αϖλούστερος Αλγόριθµος: χρησιµοποιεί µια µόνο ιδιοκτησία για όλες τις t- µεταβλητές Καλύτερη Αϖόδοση µια ιδιοκτησία ανά t-µεταβλητή Ανάθεση ανά t-µεταβλητή ανάθεση ανά shared object ανά σύνολο ανάθεση Κάθε δοσοληψία µπορεί να είναι είτε ενεργή ή ολοκληρωµένη. Στα metadata για τη δοσοληψία αποθηκεύεται µια µεταβλητή status. Εϖώνυµη ϖληροφορία ιδιοκτησιών Στα metadata µιας t-µεταβλητής αναφέρεται ποια δοσοληψία έχει υπό την κατοχή της την ιδιοκτησία για αυτή την µεταβλητή. Ανώνυµη ϖληροφορία δοσοληψιών Κάθε t-µεταβλητή µπορεί να είναι είτε υπό κατοχή ή ελεύθερη Ορατές Μη ορατές αναγνώσεις Μόνιµη Προσωρινή Ιδιοκτησία blocking non blocking algorithms

Χρόνος Απόκτησης Ιδιοκτησιών Εκ των ϖροτέρων αϖόκτηση άµεση ενηµέρωση (undo logs) Εκ των υστέρων αϖόκτηση ετεροχρονισµένη ενηµέρωση (redo logs) Κάθε δοσοληψία διατηρεί δυο λίστες t-µεταβλητών: λίστα ενηµερώσεων λίστα αναγνώσεων

Τρόποι Αποτροπής ή Ανίχνευσης και Επίλυσης Συγκρούσεων Μηχανισµός Ελέγχου Συνέπειας Σύγκρουση R-W Όταν το σύστηµα χρησιµοποιεί µη-ορατές αναγνώσεις µπορεί να προκύψει ασυνέπεια. Μηχανσµός Ελέγχου Συνέϖειας: έλεγχος συνέπειας των t-µεταβλητών που µια δοσοληψία έχει αναγνώσει. Έκδοση t-µεταβλητής (version): Μια δοσοληψία που ενηµερώνει την t-µεταβλητή ενηµερώνει και το version της t-µεταβλητής. Πρόβληµα ϖου µϖορεί να ϖροκύψει αν δεν εφαρµοσθεί ο µηχανισµός ελέγχου συνέϖειας: 2 1 8 4 8 2 1 4 2 1 8 2 1 8

Τρόποι Αποτροπής ή Ανίχνευσης και Επίλυσης Συγκρούσεων Μηχανισµός Ελέγχου Συνέπειας Αυξητικός Έλεγχος Συνέϖειας Άλλες τεχνικές (έλεγχος συννέπειας πραγµατοποιείται κάθε ένα πεπερασµένο πλήθος λειτουργιών) Αυτόµατοι Μη Αυτόµατοι Μηχανισµοί Ελέγχου Συνέϖειας Ο µη αυτόµατος έλεγχος της συνέπειας απαιτεί την εµπλοκή του χρήστη (και επαύξηση των λειτουργιών που παρέχει το διαµοιραζόµενο αντικείµενο STM) Εϖιλογές όταν µια δοσοληψία Τ 1 συγκρούεται µε µια άλλη Τ 2 Η Τ 1 περιµένει την Τ 2 να ολοκληρωθεί Η Τ 1 µπορεί να ολοκληρωθεί ως µη-επιτυχηµένη Η Τ 1 µπορεί να τερµατίσει βίαια την Τ 2 και να αποκτήσει εκείνη την ιδιοκτησία της t- µεταβλητής που χρειάζεται Η Τ 1 µπορεί να βοηθήσει την Τ 2 να ολοκληρωθεί

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