Vérification par model-checking de programmes concurrents paramétrés sur des modèles mémoires faibles
Les multiprocesseurs et microprocesseurs multicœurs modernes mettent en oeuvre des modèles mémoires dits faibles ou relâchés, dans dans lesquels l'ordre apparent des opérations mémoire ne suit pas la cohérence séquentielle (SC) proposée par Leslie Lamport. Tout programme concurrent s'exécu...
Main Author: | |
---|---|
Other Authors: | |
Language: | fr |
Published: |
2018
|
Subjects: | |
Online Access: | http://www.theses.fr/2018SACLS336/document |
id |
ndltd-theses.fr-2018SACLS336 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-theses.fr-2018SACLS3362020-02-04T03:22:29Z Vérification par model-checking de programmes concurrents paramétrés sur des modèles mémoires faibles Verification via Model Checking of Parameterized Concurrent Programs on Weak Memory Models Mémoire faible Model checking Vérification Weak memory Model checking Verification Les multiprocesseurs et microprocesseurs multicœurs modernes mettent en oeuvre des modèles mémoires dits faibles ou relâchés, dans dans lesquels l'ordre apparent des opérations mémoire ne suit pas la cohérence séquentielle (SC) proposée par Leslie Lamport. Tout programme concurrent s'exécutant sur une telle architecture et conçu avec un modèle SC en tête risque de montrer à l'exécution de nouveaux comportements, dont certains sont potentiellement des comportements incorrects. Par exemple, un algorithme d'exclusion mutuelle correct avec une sémantique par entrelacement pourrait ne plus garantir l'exclusion mutuelle lorsqu'il est mis en oeuvre sur une architecture plus relâchée. Raisonner sur la sémantique de tels programmes s'avère très difficile. Par ailleurs, bon nombre d'algorithmes concurrents sont conçus pour fonctionner indépendamment du nombre de processus mis en oeuvre. On voudrait donc pouvoir s'assurer de la correction d'algorithmes concurrents, quel que soit le nombre de processus impliqués. Pour ce faire, on s'appuie sur le cadre du Model Checking Modulo Theories (MCMT), développé par Ghilardi et Ranise, qui permet la vérification de propriétés de sûreté de programmes concurrents paramétrés, c'est-à-dire mettant en oeuvre un nombre arbitraire de processus. On étend cette technologie avec une théorie permettant de raisonner sur des modèles mémoires faibles. Le résultat ce ces travaux est une extension du model checker Cubicle, appelée Cubicle-W, permettant de vérifier des propriétés de systèmes de transitions paramétrés s'exécutant sur un modèle mémoire faible similaire à TSO. Modern multiprocessors and microprocesseurs implement weak or relaxed memory models, in which the apparent order of memory operation does not follow the sequential consistency (SC) proposed by Leslie Lamport. Any concurrent program running on such architecture and designed with an SC model in mind may exhibit new behaviors during its execution, some of which may potentially be incorrect. For instance, a mutual exclusion algorithm, correct under an interleaving semantics, may no longer guarantee mutual exclusion when implemented on a weaker architecture. Reasoning about the semantics of such programs is a difficult task. Moreover, most concurrent algorithms are designed for an arbitrary number of processus. We would like to ensure the correctness of concurrent algorithms, regardless of the number of processes involved. For this purpose, we rely on the Model Checking Modulo Theories (MCMT) framework, developed by Ghilardi and Ranise, which allows for the verification of safety properties of parameterized concurrent programs, that is to say, programs involving an arbitrary number of processes. We extend this technology with a theory for reasoning about weak memory models. The result of this work is an extension of the Cubicle model checker called Cubicle-W, which allows the verification of safety properties of parameterized transition systems running under a weak memory model similar to TSO. Electronic Thesis or Dissertation Text fr http://www.theses.fr/2018SACLS336/document Declerck, David 2018-09-24 Université Paris-Saclay (ComUE) Zaïdi, Fatiha |
collection |
NDLTD |
language |
fr |
sources |
NDLTD |
topic |
Mémoire faible Model checking Vérification Weak memory Model checking Verification |
spellingShingle |
Mémoire faible Model checking Vérification Weak memory Model checking Verification Declerck, David Vérification par model-checking de programmes concurrents paramétrés sur des modèles mémoires faibles |
description |
Les multiprocesseurs et microprocesseurs multicœurs modernes mettent en oeuvre des modèles mémoires dits faibles ou relâchés, dans dans lesquels l'ordre apparent des opérations mémoire ne suit pas la cohérence séquentielle (SC) proposée par Leslie Lamport. Tout programme concurrent s'exécutant sur une telle architecture et conçu avec un modèle SC en tête risque de montrer à l'exécution de nouveaux comportements, dont certains sont potentiellement des comportements incorrects. Par exemple, un algorithme d'exclusion mutuelle correct avec une sémantique par entrelacement pourrait ne plus garantir l'exclusion mutuelle lorsqu'il est mis en oeuvre sur une architecture plus relâchée. Raisonner sur la sémantique de tels programmes s'avère très difficile. Par ailleurs, bon nombre d'algorithmes concurrents sont conçus pour fonctionner indépendamment du nombre de processus mis en oeuvre. On voudrait donc pouvoir s'assurer de la correction d'algorithmes concurrents, quel que soit le nombre de processus impliqués. Pour ce faire, on s'appuie sur le cadre du Model Checking Modulo Theories (MCMT), développé par Ghilardi et Ranise, qui permet la vérification de propriétés de sûreté de programmes concurrents paramétrés, c'est-à-dire mettant en oeuvre un nombre arbitraire de processus. On étend cette technologie avec une théorie permettant de raisonner sur des modèles mémoires faibles. Le résultat ce ces travaux est une extension du model checker Cubicle, appelée Cubicle-W, permettant de vérifier des propriétés de systèmes de transitions paramétrés s'exécutant sur un modèle mémoire faible similaire à TSO. === Modern multiprocessors and microprocesseurs implement weak or relaxed memory models, in which the apparent order of memory operation does not follow the sequential consistency (SC) proposed by Leslie Lamport. Any concurrent program running on such architecture and designed with an SC model in mind may exhibit new behaviors during its execution, some of which may potentially be incorrect. For instance, a mutual exclusion algorithm, correct under an interleaving semantics, may no longer guarantee mutual exclusion when implemented on a weaker architecture. Reasoning about the semantics of such programs is a difficult task. Moreover, most concurrent algorithms are designed for an arbitrary number of processus. We would like to ensure the correctness of concurrent algorithms, regardless of the number of processes involved. For this purpose, we rely on the Model Checking Modulo Theories (MCMT) framework, developed by Ghilardi and Ranise, which allows for the verification of safety properties of parameterized concurrent programs, that is to say, programs involving an arbitrary number of processes. We extend this technology with a theory for reasoning about weak memory models. The result of this work is an extension of the Cubicle model checker called Cubicle-W, which allows the verification of safety properties of parameterized transition systems running under a weak memory model similar to TSO. |
author2 |
Université Paris-Saclay (ComUE) |
author_facet |
Université Paris-Saclay (ComUE) Declerck, David |
author |
Declerck, David |
author_sort |
Declerck, David |
title |
Vérification par model-checking de programmes concurrents paramétrés sur des modèles mémoires faibles |
title_short |
Vérification par model-checking de programmes concurrents paramétrés sur des modèles mémoires faibles |
title_full |
Vérification par model-checking de programmes concurrents paramétrés sur des modèles mémoires faibles |
title_fullStr |
Vérification par model-checking de programmes concurrents paramétrés sur des modèles mémoires faibles |
title_full_unstemmed |
Vérification par model-checking de programmes concurrents paramétrés sur des modèles mémoires faibles |
title_sort |
vérification par model-checking de programmes concurrents paramétrés sur des modèles mémoires faibles |
publishDate |
2018 |
url |
http://www.theses.fr/2018SACLS336/document |
work_keys_str_mv |
AT declerckdavid verificationparmodelcheckingdeprogrammesconcurrentsparametressurdesmodelesmemoiresfaibles AT declerckdavid verificationviamodelcheckingofparameterizedconcurrentprogramsonweakmemorymodels |
_version_ |
1719312650800726016 |