Thèse soutenue

Support à l'exécution pour objets actifs multi-threadés : conception et implémentation

FR  |  
EN
Auteur / Autrice : Justine Rochas
Direction : Ludovic Henrio
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 22/09/2016
Etablissement(s) : Université Côte d'Azur (ComUE)
Ecole(s) doctorale(s) : École doctorale Sciences fondamentales et appliquées (Nice ; 2000-....)
Partenaire(s) de recherche : établissement de préparation : Université de Nice (1965-2019)
Laboratoire : Institut national de recherche en informatique et en automatique (France). Unité de recherche (Sophia Antipolis, Alpes-Maritimes) - Laboratoire Informatique, signaux et systèmes (Sophia Antipolis, Alpes-Maritimes) - Safe Composition of Autonomous applications with Large-SCALE Execution environment - Laboratoire d'Informatique, Signaux, et Systèmes de Sophia Antipolis
Jury : Président / Présidente : Johan Montagnat
Examinateurs / Examinatrices : Ludovic Henrio, Johan Montagnat, Einar Broch Johnsen, Lionel Seinturier, Florian Kammüller, Fabrice Huet
Rapporteurs / Rapporteuses : Einar Broch Johnsen, Lionel Seinturier

Résumé

FR  |  
EN

Pour aborder le développement d'applications concurrentes et distribuées, le modèle de programmation à objets actifs procure une abstraction de haut niveau pour programmer de façon concurrente. Les objets actifs sont des entités indépendantes qui communiquent par messages asynchrones. Peu de systèmes à objets actifs considèrent actuellement une exécution multi-threadée. Cependant, introduire un parallélisme contrôlé permet d'éviter les coûts induits par des appels de méthodes distants. Dans cette thèse, nous nous intéressons aux enjeux que présentent les objets actifs multi-threadés, et à la coordination des threads pour exécuter de façon sûre les tâches d'un objet actif en parallèle. Nous enrichissons dans un premier temps le modèle de programmation, afin de contrôler l'ordonnancement interne des tâches. Puis nous exhibons son expressivité de deux façons différentes: d'abord en développant et en analysant les performances de plusieurs applications,puis en compilant un autre langage à objets actifs avec des primitives de synchronisation différentes dans notre modèle de programmation. Aussi, nous rendons nos objets actifs multi-threadés résilients dans un contexte distribué en utilisant les paradigmes de programmation que nous avons développé. Enfin, nous développons une application pair-à-pair qui met en scène des objets actifs multi-threadés. Globalement, nous concevons un cadre de développement et d'exécution complet pour les applications hautes performances distribuées. Nous renforçons notre modèle de programmation en formalisant nos contributions et les propriétés du modèle. Cela munit le programmeur de garanties fortes sur le comportement du modèle de programmation.