HEAL DSpace

A test suite for model checking persistent memory programs

Αποθετήριο DSpace/Manakin

Εμφάνιση απλής εγγραφής

dc.contributor.author Παυλάτος, Σπυρίδων el
dc.contributor.author Pavlatos, Spyridon en
dc.date.accessioned 2022-11-28T10:28:10Z
dc.date.available 2022-11-28T10:28:10Z
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/56273
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.23971
dc.rights Αναφορά Δημιουργού-Όχι Παράγωγα Έργα 3.0 Ελλάδα *
dc.rights.uri http://creativecommons.org/licenses/by-nd/3.0/gr/ *
dc.subject Επίμονη μνήμη el
dc.subject Μοντέλα μνήμης el
dc.subject Συνέπεια μνήμης el
dc.subject Τεχνικές ελέγχου μοντέλου el
dc.subject Επαλήθευση ορθότητας λογισμικού el
dc.subject Persistent Memory en
dc.subject Memory models en
dc.subject Memory consistency en
dc.subject Model checking en
dc.subject Software verification en
dc.title A test suite for model checking persistent memory programs en
heal.type bachelorThesis
heal.classification Computer Science en
heal.access free
heal.recordProvider ntua el
heal.publicationDate 2022-07-27
heal.abstract Οι τελευταίες εξελίξεις στις τεχνολογίες μνήμης έχουν φέρει στο επίκεντρο την Επίμονη Μνήμη (ΕΜ), η οποία προσφέρει επιδόσεις συγκρίσιμες με τις DRAM και πρόσβαση σε επίπεδο byte, ενώ παράλληλα είναι μη πτητική, δηλαδή τα δεδομένα της παραμένουν και μετά τη διακοπή παροχής ηλεκτρικού ρεύματος. Για να εξασφαλίσει κανείς την ορθότητα προγραμμάτων σε ΕΜ, οι σύγχρονες αρχιτεκτονικές, όπως η Intel x86, προσφέρουν ειδικές εντολές που γράφουν (flush) τα δεδομένα των πτητικών cache στην κύρια μνήμη. Αυτές οι εντολές δημιουργούν συγκεκριμένες σειρές εγγραφής στην ΕΜ. Ο φορμαλισμός αυτών των σειρών δίνεται από τα μοντέλα επίμονης μνήμης και καθορίζει τις επιτρεπτές καταστάσεις του συστήματος μετά από κάποια αποτυχία του. Αυτή η εργασία αναπτύσσει μία σουίτα ελέγχου για προγράμματα ΕΜ. Η σουίτα αυτή περιλαμβάνει litmus tests και tests σε δομές δεδομένων. Τα litmus tests στοχεύουν στον έλεγχο της ορθότητας του εργαλείου που χρησιμοποιείται για την επαλήθευση ορθότητας του προγράμματος. Στην εργασία αυτή χρησιμοποιούμε το εργαλείο PERSEVERE, το οποίο υλοποιεί τεχνική ελέγχου μοντέλου για ΕΜ και βρίσκεται σε διαρκή ανάπτυξη. Μέσω των litmus tests καταφέραμε να βρούμε μία εσωτερική αστοχία του PERSEVERE, εξαιτίας της οποίας δεν μπορούσε να μοντελοποιηθεί σωστά το Px86 μοντέλο επίμονης μνήμης. Το γεγονός αυτό αναφέρθηκε στους δημιουργούς του PERSEVERE, οι οποίοι πρόσθεσαν επιπλέον υποστηρίξη στον πυρήνα του εργαλείου. Τα tests σε δομές δεδομένων στοχεύουν στον έλεγχο ορισμένων υλοποιήσεων δομών δεδομένων χωρίς κλειδώματα, καθώς και σε συγκεκριμενούς μετασχηματισμούς αυτών από την πρόσφατη βιβλιογραφία που μετατρέπουν αυτές τις δομές σε ανθεκτικώς γραμμικοποιήσιμες (durably linearizable). Μέσω της σουίτας μας μπορέσαμε να ελέγξουμε ότι οι βασικές εκδοχές των δομών αυτών δεν ήταν ανθεκτικές σε συγκρούσεις, ενώ οι μετασχηματισμοί τους περνάνε επιτυχώς τους ελέγχους μας. Επίσης, πειραματιστήκαμε με εξάλειψη ορισμένων flush εντολών των μετασχηματισμών, το οποίο οδήγησε σε παραβάσεις ορθότητας. Αυτό σημαίνει ότι οι εντολές αυτές είναι απαραίτητες για να εξασφαλίσουν την ορθότητα των δομών ως προς τις αποτυχίες συστήματος. Θεωρούμε ότι η σουίτα ελέγχου μας μπορεί να χρησιμοποιηθεί ως οδηγός για το πως να χρησιμοποιηθούν εργαλεία ελέγχου μοντέλου σε ΕΜ για την επαλήθευση ορθότητας ανθεκτικών δομών δεδομένων και βιβλιοθηκών, καθώς και ως σημεία αναφοράς για την επίδοση αυτών των εργαλείων. el
heal.abstract The latest advances in memory technologies have brought Persistent Memory to the spotlight. Persistent Memory (PM) provides DRAM-like performance and byte-addressability, while preserving its content in case of a crash (non-volatility). To ensure correctness of programs targeting PM, memory architectures, like Intel’s x86, have introduced new instructions that flush the contents of the volatile caches to the persistent domain. These instructions induce certain persist orderings, which are formalized by persistency memory models and define the allowed behaviours of the system after a crash. This thesis develops a test suite for PM programs, consisting of both litmus and data structure tests. Litmus tests aim to check the sanity of the tool used for verification. In our case, we used PERSEVERE, which is a persistency model checking tool under current development. Through our tests, we were able to pinpoint an internal inability of PERSEVERE to support the Px86 memory model, which led its developers to provide additional support in the tool’s core. The data structure tests try to test various implementations of lock-free data structures, as well as some adaptations and transformations found in recent literature that turn these implementations into durable linearizable ones. With our test suite, we were able to check that the original implementations of these data structures were not durably linearizable. On the other hand, the durable versions of the data structures pass our checks. Furthermore, we experimented with eliminating explicit flush instructions in these versions, which led to durably linearizability violations and therefore proving the necessity of these instructions to ensure durable linearizability. Our test suite can be used as a guideline for how to use model checking to verify durable data structures and persistent libraries, and can serve as a benchmark for persistency model checking tools. en
heal.advisorName Sagonas, Konstantinos en
heal.committeeMemberName Papaspyrou, Nikolaos en
heal.committeeMemberName Goumas, Georgios en
heal.committeeMemberName Sagonas, Konstantinos en
heal.academicPublisher Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών el
heal.academicPublisherID ntua
heal.numberOfPages 93 σ. el
heal.fullTextAvailability false


Αρχεία σε αυτό το τεκμήριο

Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο:

Αυτό το τεκμήριο εμφανίζεται στην ακόλουθη συλλογή(ές)

Εμφάνιση απλής εγγραφής

Αναφορά Δημιουργού-Όχι Παράγωγα Έργα 3.0 Ελλάδα Εκτός από όπου ορίζεται κάτι διαφορετικό, αυτή η άδεια περιγράφεται ως Αναφορά Δημιουργού-Όχι Παράγωγα Έργα 3.0 Ελλάδα