HEAL DSpace

Συστηματικός έλεγχος ορθότητας του read-copy-update υπό ακολουθιακά συνεπή και ασθενή μοντέλα μνήμης

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

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

dc.contributor.author Κοκολογιαννάκης, Μιχαήλ el
dc.contributor.author Kokologiannakis, Michail en
dc.date.accessioned 2017-02-15T11:02:13Z
dc.date.available 2017-02-15T11:02:13Z
dc.date.issued 2017-02-15
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/44366
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.13414
dc.rights Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα *
dc.rights.uri http://creativecommons.org/licenses/by-nc-nd/3.0/gr/ *
dc.subject Linux kernel en
dc.subject RCU en
dc.subject Operating systems en
dc.subject Read-copy-update en
dc.subject Systematic concurrency testing en
dc.subject Λειτουργικά συστήματα el
dc.subject Πυρήνας Linux el
dc.subject Επαλήθευση λογισμικού el
dc.title Συστηματικός έλεγχος ορθότητας του read-copy-update υπό ακολουθιακά συνεπή και ασθενή μοντέλα μνήμης el
heal.type bachelorThesis
heal.classification Ταυτοχρονισμός και παραλληλισμός el
heal.classification Επαλήθευση και επικύρωση λογισμικού el
heal.classification Λειτουργικά συστήματα el
heal.classificationURI http://data.seab.gr/concepts/c926feba437a8b1179bd98f6e021984f68500254
heal.classificationURI http://data.seab.gr/concepts/9a367b8b0e32593a3e78405d89e72fd92257cc32
heal.classificationURI http://data.seab.gr/concepts/9e8d87afd5f903dea321910add7e91bf7f2879ea
heal.access free
heal.recordProvider ntua el
heal.publicationDate 2016-10-13
heal.abstract Ο συστηματικός έλεγχος ορθότητας και η επαλήθευση παράλληλων προγραμμάτων, παρουσιάζουν σημαντικές δυσκολίες. Ας θεωρήσουμε, για παράδειγμα, μια βιβλιοθήκη προγραμμάτων που χρησιμοποιείται για το συγχρονισμό μεταξύ διεργασιών, ή για τον έλεγχο πρόσβασης σε κάποιες κοινές μεταξύ διαφόρων νημάτων δομές δεδομένων. Κατά την κατασκευή μιας συστηματικής διαδικασίας ελέγχου για μία τέτοια βιβλιοθήκη, πρέπει να ληφθούν υπ' όψιν: οι πολλοί πιθανοί τρόποι με τους οποίους τα νήματα-πελάτες έχουν πρόσβαση στη βιβλιοθήκη, οι διαφορετικοί τρόποι με τους οποίους τα νήματα και η βιβλιοθήκη αλληλεπιδρούν, καθώς και οποιεσδήποτε επιπτώσεις οφείλονται στο ασθενές μοντέλο μνήμης (weak memory model) που χρησιμοποιείται από τους σύγχρονους μικροεπεξεργαστές. Ο σκοπός της διπλωματικής αυτής εργασίας είναι ο συστηματικός έλεγχος ορθότητας της βιβλιοθήκης Read-Copy-Update, ενός μηχανισμού συγχρονισμού που χρησιμοποιείται ευρέως στον πυρήνα του λειτουργικού συστήματος Linux. Για το σκοπό αυτό, χρησιμοποιήθηκε το Nidhugg, ένα εργαλείο ελέγχου μοντέλου χωρίς αποθήκευση της κατάστασης (stateless model checking tool) για C/pthreads προγράμματα, το οποίο ενσωματώνει επεκτάσεις για τη μελέτη των επιπτώσεων διαφόρων ασθενών μοντέλων μνήμης, όπως TSO, PSO και POWER. Κατασκευάσαμε μία μη-φορμαλιστική, αλλά πλήρη λίστα προδιαγραφών για το Read-Copy-Update, καθώς και μία κατάλληλη συλλογή προγραμμάτων που στοχεύουν στον συστηματικό έλεγχό του. Στην εργασία αυτή, παρουσιάζουμε την πρώτη μηχανική επαλήθευση της ιδιότητας της ``Περιόδου Χάριτος'' (Grace-Period guarantee) του RCU, χρησιμοποιώντας το Tree RCU, το οποίο αποτελεί την κύρια υλοποίηση που χρησιμοποιείται στον πυρήνα του Linux. Επιπρόσθετα, αναπαρηγάγαμε ένα γνωστό σφάλμα (bug) στον πυρήνα χρησιμοποιώντας το Nidhugg, ενώ αντίθετα, δείξαμε ότι ένα προηγουμένως αναφερόμενο ως bug, στην πραγματικότητα δεν αποτελεί bug. Τέλος, ελέγχθηκαν επίσης κάποιες ακόμη ιδιότητες του Tree RCU και του Tiny RCU. el
heal.abstract Thorough verification and testing of concurrent programs is an important, but also challenging problem. Consider, for instance, a library for synchronization between processes, or for providing access to some shared data structure by many threads. When setting up a thorough testing procedure for such a library, one must consider: the many possible ways in which client threads can access this library, all the different ways in which the threads in the library itself can interact, and any possible effects of the weak memory consistency models which are employed in modern microprocessors. This thesis investigates the systematic concurrency testing of the Read-Copy-Update library, a synchronization mechanism used heavily in the Linux kernel. For this purpose we used Nidhugg, a stateless model checking tool for C/pthreads programs, which incorporates extensions for checking effects of weak memory models such as TSO, PSO and POWER. An informal, yet precise specification for Read-Copy-Update has been constructed, along with a suitable systematic test suite for it. In this thesis, we present the first mechanical validation of the Grace-Period guarantee of Linux kernel’s Tree RCU implementation, for non-preemptible environments. Furthermore, we managed to reproduce a known bug in the kernel using Nidhugg, and to prove that a previously reported bug does not in reality qualify as a bug. Finally, some other properties of Tree RCU and Tiny RCU have been tested as well. en
heal.advisorName Σαγώνας, Κωνσταντίνος el
heal.committeeMemberName Παπασπύρου, Νικόλαος el
heal.committeeMemberName Κοζύρης, Νεκτάριος el
heal.committeeMemberName Σαγώνας, Κωνσταντίνος el
heal.academicPublisher Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών el
heal.academicPublisherID ntua
heal.numberOfPages 86 σ. el
heal.fullTextAvailability true


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

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

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

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

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