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 |
Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο: