Sections atomiques emboîtées avec échappement de processus légers : sémantiques et compilation

La mémoire transactionnelle est un mécanisme de plus en plus populaire pour la programmation parallèle et concurrente. Dans la plupart des implantations, l emboîtement de transactions n est pas possible ce qui pénalise la modularité. Plutôt que les transactions, qui sont un choix possible d implanta...

Fuld beskrivelse

Enregistré dans:
Bibliografiske detaljer
Hovedforfatter: Pinsard, Thomas, 1984-
Andre forfattere: Loulergue, Frédéric, 1973- (Directeur de thèse, Membre du jury), Pommereau, Franck, 19..- (Membre du jury), Mourlin, Fabrice, 1964- (Membre du jury), Henrio, Ludovic, 1976-...., informaticien (Membre du jury), Couvreur, Jean-Michel, 1959- (Membre du jury), Dabrowski, Frédéric, 1976- (Membre du jury)
Format: Thèse numérique
Sprog:Français
Udgivet: 2014.
Fag:
Online adgang:Accès au texte intégral
https://theses.univ-orleans.fr/public/2014ORLE2075_va.pdf
http://www.theses.fr/2014ORLE2075/abes
https://theses.hal.science/tel-01362118
Kommentar: Titre provenant de l'écran-titre
Ecole(s) Doctorale(s) : École doctorale Mathématiques, Informatique, Physique Théorique et Ingénierie des Systèmes (Centre-Val de Loire ; 2012-....)
Partenaire(s) de recherche : Laboratoire d'informatique fondamentale d'Orléans (Orléans ; 1987-....) (Laboratoire)
Autre(s) contribution(s) : Franck Pommereau (Président du jury) ; Frédéric Loulergue, Franck Pommereau, Fabrice Mourlin, Ludovic Henrio, Jean-Michel Couvreur, Frédéric Dabrowski (Membre(s) du jury) ; Fabrice Mourlin, Ludovic Henrio (Rapporteur(s))
Autres localisations: Voir dans le Sudoc
Variante du titre:Nested atomic sections with thread escape :, semantics and compilation
Beskrivelse
Summary:La mémoire transactionnelle est un mécanisme de plus en plus populaire pour la programmation parallèle et concurrente. Dans la plupart des implantations, l emboîtement de transactions n est pas possible ce qui pénalise la modularité. Plutôt que les transactions, qui sont un choix possible d implantation, nous considérons directement la notion de section atomique. Dans un objectif d améliorer la modularité et l expressivité, nous considérons un langage impératif simple étendu avec des instructions de parallélisme avec lancement et attente de processus légers et une instruction de section atomique à portée syntaxique, depuis laquelle des processus légers peuvent s échapper. Dans ce contexte notre première contribution est la définition précise de l atomicité et de la bonne synchronisation. Nous prouvons que pour des traces bien formées, la dernière implique la forme forte de la première. Ceci est fait sur des traces d exécution abstraites dans le sens où nous ne définissons par précisément la syntaxe et la sémantique opérationnelle d un langage de programmation. Cette première partie de notre travail peut être considérée comme une spécification pour un tel langage. Nous avons utilisé l assistant de preuve Coq pour modéliser et prouver nos résultats. Notre deuxième contribution est la définition formelle du langage Atomic Fork Join (AFJ). Nous montrons que les traces de sa sémantique opérationnelle vérifient effectivement les conditions de bonne formation définies précédemment. La troisième contribution est la compilation de programmes AFJ en programmes Lock Unlock Fork Join (LUFJ) un langage avec processus léger et verrous mais sans sections atomiques. Nous étudions la correction de la compilation de AFJ vers LUFJ.
Transactions are becoming a popular mechanism for parallel and concurrent programming. In most implementations the nesting of transactions is not supported which hinders modularity. Rather than transactions, which are an implementation choice, we consider directly the notion of atomic section. For the sake of modularity with we consider a simple imperative language with fork/join parallelism and lexically scoped nested atomic sections from which threads can escape. In this context, our first contribution is the precise definition of atomicity, well-synchronisation and the proof that the latter implies the strong form of the former. This is done on execution traces without being specific to a language syntax and operational semantics. This first part of our work could be considered as a specification for the design and implementation of such a parallel language. A formalisation of our results in the Coq proof assistant is also available. Our second contribution is a formal definition of the Atomic Fork Join (AFJ) language and its operational semantics. We show that it indeed satisfies the conditions previously defined. The third contribution of our work is a compilation procedure of AFJ programs to programs another language with threads and locks but without atomic sections, named Lock Unlock Fork Join (LUFJ). We study the correctness of the compilation from AFJ to LUFJ.
Emne beskrivelse:Titre provenant de l'écran-titre
Ecole(s) Doctorale(s) : École doctorale Mathématiques, Informatique, Physique Théorique et Ingénierie des Systèmes (Centre-Val de Loire ; 2012-....)
Partenaire(s) de recherche : Laboratoire d'informatique fondamentale d'Orléans (Orléans ; 1987-....) (Laboratoire)
Autre(s) contribution(s) : Franck Pommereau (Président du jury) ; Frédéric Loulergue, Franck Pommereau, Fabrice Mourlin, Ludovic Henrio, Jean-Michel Couvreur, Frédéric Dabrowski (Membre(s) du jury) ; Fabrice Mourlin, Ludovic Henrio (Rapporteur(s))
Format:Configuration requise : un logiciel capable de lire un fichier au format : PDF