|
Le but du projet OSCAR était d'explorer les concepts et les moyens à mettre en oeuvre en vue d'une exploitation performante des architectures composées supportant simultanément plusieurs types d'applications : des programmes réguliers ainsi que des applications réparties ou parallèles constituées de plusieurs entités actives (processus). De telles architectures sont composées d'ordinateurs de types distincts et de fonctionnalités différentes connectés au moyen d'un réseau local à haut débit. Sur de telles architectures, tous les processus qui s'exécutent simultanément sont en compétition les uns avec les autres pour accéder aux ressources disponibles. C'est pourquoi l'axe prioritaire qui a été retenu pour le projet OSCAR portait sur les tâches suivantes : explorer et étudier des moyens requis pour permettre une exploitation efficace des architectures composées pour tous les types d'applications, proposer des solutions originales au problèmes mis en évidence, étudier les stratégies de gestion de ressources et de valider les solutions proposées au moyen de prototypes intégrés dans un banc d'essais.
Par souci de généralité, l'hypothèse initiale qui a été retenue pour le projet était que les moyens à mettre en oeuvre pour permettre l'exécution de divers types d'applications sur une architecture composée doivent être fournis par le système d'exploitation lui-même et non, comme c'est le cas dans d'autres approches, au moyen d'un langage de programmation spécifique et de son environnement d'exécution.
La recherche qui a été menée dans le cadre du projet concerne différents domaines scientifiques : l'un d'entre eux est relatif à l'approche orientée objets tandis que les autres aspects concernent les techniques de gestion de charge.
Les premiers travaux de recherche que nous avons effectués nous ont convaincus la conception d'applications en terme d'objets - plutôt qu'en terme de processus, de fichiers, etc. faciliteraient les problèmes de gestion de ressources et ce, grâce aux propriétés inhérentes aux objets. En outre, les objets pourraient contribuer à résoudre efficacement les problèmes d'hétérogénéité présents dans un environnement hétérogène.
C'est pourquoi nous avons décidé d'explorer les diverses notions d'objets rencontrées dans le domaine des systèmes d'exploitation. De tels objets peuvent être utilisés non seulement pour structurer les applications mais également les systèmes d'exploitation.
Dans un premier temps, la recherche a consisté à comparer les systèmes répartis orientés objets aux systèmes classiques et à étudier les caractéristiques des objets utilisés dans les systèmes orientés objets. Ensuite, nous nous sommes intéressés à la gestion des ressources dans les systèmes orientés objets : les résultats de la recherche montrent qu'il n'y a pas de différences fondamentales entre les systèmes orientés objets et les systèmes classiques du point de vue de la gestion des ressources mais que, cependant, une gestion efficace des objets entraîne des besoins spécifiques.
Le départ de plusieurs membres de l'équipe nous a empêché de poursuivre la recherche dans cette direction et d'atteindre les objectifs opérationnels. Par conséquent, les systèmes classiques (c'est-à-dire non orientés objets) ont été retenus comme base de la recherche menée dans les autres tâches du projet.
Une des principales hypothèses de travail relative à cette partie de la recherche était la suivante : l'efficacité -en terme de performance - d'une application s'exécutant sur un système composé ainsi que la performance globale d'un système réparti peut être améliorée en exécutant l'application, ou des parties de l'application, sur un noeud peu chargé du système, pour autant qu'un tel noeud existe. En d'autres termes, des déséquilibres entre la charge des noeuds peut induire des pertes de performances : dans un système réparti, on tente en général d'éviter de surcharger certains noeuds alors que d'autres sont souschargés, voire même inutilisés. De nombreuses solutions ont été proposées pour pallier le problème de déséquilibre des charges en distribuant ou en redistribuant la charge globale d'un système réparti : nous regroupons ces solutions sous l'appellation collective de sous-systèmes de répartition de charge. De tels systèmes se composent de mécanismes activés au moyens de stratégies. Dans le cadre du projet OSCAR, nous nous sommes intéressés aux stratégies dynamiques de répartition de charge, qui prennent des décisions sur base d'une évaluation de l'état courant de charge du système, et aux stratégies adaptatives, qui adaptent leur comportement en fonction ce l'état courant de charge du système réparti.
Dans cette partie de la recherche, nous nous sommes penchés sur les problèmes de gestion de la charge et nous avons démontré que des gestionnaires adaptatifs de gestion de la charge peuvent améliorer la performance d'un système réparti plus efficacement que des solutions non-adaptatives lorsque la charge du système varie, ce qui est une caractéristique des systèmes répartis retenus. Peu de travaux de recherche ont été effectués dans ce domaine précis et aucune approche systématique n'est proposée dans la littérature scientifique. Le but de la recherche était de combler ce vide et de proposer une approche systématique au problème de la gestion de la charge.
Dans une première partie de cette tâche, nous avons jeté les bases qui permettent une compréhension en profondeur du domaine. Nous proposons un cadre général de travail dont le but est de procurer un soutien pour comprendre les stratégies de répartition de la charge, pour analyser les stratégies existantes et pour les comparer selon une approche systématique. Ce cadre de travail permet de se focaliser sur nombre de propriétés, dites qualités internes, de tout sous-systèmes de répartition de charge. Ces qualités internes sont d'un grand intérêt pour le concepteur de stratégies de répartition de charge, car elles ont un impact sur l'efficacité de ces stratégies. En effet, les négliger peut mener à des pertes de performances.
Grâce au cadre de travail mis au point, nous avons montré qu'il était possible - et utile - de raisonner systématiquement sur la manière dont les propriétés associées à ces qualités internes peuvent être satisfaites dans une stratégie donnée. En outre, nous avons mis en évidence des liens directs entre des critères de qualité et des choix qui doivent être faits lors de la conception d'une nouvelle stratégie de répartition de charge. Nous avons donc défini une nouvelle méthode, intégrée au cadre de travail que nous avons défini, qui s'est révélée être un soutien efficace pour concevoir de nouvelles stratégies de manière méthodique.
Afin d'évaluer l'intérêt de l'adaptabilité, il nous fallait disposer d'un ensemble de stratégies représentatives du domaine et qui pourraient être exploitées utilement par un système adaptatif de gestion de la charge. Nous avons décidé de ne pas utiliser des stratégies existantes parce que notre recherche et les analyses de stratégies que nous avons faites ont révélé que ces stratégies présentaient trop de particularités, tout en ignorant certaines propriétés internes majeures des stratégies. Nous avons donc conçu et implémenté - au moyen du cadre de travail et de la méthode associée - un jeu de stratégies intéressantes à utiliser dans le contexte adaptatif et représentatives des principales classes de stratégies dynamiques.
Dès le début du projet, il avait été décidé de favoriser les approches empiriques. Il nous fallait donc une plate-forme afin de mesurer les performances obtenues au moyen de différentes stratégies de répartition de charge et de les comparer. Nous avons décidé d'étudier à cette fin des plate-formes logicielles basées sur la technique des micro-noyaux, qui étaient à l'époque à la pointe de la recherche dans le domaine : leur flexibilité découlant de leur conception et de leur architecture leur conférait un atout majeur. Les deux hypothèses de base sur lesquelles le reste du travail a reposé étaient : (1) un système d'exploitation réparti de type UNIX procure un environnement adéquat pour construire un banc d'essais; (2) la migration de processus est un mécanisme de base nécessaire pour réaliser l'équilibrage de charge. Après une étude approfondie, nous avons choisi d'utiliser le système d'exploitation MACH, de OSF; ce système d'exploitation a ensuite été modifié pour supporter la migration des processus UNIX et adapté en banc d'essais.
Dans les dernières tâches relatives à cette partie de la recherche, nous nous sommes intéressés aux problèmes d'efficacités. Au moyen d'une approche empirique basée sur des techniques de prise de mesures ainsi que sur une approche statistique, nous avons construit des modèles polynomiaux qui permettent d'évaluer la performance d'un système réparti soumis à une stratégie donnée de répartition de charge. Ce travail a été fait pour chacune des nouvelles stratégies conçues dans une phase antérieure du projet et intégrées au banc d'essais. La méthode que nous avons utilisée contraste avec les approches, généralement utilisées dans le domaine, qui mènent à des résultats moins généraux et peu fiables.
Nous avons exploité ces modèles pour prédire les améliorations de performances qui peuvent être obtenues pour les différentes stratégies sur lesquelles l'étude portait et pour déterminer les conditions sous lesquelles la performance d'un système réparti peut être maximisée. De tels modèles fournissent un support adéquat pour évaluer les intérêts respectifs de certaines décisions prises lors de la conception de stratégies de répartition de charge mais également pour déterminer les valeurs qui doivent être affectées aux paramètres de ces stratégies pour obtenir la meilleure amélioration possible de performance. Les résultats que nous avons obtenus nous ont permis de montrer qu'une stratégie qui adapte son comportement en fonction de l'état du système sous-jacent est en effet plus efficace qu'une stratégie non adaptative lorsque la charge du système varie.
![]() |
![]() |