Thèse soutenue

Techniques de modélisation et de vérification formelles des allocateurs de mémoire dynamiques

FR  |  
EN
Auteur / Autrice : Bin Fang
Direction : Ahmed BouajjaniMihaela SighireanuGeguang Pu
Type : Thèse de doctorat
Discipline(s) : Informatique. Modélisation et vérification
Date : Soutenance le 10/09/2018
Etablissement(s) : Sorbonne Paris Cité en cotutelle avec East China normal university (Shanghai)
Ecole(s) doctorale(s) : École doctorale Sciences mathématiques de Paris centre (Paris ; 2000-....)
Partenaire(s) de recherche : Etablissement d'accueil : East China University of science and technology (Shanghai, Chine)
établissement de préparation : Université Paris Diderot - Paris 7 (1970-2019)
Laboratoire : Institut de recherche en informatique fondamentale (Paris ; 2016-....)
Jury : Président / Présidente : Jifeng He
Examinateurs / Examinatrices : Ahmed Bouajjani, Mihaela Sighireanu, Geguang Pu, Jifeng He, Antoine Miné, Stephan Merz, Xinyu Feng
Rapporteurs / Rapporteuses : Antoine Miné, Stephan Merz

Résumé

FR  |  
EN

Cette thèse est une contribution à la spécification et à la vérification formelles des allocateurs de mémoire dynamiques séquentiels (SDMA, en abrégé), qui sont des composants clés des systèmes d'exploitation ou de certaines bibliothèques logiciel. Les SDMA gèrent la partie tas de la mémoire des processus. Leurs implémentations utilisent à la fois des structures de données complexes et des opérations de bas niveau. Cette thèse se concentre sur les SDMA qui utilisent des structures de données de type liste pour gérer les blocs du tas disponibles pour l'allocation (SDMA à liste).La première partie de la thèse montre comment obtenir des spécifications formelles de SDMA à liste en utilisant une approche basée sur le raffinement. La thèse définit une hiérarchie de modèles classés par la relation de raffinement qui capture une grande variété de techniques et de politiques employées par le implémentations réelles de SDMA. Cette hiérarchie forme une théorie algorithmique pour les SDMA à liste et pourrait être étendue avec d'autres politiques. Les spécifications formelles sont écrites en Event-B et les raffinements ont été prouvés en utilisant la plateforme Rodin. La thèse étudie diverses applications des spécifications formelles obtenues: le test basé sur des modèles, la génération de code et la vérification.La deuxième partie de la thèse définit une technique de vérification basée sur l'interprétation abstraite. Cette technique peut inférer des invariants précis des implémentations existantes de SDMA. Pour cela, la thèse définit un domaine abstrait dont les valeurs representent des ensembles d'états du SDMA. Le domaine abstrait est basé sur un fragment de la logique de séparation, appelé SLMA. Ce fragment capture les propriétés liées à la forme et au contenu des structures de données utilisées par le SDMA pour gérer le tas. Le domaine abstrait est défini comme un produit spécifique d'un domaine abstrait pour graphes du tas avec un domaine abstrait pour des sequences finies d'adresses mémoire. Pour obtenir des valueurs abstraites compactes, la thèse propose une organisation hiérarchique des valeurs abstraites: un premier niveau abstrait la liste de tous les blocs mémoire, alors qu'un second niveau ne sélectionne que les blocs disponibles pour l’allocation. La thèse définit les transformateurs des valeurs abstraites qui capturent la sémantique des instructions utilisées dans les implémentations des SDMA. Un prototype d'implémentation de ce domaine abstrait a été utilisé pour analyser des implémentations simples de SDMA.