Projet : SOR

previous up next contents
Précédent : Persistance et ramasse-miettes Remonter : Fondements scientifiques Suivant : Domaines d'applications


   
Extensibilité et interoperabilité

Mots clés : adaptabilité, machine virtuelle virtuelle, spécialisation .

La plupart des systèmes d'exploitation sont mal adaptés aux paradigmes de programmation actuels orientés par le réseau. Ils sont difficilement spécialisables pour répondre aux besoins d'une application donnée. Or, les programmes, données et leurs politiques de gestion doivent être spécialisables et adaptables afin de prendre en compte par exemple les évolutions technologiques, les besoins spécifiques d'un domaine applicatif, ou les caractéristiques de l'environnement d'exécution.

Un environnement d'exécution virtuel et un langage de programmation à objets réduisent la complexité des développements, facilitent la réutilisation, tout en améliorant la qualité des logiciels. Si dans le passé la technologie des machines virtuelles a été considérée comme trop coûteuse pour des systèmes d'exploitation, cette objection tombe avec les nouvelles générations d'architectures processeurs à haute performance et les nouvelles techniques de compilation [NHCL98]. La construction d'un système d'exploitation basé sur une machine virtuelle et un langage de programmation à objets, de manière similaire à Java, est donc une approche attrayante. Cependant, les machines virtuelles existantes sont encore trop rigides et imposent un contrôle strict sur ce que l'application peut effectuer. Autrement dit, si la machine virtuelle ne contient pas explicitement toutes les opérations dont le langage de programmation a besoin, il n'y a pas d'autres solutions que de modifier la machine virtuelle. Ceci entraîne une multiplication de machines virtuelles différentes et incompatibles, la difficulté de réutilisation des logiciels et l'absence de coopération entre applications écrites dans des langages différents.

Nos recherches dans ce domaine visent à unifier les environnements d'exécution virtuelle, au moyen d'une Machine Virtuelle Virtuelle (MVV). A la différence d'une machine virtuelle «classique», la MVV est capable d'étendre à la volée son jeu d'instructions de manière à s'adapter dynamiquement à de nouveaux types d'applications (voir §6.5).



previous up next contents
Précédent : Persistance et ramasse-miettes Remonter : Fondements scientifiques Suivant : Domaines d'applications