DOS Protected Mode Interface (DPMI)

DPMI (DOS Protected Mode Interface) est une interface de programme qui permet à un programme d'application fonctionnant sous le Disk Operating System (DOS) de tirer parti d'une extension DOS, qui permet au programme d'accéder à une plus grande plage de mémoire vive (RAM) que les 640 kilo-octets auxquels les programmes PC sont fondamentalement limités. Le programme doit également être exécuté en mode protégé, ce qui empêche les requêtes du programme d'accéder à certaines parties de la "mémoire protégée". Les programmes qui s'exécutent en "mode réel" ont également un accès complet à la mémoire et aux données du système. Le premier système d'exploitation largement distribué pour les ordinateurs personnels, DOS, a été conçu pour fonctionner sur le microprocesseur Intel 8088. Une instruction de programme pouvait s'adresser au mégaoctet de mémoire vive du 8088. Cela signifie que l'espace de stockage pour le transfert de données entre les microprocesseurs et la RAM totalisait un million d'octets. Comme un certain espace devait être réservé à l'utilisation "système" (suivi des applications, état du système, etc.), seuls 640 kilo-octets étaient disponibles pour un programme d'application. Les octets de la mémoire étaient "contigus" (ce qui signifie qu'ils étaient toujours adjacents et non séparés en mémoire vive). Les programmes d'application devaient pouvoir s'exécuter et maintenir leurs données dans cet espace de 640 kilo-octets. En fait, une instruction qui violait l'espace de 640 kilo-octets ne serait pas exécutée (protégeant ainsi l'espace système en RAM). Un programme exécuté en "mode réel" pouvait adresser la totalité de 1 mégaoctet de RAM, y compris les données système, mais au risque d'écrire des données au mauvais endroit. Lorsque de nouveaux microprocesseurs, tels que le 80286, ont succédé au 8088, DOS a continué à préserver la limite d'adressage de 640 kilo-octets afin que les programmes d'application nouvellement écrits puissent continuer à fonctionner sur les anciens comme sur les nouveaux microprocesseurs. Le programme d'extension DOS permettait aux programmes d'application écrits pour DOS de s'affranchir de la contrainte des 640 Ko en insérant un code de gestion de la mémoire dans l'application. Microsoft a développé le DPMI pour Windows 3.0 (qui était lui-même une application DOS) et a ensuite confié la norme à une organisation industrielle, le Comité DPMI. Les ordinateurs personnels d'aujourd'hui, qui utilisent des microprocesseurs postérieurs au 8088, ont généralement huit mégaoctets ou plus de RAM. Les systèmes d'exploitation actuels (y compris les dernières versions de DOS) sont dotés d'une gestion étendue de la mémoire qui libère le programmeur des contraintes d'adressage d'origine. Outre l'interface standard DPMI, il existe deux autres interfaces standard de gestion de la mémoire étendue. Extended Memory Specification (XMS) est un programme ajouté aux versions les plus récentes de DOS et de Windows lors du chargement du système. HIMEM.SYS est le nom de ce programme. L'interface de programme de contrôle virtuel (VCPI) est un autre gestionnaire de mémoire étendue.