Ordonnancement de fils d'exécution dans les systèmes d'exploitation multi-coeurs
Auteur / Autrice : | Redha Gouicem |
Direction : | Gilles Muller |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 23/10/2020 |
Etablissement(s) : | Sorbonne université |
Ecole(s) doctorale(s) : | École doctorale Informatique, télécommunications et électronique de Paris (1992-...) |
Partenaire(s) de recherche : | Laboratoire : LIP6 (1997-....) |
Jury : | Président / Présidente : Karine Heydemann |
Examinateurs / Examinatrices : Rachid Guerraoui, Étienne Rivière, Julien Sopena | |
Rapporteurs / Rapporteuses : Pascal Felber, Vivien Quéma |
Résumé
Dans cette thèse, nous traitons du problème des ordonnanceurs pour architectures multi-cœurs en l’abordant sous plusieurs angles : celui de la conception (simplicité et correction), celui de l’amélioration des performances et enfin celui du développement d’ordonnanceurs sur mesure pour une application. En résumé, les contributions présentées sont les suivantes : - Ipanema, un langage dédié au développement d’ordonnanceurs de processus pour multi-coeurs. Nous implémentons également au coeur du noyau Linux une nouvelle abstraction permettant d’ajouter dynamiquement un nouvel ordonnanceur écrit en Ipanema. - une série d’outils de recherche de bogues de performance. Grâce à ces outils, nous montrons que l’ordonnanceur de Linux, CFS, souffre d’un problème lié à la gestion de la fréquence sur les processeurs modernes. Nous proposons une solution à ce problème sous la forme d’un patch soumis à la communauté. Ce patch permet d’améliorer significativement les performances de nombreuses applications. - une modélisation des ordonnanceurs sous forme d’un “feature tree”. Nous implémentons ces fonctionnalités de façon indépendantes afin de proposer un nouvel ordonnanceur entièrement modulaire. Cet ordonnanceur modulaire nous permet d’étudier exhaustivement les différentes combinaisons de fonctionnalités ouvrant ainsi la voie au développement d’ordonnanceurs spécifiques à une application donnée.