A sequentially performed implementation of a compound compare-and-swap
(nCAS) operation has been developed. In one implementation, a double
compare-and-swap (DCAS) operation does not result in a fault, interrupt,
or trap in the situation where memory address A2 is invalid and the
contents of memory address A1 are unequal to C1. In some realizations,
memory locations addressed by a sequentially performed nCAS or DCAS
instruction are reserved (e.g., locked) in a predefined order in
accordance with a fixed total order of memory locations. In this way,
deadlock between concurrently executed instances of sequentially performed
nCAS instructions can be avoided. Other realizations defer responsibility
for deadlock avoidance to the programmer.
Μια διαδοχικά διενεργηθείσα εκτέλεση μιας σύνθετης επιχείρησης συγκρίνω-και-ανταλλαγής (nCAS) έχει αναπτυχθεί. Σε μια εφαρμογή, μια διπλή λειτουργία συγκρίνω-και-ανταλλαγής (DCAS) δεν οδηγεί σε ένα ελάττωμα, δεν διακόπτει, ή την παγίδα στην κατάσταση όπου η διεύθυνση μνήμης A2 είναι άκυρη και το περιεχόμενο της διεύθυνσης Α1 μνήμης είναι άνισο C1. Σε μερικές πραγματοποιήσεις, οι θέσεις μνήμης που εξετάζονται από μια διαδοχικά διενεργηθείσα οδηγία nCAS ή DCAS είναι διατηρημένες (π.χ., κλειδωμένος) σε μια προκαθορισμένη διαταγή σύμφωνα με μια σταθερή συνολική διαταγή των θέσεων μνήμης. Κατ' αυτό τον τρόπο, το αδιέξοδο μεταξύ των ταυτόχρονα εκτελεσμένων περιπτώσεων διαδοχικά διενεργηθεισών οδηγιών nCAS μπορεί να αποφευχθεί. Αλλες πραγματοποιήσεις αναβάλλουν την ευθύνη για την αποφυγή αδιεξόδου στον προγραμματιστή.