• Aucun résultat trouvé

Plateformes de migration de processus

CHAPITRE 2 MIGRATION DE PROCESSUS

2.3 Migration de processus dans des machines homogènes

2.3.2 Plateformes de migration de processus

MOSIX

MOSIX est un système d'exploitation distribué développé par une équipe de l'université hébraïque de Jérusalem. Ce système est destiné à l'origine pour le monde Unix et les ordinateurs spécialisés (comme les VAX 780). En 1992, MOSIX s’oriente vers le monde du PC. Depuis cette date, ce système est passé d'une plateforme de développement UNIX BSD à une plateforme Linux. Le système MOSIX permet de créer une grappe (cluster) de PC qui se comporte quasiment comme une machine multiprocesseurs. Les algorithmes de MOSIX travaillent au niveau du noyau et permettent de faire collaborer les machines ensemble en échangeant des processus et en répartissant la charge dans le cluster.

MOSIX utilise l'algorithme de page à la demande. L'architecture de son noyau se divise en trois couches [Milojicic et al., 2000]: supérieure, liaison et inférieure. Chaque objet dans MOSIX a un indicateur universel unique. Le noyau peut faire référence à n'importe quel objet dans la grappe. La couche supérieure fournit l’interface du système sur chaque nœud et manipule seulement des objets universels. Le noyau inférieur fournit des services tels que les

gestionnaires de périphérique et le changement de contexte. La troisième, la couche liaison, fournit la communication entre les nœuds, le transfert de données, la migration de processus et les algorithmes de répartition de charges. En effet, chaque processus peut être migré entre les nœuds afin de tirer avantage de la meilleure ressource disponible. L’idée principale consiste à répartir sur plusieurs machines, non pas le calcul, mais le multitâche. Quand le noyau supérieur doit exécuter une opération sur un objet universel, il utilise la couche liaison.

Dans un cluster MOSIX, le processus est le plus petit élément gérable. La coopération entre les nœuds du cluster se fait au niveau du processus. Le principe de base de MOSIX consiste à faire migrer un processus de façon dynamique et préemptive vers le nœud du cluster qui présente les meilleures performances. La recherche automatique d'une performance optimale pour l'exécution des processus est un des principaux avantages de MOSIX. En effet, lorsque des processus sont créés, MOSIX calcule et détermine automatiquement quel est le nœud le moins chargé en terme d'utilisation du processeur et d'occupation de la mémoire RAM, et fait migrer une partie du processus en cours d'exécution vers la meilleure machine: c'est à dire celle qui offre le processeur le plus rapide, le moins occupé et la mémoire la moins saturée.

Charlotte

Le système de migration de processus Charlotte [Finkel et Artsy, 1989] utilise l’algorithme de copie totale. Les processus communiquent entre eux via des liens. Dans Charlotte, la migration se divise en trois phases:

 La négociation: le noyau du nœud source envoie une demande de migration au destinataire. Si la demande est acceptée, le nœud source envoie au destinataire la taille du processus, la table de liens, les informations sur le processus et l’utilisation du réseau. Si le destinataire a les ressources nécessaires demandées par le nouveau processus, il l’indique au mécanisme d’initialisation de la migration. Ce dernier réserve alors toutes les ressources auprès du noyau en il lui répondant par un message d’acceptation. Puis, c’est le début de migration de processus.

 Le transfert: Durant cette phase, le processus migrant est gelé. Le transfert est réalisé en trois phases:

o Le transfert de l’image du processus vers le destinataire où le processus est chargé dans l’espace réservé par le noyau durant la phase de négociation; o La mise à jour des liens durant laquelle le noyau de chaque processus migrant

modifie les nouvelles adresses des liens;

o Le transfert de l’environnement où toutes les structures de données du noyau sont transférées (descripteurs de processus, de liens, de messages reçus et en attente).

 La libération de ressources: après l’envoi de tous les paquets, le noyau source supprime toutes les structures de données appartenant au processus migré.

Système V

Le système V [Theimer et al., 1985] est basé sur l’échange de messages entre machines. Un mécanisme d’exécution à distance permet de s’adresser à un groupe de processus et un autre mécanisme assure la migration. L’algorithme pré-copie permet au processus d’être copié sur le nœud destinataire avant le gel du processus. Cette anticipation permet de gagner du temps. Ce système utilise la notion de processeur hôte logique, qui est défini par un espace d’adressage dans lequel plusieurs processus peuvent s’exécuter. La migration se fait en continuant l'exécution sur la machine source. Seules les pages modifiées seront transmises à la fin du transfert. Le contexte est transféré au nœud cible pendant que le processus continue de s'exécuter. Nous avons donc deux processus: un sur le nœud source et l’autre sur le destinataire.

La détermination de l’adresse destinataire est réalisée par communication interprocessus et un mécanisme de migration qui suit les étapes suivantes:

 L’initialisation de l’hôte destinataire. À l’aide des descripteurs envoyés par l’hôte source, le noyau du destinataire va créer une nouvelle copie du processus situé sur la machine source.

 La terminaison de la copie où le processus destinataire est gelé et la copie de son environnement complétée. Toutefois, les messages qui arrivent doivent être stockés pour ensuite être traités.

 Le réveil de la nouvelle copie et rétablissement des liens. L’ancien processus est effacé sur la machine source et le nouveau est activé. L’identificateur de processus est lié au nouveau processus qui est en liaison physique avec la machine destinataire grâce à un cache situé sur chaque noyau.

Accent

Ce système utilise l’algorithme de la page à la demande pour effectuer la migration. Ainsi, on évite le transfert effectif des données. Le transfert réel a lieu lorsque le destinataire utilise explicitement les données. Le transfert se fait page par page selon la demande. Ainsi, on diminue le temps de transfert. Au début de l’opération de migration, seul le contexte est transféré.

