Sorry, you need to enable JavaScript to visit this website.

Image CAPTCHA
Saisir les caractères affichés dans l'image.

La théorie de Popek et Goldberg - épisode 1

La théorie de Popek et Goldberg - épisode 1
2009-09-292013-02-11réflexionsfr
La théorie de Popek et Goldberg est un concept qui a déjà été évoqué dans ce blog à plusieurs reprises. Je me propose de détailler plus en détail cette théorie à travers une suite de deux articles. Lors de ce premier article j'évoquerais la première partie de la théorie : les...
Publié le 29 Septembre 2009 par Blogger Anonymous dans réflexions

La théorie de Popek et Goldberg est un concept qui a déjà été évoqué dans ce blog à plusieurs reprises. Je me propose de détailler plus en détail cette théorie à travers une suite de deux articles. Lors de ce premier article j'évoquerais la première partie de la théorie : les trois contraintes élémentaires imposées aux applications de virtualisation. Lors d'un second article j'évoquerais les théorèmes de cette théorie.

Avant de rentrer dans le vif du sujet, je souhaiterais tout d'abord planter le décor du contexte dans lequel Popek et Goldberg ont effectué leurs recherches.

La naissance de la virtualisation

Tout d'abord, la virtualisation est un concept ancien à l'échelle de l'informatique. Ce n'est pas VMWare qui a inventé la virtualisation en 1999 avec leurs applications. La virtualisation totale n'est pas non plus le premier type de virtualisation. La virtualisation est un concept qui date d'au moins 1970, année à laquelle vous n'étiez (probablement) pas né.  A cette époque est arrivé la révolution des ordinateurs IBM System/360 qui étaient exceptionnels par le fait qu'ils étaient compatibles à l'intérieur d'une même gamme. Je vous laisse trouver une photo d'un System/360 mais cela ressemble peu à un ordinateur moderne.

A cette époque, la virtualisation se faisait de manière matérielle avec un cloisonnement électronique des divers composants applicatifs. Ce type de virtualisation existe toujours dans certains mainframes.

Popek et Goldberg

Popek et Goldberg sont deux chercheurs en informatique de cette époque. Ils ont souhaité formuler les pré-requis nécessaires à la virtualisation de manière formelle. Ils définissent plusieurs termes que l'ont connait toujours aujourd'hui. Une "VM" est une "Virtual Machine" ou machine virtuelle. Un VMM est un "Virtual Machine Monitor" ou moniteur de machine virtuel. Ce dernier correspond à la couche de virtualisation. Ce terme est peu utilisé mais il est possible de le retrouver occasionnellement.

Trois contraintes imposées au VMM

Ils ont tout d'abord défini trois critères que doivent remplir les systèmes de virtualisation afin de pouvoir être considéré en tant que tel. Ces critères serviront par la suite à définir les théorèmes de leur théorie. Les phrases en italiques sont des citations du document original (en anglais).

Le premier critère est "équivalence". Ce critère implique qu'une application quelconque doit s'exécuter de la même manière qu'elle soit exécuté au dessus d'un VMM ou d'une machine physique. Ceci est nuancé par la disponibilité des ressources physiques qui peuvent modifier la temporalité de l'exécution d'un programme.

Any program run under the VMM should exhibit an effect identical with that demonstrated if the program had been run on the original machine directly, with the possible exception of differences caused by the availibility of system resources and differences caused by timing dependencies.

Le second critère est l' "efficacité". Ce critère indique qu'une part majoritaire d'instructions soit exécutée par le processeur directement sans intervention du VMM. Ce critère exclut donc les émulateurs et les techniques de virtualisation totale. La virtualisation matérielle assistée permet de répondre plus correctement à ce critère.

The second characteristic of a virtual machine monitor is efficiency. It demands that a statiscally dominant subset of the virtual processor's instructions be executed directly by the real processor, with no software intervention by the VMM.

Le troisième critère est  "contrôle de ressources". Ce critère indique que le VMM doit avoir le contrôle exclusif des ressources à partager. N'importe quelle application doit donc passer par la VMM pour pouvoir accès à une ressource partagée.

The VMM is said to have complete control of these resources if it is not possible for a program running under it in the created environment to access any resource not explicitly allocated and it is possible under certain circumstances for the VMM to regain control of resources already allocated.

Ces trois critères servent de base à la suite de leur papier énonçant leurs théories. Nous verrons dans un prochain billet les théorèmes qui sont la matière de leur étude.

Ajouter un commentaire

comments

  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <br>

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Email HTML

  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
Image CAPTCHA
Saisir les caractères affichés dans l'image.
Changer d'affichage