Skip to main content

Τι είναι η συναλλακτική μνήμη;

Στο λογισμικό, το σχήμα της συναλλακτικής μνήμης είναι μια πορεία δράσης για τον προγραμματισμό πολλαπλών μελετών που χρησιμοποιεί συναλλαγές που μοιάζουν πολύ με αυτές που χρησιμοποιεί μια βάση δεδομένων.Όταν δύο ή περισσότερα νήματα προσπαθούν να έχουν πρόσβαση στα ίδια δεδομένα ταυτόχρονα, πολλές διαφορετικές ανεπιθύμητες καταστάσεις μπορούν να οδηγήσουν σε περιπτώσεις όπου το αποτέλεσμα ενός προγράμματος εξαρτάται από την παραγγελία πρόσβασης νήματος.Συνήθως, μια σειρά είναι επιθυμητή και σε πολλαπλές ανάβες, οι κλειδαριές είναι ο κυρίαρχος και απλούστερος τρόπος για να διασφαλιστεί ότι μόνο ένα νήμα έχει πρόσβαση σε έναν συγκεκριμένο πόρο κάθε φορά. Αυτή η προσέγγιση στη συναλλακτική μνήμη περιέχει πολλαπλά προβλήματα όσον αφορά τις κλειδαριές στο Multithreading.Μια κλειδαριά μπορεί να γίνει μόνιμη εάν εμφανιστεί κάποιο είδος απρόβλεπτου σφάλματος και οι κλειδαριές μπορούν να προκαλέσουν απρόβλεπτα ζητήματα με ταυτόχρονη, όπως η αδιέξοδο ή η αναστροφή προτεραιότητας.Ως αποτέλεσμα των κλειδαριών που είναι πολύ λεπτές, ένα άλλο ζήτημα περιλαμβάνει τον κώδικα που τελικά καταλήγει να ξοδεύει το μεγαλύτερο μέρος του χρόνου μεταξύ του κλειδώματος, της εναλλαγής περιβάλλοντος και του ξεκλειδώματος.Αυτό είναι ένα κρίσιμο πρόβλημα, διότι μπορεί να οδηγήσει στον κώδικα να δαπανήσει περισσότερο χρόνο σε αυτές τις ενέργειες παρά να κάνει άλλες, σημαντικές εργασίες στο πρόγραμμα.Αντίθετα, οι χονδροειδείς κλειδαριές μπορούν να προκαλέσουν μειωμένη απόδοση επεξεργασίας και μειωμένη ταυτότητα.Οι κύριες προτεραιότητες όσον αφορά τη μνήμη των συναλλαγών είναι να μην έχουν κλειδαριές και να μην είναι περιττός χρόνος επεξεργασίας κλειδώματος.Συνήθως συμφωνείται ότι μια δομή δεδομένων που μοιράζεται είναι απαλλαγμένη από κλειδαριές εάν δεν απαιτείται αμοιβαία αποκλεισμός από τις δραστηριότητές της.Οι δομές δεδομένων που είναι κοινόχρηστες και απαλλαγμένες από κλειδαριές αποφεύγουν συνήθως τα συσχετισμένα προβλήματα με τις τυποποιημένες τεχνικές κλειδώματος εάν βρίσκονται σε συστήματα που είναι εξαιρετικά ταυτόχρονα.

Το μοντέλο συνεκτικότητας και συνέπειας της μνήμης των συναλλαγών (TCC) είναι ένα νέο, προτεινόμενο μοντέλο για την κοινή μνήμη.Σύμφωνα με το μοντέλο, οι ατομικές συναλλαγές είναι πάντοτε βασικές μονάδες των ακόλουθων: παράλληλη εργασία, συνοχή της μνήμης, επικοινωνία και συνέπεια της αναφοράς μνήμης.Το μοντέλο TCC καθιστά επίσης το παράλληλο λογισμικό απλούστερο εξαλείφοντας τον συγχρονισμό που χρησιμοποιεί κλειδαριές προτύπων ή σηματοφόρα.Μέσω του υλικού, το TCC συνδυάζει επίσης κάθε εγγραφή από κάθε περιοχή της εμφάνισης συναλλαγών σε ένα πακέτο για να μεταδίδει ατομικά το πακέτο σε μια κατάσταση μνήμης που είναι μόνιμα κοινή.Εκτός από το απλοποιημένο υλικό συνοχής, αυτό σημαίνει ότι υπάρχει μείωση των απαιτούμενων μηνυμάτων χαμηλής σχέσης και πλήρους εξάλειψης ορισμένων, τυποποιημένων πρωτοκόλλων συνοχής.