Formalizing and verifying transactional memories

Vasu Singh
2009
Transactional memory (TM) has shown potential to simplify the task of writing concurrent programs. TM shifts the burden of managing concurrency from the programmer to the TM algorithm. The correctness of TM algorithms is generally proved manually. The goal of this thesis is to provide the mathematical and software tools to automatically verify TM algorithms under realistic memory models. Our first contribution is to develop a mathematical framework to capture the behavior of TM algorithms and
more » ... TM algorithms and the required correctness properties. We consider the safety property of opacity and the liveness properties of obstruction freedom and livelock freedom. We build a specification language of opacity. We build a framework to express hardware relaxed memory models. We develop a new high-level language, Relaxed Memory Language (RML), for expressing concurrent algorithms with a hardware-level atomicity of instructions, whose semantics is parametrized by various relaxed memory models. We express TM algorithms like TL2, DSTM, and McRT STM in our framework. The verification of TM algorithms is difficult because of the unbounded number, length, and delay of concurrent transactions and the unbounded size of the memory. The second contribution of the thesis is to identify structural properties of TM algorithms which allow us to reduce the unbounded verification problem to a language-inclusion check between two finite state systems. We show that common TM algorithms satisfy these structural properties. The third contribution of the thesis is our tool FOIL for model checking TM algorithms. FOIL takes as input the RML description of a TM algorithm and the description of a memory model. FOIL uses the operational semantics of RML to compute the language of the TM algorithm for two threads and two variables. FOIL then checks whether the language of the TM algorithm is included in the specification language of opacity. FOIL automatically determines the locations of fences, which if inserted, ensure the correctness of the TM algorithm under the given memory model. We use FOIL to verify DSTM, TL2, and McRT STM under the memory models of sequential consistency, total store order, partial store order, and relaxed memory order. Résumé Les Mémoires Transactionnelles (MT) ont démontré un grand potentiel pour simplifier l'écriture de programmes concurrents. Les MTévitent aux programmeurs de se préoccuper de la concurrence, qui est gérée au niveau des algorithmes de MT elles-mêmes. La correction des algorithmes de MT est généralement prouvée manuellement. Le but de cette thèse est de donner des outilsà la fois mathématiques et logiciels pour vérifier par model checking les algorithmes de MT supposant un modèle de mémoire faible. Notre première contribution est de développer des outils mathématiques pour exprimer le comportement des algorithmes de MT et les propriétés de correction requises. Nous nous intéressonsà la foisà des propriétés de sûreté, comme l'opacité, et de vivacité, comme la non-obstruction et l'abscence de livelock. De plus, nous construisons un outil logiciel pour exprimer les modèles mémoires matériels dits faibles. Nous développons un nouveau langage de haut niveau, RML, pour exprimer les algorithmes concurrents avec un niveau matériel d'atomicité des instructions, et dont la sémantique est paramétrée par de nombreux modèles mémoires faibles. Nous exprimons les algorithmes MT comme TL2, DSTM et McRT SRT dans notre nouveau langage, RML. La vérification des algorithmes de MT est difficileà cause du nombre illimité de transactions concurrentes, de la durée et des délais non-bornés d'une transactions et de la taille non-bornée de la mémoire. La deuxième contribution de cette thèse est d'identifier les propriétés des algorithmes MT qui permettent de réduire le problème de vérification d'un modèle infini au problème d'inclusion de langage de deux machines d'états finies. Nous montrons que les algorithmes de MT usuels satisfont ces propriétés. La troisième contribution de cette thèse est notre outil FOIL pour la vérification par model checking des algorithmes de MT. FOIL prend comme entrée la description RML d'un algorithme de MT et le description du modèle mémoire. FOIL utilise la sémantique opérationnelle de RML pour calculer le langage de l'algorithme de MT pour deux fils d'exécution et deux variables. FOIL contrôle ensuite si le langage de l'algorithme de MT est inclus ou non dans le langage de la spécification. FOIL détermine automatiquement les emplacements des barrières, qui, si elles sont insérées, assure la correction de l'algorithme de MT dans le modèle mémoire donné. Nous utilisons FOIL pour iii vérifier les algorithmes DSTM, TL2 et McRT STM dans des modèles mémoires a cohérence séquentielle, ordre total desécritures, ordre partiel desécritures et ordre mémoire affaibli.
doi:10.5075/epfl-thesis-4541 fatcat:ijjf6g7uejgtzosnkoe7qjwtja