Le travail dans [Rashid et Robertson, 1981] compare avec précision la méthode de copie totale et celle de la page à la demande. Les résultats publiés montrent que le nombre d’octets transférés diminue de 58 % en moyenne. Cependant les deux machines (source et destination) restent liées pendant toute la migration.

Sprite

Sprite [Douglis et Ousterhout, 1991] est un système d'exploitation à partage de charge implémenté par University of California, Berkeley, au début des années 1990. Ce système met en œuvre la migration préemptive. Certains des processus, choisis selon des critères bien particuliers, migrent vers des machines inutilisées du réseau. Quand la machine distante sur laquelle ces processus sont exécutés est à nouveau utilisée, ils sont immédiatement rapatriés. Ils peuvent alors migrer vers un autre hôte inactif mais doivent dans tous les cas repasser par leur machine d’origine.

Sprite est le premier système qui a surmonté le problème de dépendances résiduelles de l'hôte source en employant l'algorithme de serveur de fichiers. Lors de la migration de processus, son exécution est interrompue de l'hôte source et toute la mémoire de son espace d'adressage est ainsi transférée au serveur de fichiers. L'état de processus est transféré comme d'habitude et chaque page peut être demandée au serveur de fichiers. Le système Sprite assure que, dans la plupart des cas, la page ne provoque pas d'opérations de disque parce que le serveur de fichiers utilise sa mémoire comme une antémémoire.

Choices

Le système Choices [Campbell et al., 1993] utilise l'algorithme de gel libre pour la migration de processus. Le travail dans [Roush, 1995] décrit la conception et la mise en œuvre de cette technique. En outre, des expériences de normalisations de la performance d'algorithmes de migration de processus ont été faites dans ce travail pour permettre une évaluation de différentes stratégies de migration.

L'algorithme de serveur de fichiers mis en œuvre dans Sprite et l'algorithme de page à la demande implémenté dans l'Accent sont comparés à l'algorithme de gel libre. Les résultats montrent des avantages de l'algorithme de gel libre par rapport aux deux autres algorithmes. Cependant, la normalisation de la performance d'algorithmes de migration de processus est souvent difficile à obtenir [Noack, 2003].

RHODOS

RHODOS [Goscinski, 1994] est un système d'exploitation distribué expérimental développé par Deakin University en Australie. Il consiste en micronoyau et fournit la transmission de message. RHODOS a été conçu pour utiliser différentes stratégies de migration et de les comparer. Il permet de déterminer quel algorithme de migration peut être utilisé pour réaliser la meilleure performance et dans quelles conditions.

Une comparaison de performance entre un algorithme de page à la demande (la stratégie de copie-sur-référence) et un algorithme de copie totale sur RHODOS ont été publiée dans [De paoli, 1994]. La seule métrique mesurée et évaluée était le temps mort.

Avec l’algorithme de la copie totale, le temps mort était trois fois plus élevé que celui de la page à la demande sur le même processus [Noack, 2003]. Cependant, des métriques détaillées des différentes périodes utilisées par la migration de processus n'ont pas été décrites.

Mach

Le micronoyau Mach [Milojicic et al., 1992] a été développé par Carnegie Mellon University, aux États-Unis. Le mécanisme de migration du système Mach a été inventé par University of Kaiserslautern en Allemagne.

Mach met en œuvre deux sortes de mécanismes qui fournissent différents algorithmes de migration de processus. Le serveur de migration simple (en anglais Simple Migration Server), très robuste, a été implanté en premier. Il met seulement en œuvre la page à la demande pour la migration de processus. Le serveur de migration optimisé (en anglais Optimized Migration Server) fournit, quant à lui, la migration de processus au niveau application et supporte la page à la demande, la copie totale et l'algorithme de pré-copie.

Smile

Smile est un système d'exploitation pour la migration de processus développé par Dresden University of Technology en Allemagne. Ce système a été implémenté sur Linux et a les caractéristiques suivantes [Noack, 2003]:

 La migration de service est complètement transparente à l'utilisateur et les applications n'ont pas besoin d'être recompilées.

 La migration n’a pas de dépendances résiduelles: Smile supporte la migration de service complète sans laisser des ressources sur la machine source. Cependant, durant le temps de post-traitement les dépendances résiduelles sont tolérées pour le transfert de données.

 Il résulte en fait d’une modification minimale du noyau Linux. Pour la migration de processus, ce système nécessite une modification et peut-être une création de nouvelles instances de structures de données clé du système d'exploitation. La plupart de ces structures sont seulement accessibles au niveau noyau comme l'information d'espace d'adressage (la table de page). Une certaine forme de support pour la migration de processus d'un système d'exploitation est donc exigée. Notez que Linux ne supporte pas la migration de processus sans la modification du noyau.

Le système Smile implémente le service de migration au niveau du noyau sur Linux. Ainsi, l'assistance du noyau est indispensable. Une modification du noyau est toujours une approche simple mais sa nouvelle fonction est inflexible [Noack, 2003]. Une alternative à cette modification est un module de noyau dynamiquement chargeable. L'avantage de cette approche réside sur le fait qu'aucune recompilation du noyau n’est nécessaire et le support de migration peut être ajouté ou enlevé du noyau lors de l'exécution. Le module utilise une interface bien définie pour accéder aux structures et fonctions du noyau. Ainsi, l’ajout dynamique de nouvelles fonctions est plus approprié que la modification du noyau Linux.

Le système Smile n'est pas limité à un certain algorithme de migration de processus et fournit une interface bien définie pour intégrer les autres techniques de migration. Grâce à ces fonctions, Smile fournit un mécanisme de migration qui est approprié pour la mise en œuvre et l'évaluation d'algorithmes de migration de processus.