VDM : Virtual DOS Machines
Portail général TPAO
Portail Réseau
Généralités
Classification
Topologie
Connectique
Protocoles
Transmissions
NT4
Administration
Sécurité
Glossaire
Questions
Plan

 

Les VDM, Virtual DOS Machines

Windows NT propose deux types de Machine Virtuelle DOS (VDM) : une VDM MS-DOS et une VDM Win16. Elles sont là pour que Windows NT supporte les anciennes applications DOS et Windows 16 bits. Elles reconstituent donc l'environnement adéquate pour ces applications. Toutefois, elles ne sont pas considérées comme des sous-systèmes d'environnement parce-qu'elles tournent (ce sont des programmes) dans le sous-environnement Win32. Ces deux VDM ont certaines différences :

La VDM MS-DOS
Il s'agit d'une application Win32 qui émule un ordinateur X86. Les applications DOS pouvaient directement accéder physiquement au matériel. Cet  accès direct est simulé sous NT avec cette VDM.
Pour les processeurs à base Intel, Windows NT peut tourner dans un mode  spécifique appelé le mode "Virtual-86". L'accès direct au  matériel est simulé par ce mode. Pour les autres types de processeurs, les instructions X86 sont émulées par un module appelé "Instruction  Execution Unit".
Les services d'interruptions ROMBIOS et 21 d'MS-DOS sont fournis par le module d'émulation MS-DOS. La partie physique est représentée virtuellement avec les VDDs : Virtual Device Drivers.
Une application DOS dispose de sa propre VDM, avec son propre espace d'adressage. La VDM supprime la limitation de mémoire que l'on a en DOS  classique.. Windows NT peut faire tourner un nombre illimité de VDM MS-DOS.

La VDM Win16
Il s'agit d'une application émulant un environnement 16 bits, pour les applications fonctionnant sous Windows 3.X. Windows 3.X n'est en fait que l'interface graphique du DOS. La VDM Win16 tourne donc sur une VDM MS-DOS.
La VDM Win16 dispose d'une couche WOW : Win16 On Win32, qui est chargée de traduire les API 16 bits en API 32 bits et vice versa. Ce procédé s'appelle  le thunking. WOW fait la liaison avec le sous-système Win32.
Le système Win16 est multi-threadé coopératif. C'est-à-dire que ce sont  les applications qui doivent d'elles-mêmes rendre la main au processeur. Windows NT a dû garder ce principe. Pour ce faire, toutes les applications 16  bits tournent dans la même VDM Win16. Entre elles, les applications Win16  sont multi-threadées coopératives. Le système Windows NT reste  multi-thredé préemptif. Quand le système d'exploitation laisse la main à  la VDM Win16, il va reprendre l'application Win16 qu'il avait préempté pour  une autre application (Win32, DOS, POSIX ou OS/2). C'est l'application Win16 qui devra rendre la main pour que les autres applications Win16 puissent continuer. Les processus Win16 ont donc un statut spécial.
Pour résumer, les applications Win16 tournent en mode multi-threadé  coopératif, mais restent en mode multi-threadé préemptif vis-à-vis des autres applications du système d'exploitation. Une application Win16 pourra  donc bloquer les autres applications Win16, mais pas les autres.

 

Capturé par MemoWeb à partir de http://130.104.68.59/vdm.htm  le 26/04/2002  

 

Toute remarque concernant ce site peut être envoyée à
Jean Cumps - Faculé de Médecine UCL - Ecole de Pharmacie - TPAO

Dernière modification : 06/01/03