Το λήμμα παραθέτει τις πηγές του αόριστα, χωρίς παραπομπές. |
Στην επιστήμη των υπολογιστών ιδιαίτερα στους κλάδους του προγραμματισμού, λειτουργικών συστημάτων, μικροεπεξεργαστών και βάσεων δεδομένων (ΒΔ) ο έλεγχος ταυτοχρονισμού διασφαλίζει την ορθότητα των αποτελεσμάτων για ταυτόχρονες ενέργειες/συναλλαγές το ταχύτερο δυνατό. Τα υπολογιστικά συστήματα αποτελούνται από υποσυστήματα. Κάθε υποσύστημα σχεδιάζεται υιοθετώντας κάποιους κανόνες συνέπειας. Όταν τα υποσυστήματα που λειτουργούν ταυτόχρονα αλληλεπιδρούν στέλνοντας μηνύματα το ένα στο άλλο ή διακινώντας δεδομένα ίσως η συνέπεια κάποιου υποσυστήματος να παραβιάζεται από κάποιο άλλο. Ο έλεγχος ταυτοχρονισμού παρέχει κανόνες , μεθόδους και σχεδιαστικές μεθοδολογίες οι οποίες διατηρούν την συνέπεια των υποσυστημάτων τα οποία λειτουργούν ταυτόχρονα όταν αλληλεπιδρούν και επομένως διατηρεί την συνέπεια ολόκληρου του συστήματος. Οι κανόνες της συνέπειας και της ορθότητας συνάδουν με την αποδοτικότητα του συστήματος.
Ο έλεγχος ταυτοχρονισμού στα Συστήματα Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ), σε άλλα Αντικείμενα Συναλλαγής (αντικείμενα με καταστάσεις οι οποίες αλλάζουν και προσπελαύνονται από συναλλαγές βάσεων δεδομένων) και συσχετιζόμενες κατανεμημένες εφαρμογές (π.χ. Grid Computing και Cloud Computing) διασφαλίζει ότι οι συναλλαγές ΒΔ πραγματοποιούνται ταυτόχρονα χωρίς ο ταυτοχρονισμός να παραβιάζει την ακεραιότητα των δεδομένων της βάσης. Μια συναλλαγή στις ΒΔ ορίζεται σαν ένα αντικείμενο το οποίο τηρεί τους κανόνες ACID οι οποίοι περιγράφονται πιο κάτω. Ένα ΣΔΒΔ συνήθως εγγυάται ότι πραγματοποιούνται μόνο σειριοποιήσιμα χρονοπρογράμματα για ορθότητα (εκτός αν η σειριοποιησιμότητα αγνοείται σκόπιμα). Για να διατηρείται η ορθότητα σε περίπτωση εσφαλμένων συναλλαγών στα χρονοπρογράμματα πρέπει να είναι ανακτήσιμα (Η ανακτησιμότητα (recoverability) σημαίνει ότι οι δεσμευμένες συναλλαγές δεν έχουν δεδομένα γραμμένα από ακυρωμένες συναλλαγές (και οι συνέπειες τους δεν υπάρχουν στις καταστάσεις της βάσης δεδομένων). Αφού η σειριοποιησιμότητα είναι εκτεθειμένη σκόπιμα σε πολλές εφαρμογές για καλύτερη εφαρμογή (μόνο σε περιπτώσεις όπου η ορθότητα της εφαρμογής δεν επηρεάζεται), εκθέτοντας την ανακτησιμότητα θα παραβιαζόταν η ακεραιότητα της βάσης αλλά και θα εξέθετε τα αποτελέσματα των συναλλαγών.). Ένα ΣΔΒΔ εγγυάται επίσης ότι δεν χάνεται κανένα αποτέλεσμα συναλλαγής η οποία έχει πάρει commit και δεν παραμένει κανένα αποτέλεσμα συναλλαγής στην σχετική βάση δεδομένων η οποία έχει γίνει abort.
Οι κύριες κατηγορίες τεχνικών ελέγχου ταυτοχρονισμού είναι:
Υπάρχουν πολλές μέθοδοι ελέγχου ταυτοχρονισμού. Οι περισσότερες από αυτές μπορούν να υλοποιηθούν με οποιαδήποτε από τις παραπάνω τεχνικές. Οι κυριότερες μέθοδοι οι οποίες έχουν πολλές παραλλαγές περιλαμβάνουν:
Ένας κοινός κύριος στόχος του έλεγχου ταυτοχρονισμού είναι να δημιουργούν σειριοποιήσιμα χρονοπρογράμματα. Η σειριοποιησιμότητα θεωρείται το υψηλότερο επίπεδο απομόνωσης μεταξύ συναλλαγών και το μεγαλύτερο κριτήριο ορθότητας για ταυτόχρονες συναλλαγές. Σε μερικές περιπτώσεις πιο απλές μορφές σειριοποιησιμότητας επιτρέπονται για καλύτερη ταχύτητα του συστήματος, αν η ορθότητα της εφαρμογής δεν παραβιάζεται από την απλούστευση. Σχεδόν όλες οι υλοποιημένες τεχνικές ελέγχου ταυτοχρονισμού πετυχαίνουν σειριοποιησιμότητα προσφέροντας σειριοποιησιμότητα συγκρούσεων, μια ειδική περίπτωση σειριοποιησιμότητας (η άλλη περίπτωση είναι η σειριοποιησιμότητα όψεως) η οποία μπορεί να υλοποιηθεί ανάλογα με την περίσταση.
Ο έλεγχος ταυτοχρονισμού διασφαλίζει επίσης την ιδιότητα της ανακτησιμότητας των χρονοπρογραμμάτων, για διατήρηση ορθότητας όταν οι συναλλαγές δεχτούν abort (το οποίο μπορεί να συμβεί για διαφορετικούς λόγους).
Καθώς τα ΣΔΒΔ γίνονται κατανεμημένα ή συνεργάζονται με κατανεμημένα περιβάλλοντα δημιουργείται η ανάγκη για τεχνικές κατανεμημένου ελέγχου ταυτοχρονισμού. Επιτυγχάνοντας κατανεμημένη σειριοποιησιμότητα και ευρεία σειριοποιησιμότητα προϋποθέτει ειδικές απαιτήσεις οι οποίες τυπικά δεν υιοθετούνται από τοπικές τεχνικές σειριοποιησιμότητας. Η τεχνική Commitment Ordering παρέχει μια αποτελεσματική λύση και για τα δυο (ευρεία και κατανεμημένη σειριοποιησιμότητα).