Page préc.
Définitions
Fin de page Page suiv.
Structure d'un système d'exploitation

Machine physique - Machine virtuelle

Notion de machine virtuelle

    Quand un utilisateur s'installe devant une machine (un écran-clavier, terminal de gros système ou ordinateur individuel), il constate dès la mise sous tension ou après un minimum d'opérations plus ou moins obscures, que la machine est prête à dialoguer avec lui. Un non informaticien peut penser qu'il a directement accès à la machine physique, ce qui est une impression tout aussi fausse que celle d'un conducteur utilisant une direction assistée.  En fait, s'intercalent entre lui et la machine (hardware) toute une succession d'intermédiaires qui transforment (dans les deux sens) le langage permis à l'utilisateur (appelé langage de commande) en langage machine et finalement en instructions câblées. En fait, comme nous allons le voir, l'utilisateur peut avoir l'impression d'une machine beaucoup plus puissante par certains aspects que ne l'est la machine physique. Citons pour fixer les idées quelques notions déjà connues :

Systèmes multiprogrammés à partage de ressources ou à machine virtuelle

    Avant le développement de la notion de machine virtuelle, la philosophie des systèmes multiprogrammés consistait à partager les ressources d'une machine réelle entre plusieurs processus.  A chacun d'eux était allouée une partie des ressources de la machine réelle :

    Ils "voyaient" donc une machine réelle diminuée en taille et en possibilités.

    Au contraire, les systèmes d'exploitation multiprogrammés utilisant la notion de machine virtuelle créent des processeurs, des capacités de stockage et des équipements d'E/S VIRTUELS, pouvant même avoir chacun des possibilités dépassant largement celles de la machine réelle :

    Une machine virtuelle est une illusion d'une machine réelle, créée par le système d'exploitation qui fait apparaître la machine réelle comme un ensemble de machines réelles.

L'exemple historique du système VM

    L'un des premiers et des plus beaux exemples est le système VM (Virtual Machine) d'I.B.M., initialement installé sur des machines IBM/370, (dans les années 70 donc), très largement diffusé, et qui mérite quelques mots.

    Du point de vue des utilisateurs, les machines virtuelles leur apparaissaient parfaitement semblables à des machines réelles : chacun pouvait disposer d'un IBM/370 pour lui tout seul, y compris les terminaux et le système d'exploitation lui-même.  Ainsi, sur chaque machine virtuelle pouvait être installé un système d'exploitation (I.B.M. bien sûr, mais pas obligatoirement) différent !!!

    Les plus connus étaient CMS, TSO (système transactionnel), DOS/VS (rien à voir avec le DOS des PCs)

    Le système VM était formé de différents composants, parmi lesquels :

    Le système VM pouvait même tourner lui-même sur une machine virtuelle, comme le montre la figure suivante :

    Cela permettait par exemple de mettre au point une nouvelle version de VM sans perturber le fonctionnement normal du centre informatique.

Différences entre machines physiques et machines virtuelles

    Les différences entre les deux types de machines (virtuelle et physique) apparaissent dans les domaines suivants :

Autre exemple de machine virtuelle

    La figure suivante illustre l'organisation en 5 couches du SGF utilisée par le système d'exploitation VMS du VAX (Digital). Même sans en connaître les détails, il est possible d'en imaginer les différentes fonctionnalités.

    L'interface du SGF offre à l'utilisateur les services d'une machine virtuelle dotée des opérations de base nécessaires à la manipulation d'un fichier (fichier logique) : création/destruction, ouverture/fermeture, lecture/écriture. Ces opérations peuvent en fait n'avoir aucun effet immédiat sur le fichier physique correspondant : par exemple, la lecture d'un enregistrement peut seulement consister à transférer des octets de données d'un tampon mémoire géré par le système d'exploitation vers l'espace mémoire du processus de l'utilisateur. Cette machine virtuelle gère le tampon mémoire, met à jour le pointeur qui le balaie, et déclenche si nécessaire un nouveau remplissage du tampon en utilisant à son tour les services d'une autre machine virtuelle.

    Cette dernière calcule l'adresse physique du bloc de données à lire ou à écrire : face, cylindre, etc. Cela dépend évidemment énormément de l'organisation des fichiers, par exemple de l'existence de tables de correspondance entre les blocs et les adresses physiques, de l'existence de chaînages au sein des blocs eux-mêmes, de l'existence de blocs partagés par plusieurs fichiers, de miroirs, etc.

    Enfin, le pilote de disque teste et/ou initialise les registres du périphérique, gère la communication entre le matériel et peut-être certaines erreurs, etc.


Page préc.
Définitions
Début de page Page suiv.
Structure d'un système d'exploitation
Dernière mise à jour : 05/07/2001