La gestion de la mémoire est un enjeu crucial pour les systèmes d’exploitation et les applications. Souvent, au fil du temps, l’évolution technologique exige des modifications dans cette gestion pour tirer un meilleur parti des nouvelles capacités matérielles.
L’un de ces exemples historiques est la High Memory Area (HMA), une zone spéciale de la mémoire des ordinateurs utilisant le système d’exploitation MS-DOS (Microsoft Disk Operating System). Dans cet article, nous vous invitons à plonger dans le monde des tâtonnements et des ajustements auxquels ont dû faire face les ingénieurs de l’époque pour optimiser l’utilisation de la mémoire.
Table des matières
Petite histoire de la RAM et des adresses mémoire
Au tout début des ordinateurs personnels, la taille de la RAM était très limitée. Les premiers IBM PC utilisaient ainsi 640Ko de RAM comme limite supérieure exploitable par le système d’exploitation et les applications. Au fur et à mesure que la mémoire RAM s’est développée et que les besoins ont augmenté, il est apparu nécessaire de repenser la manière dont elle était répartie et gérée.
C’est là qu’intervient la notion de HMA (High Memory Area), qui concerne plus particulièrement les ordinateurs fonctionnant sous MS-DOS.
Qu’est-ce que la HMA ?
En simplifiant légèrement, on peut dire que la HMA représente la partie supérieure de la mémoire des ordinateurs, dépassant les limites traditionnelles de 1 Mo. Ceci n’était possible que sur les ordinateurs équipés d’un processeur Intel 80286 ou supérieur, permettant l’accès à une plage d’adresses mémoire étendue.
Dans le contexte spécifique du système d’exploitation MS-DOS, cela signifie pouvoir accéder rapidement et facilement au moins un Mo supplémentaire (généralement autour de 64 Ko), libérant ainsi de précieux Ko dans la mémoire inférieure et facilitant le multi-tâches.
XMS : la solution pour accéder à la HMA
Pour gérer cette zone et en tirer parti, il a été créé la spécification eXtended Memory (XMS). Cette spécification, développée principalement par Microsoft et Intel, définit les méthodes et les routines permettant aux applications et au système d’exploitation d’accéder et de gérer la mémoire étendue, y compris la HMA.
Ainsi, les programmes qui avaient besoin de plus de mémoire pouvaient profiter de la HMA via les routines XMS, optimisant leur utilisation des ressources matérielles disponibles et augmentant leurs performances.
Gestion de la HMA sous MS-DOS
Pour rendre effectif l’accès à la HMA, il était nécessaire d’utiliser un gestionnaire de mémoire étendue (HIMEM.SYS). Celui-ci se chargeait de mettre en place les structures nécessaires pour accéder à la HMA et assurer l’interopérabilité avec le système d’exploitation.
Intégration dans CONFIG.SYS
L’utilisation de la HMA sous MS-DOS nécessite une instruction spécifique dans le fichier de configuration du système (CONFIG.SYS) pour charger le gestionnaire de mémoire HIMEM.SYS. Cette instruction peut apparaître comme suit :
DEVICE = C :\DOS\HIMEM.SYS
Applications et utilisation concrète de la HMA
De nombreux programmes et applications ont tiré parti de la HMA pour améliorer leurs performances ou étendre leurs capacités. Parmi les exemples notables, on peut citer :
- Les systèmes d’exploitation compatibles tels que Windows 3.x et OS/2;
- Des programmes utilitaires et des jeux vidéo;
- Les émulateurs DOS afin de préserver les fonctionnalités lorsqu’une instance DOS est lancée au sein d’un autre environnement.
Astuces et contournements couramment utilisés
La gestion de la HMA pouvait également nécessiter un certain savoir-faire de la part des utilisateurs avertis, qui devaient souvent contourner des problèmes ou optimiser leur espace mémoire. Il était ainsi fréquent de :
- Déplacer des parties du noyau du système d’exploitation ou des pilotes dans la HMA pour libérer de l’espace;
DOS = HIGH - Utiliser des utilitaires spécifiques pour diagnostiquer et optimiser l’occupation de la mémoire;
- Trouver via une documentation pointue les commandes appropriées pour chacune des applications tirant parti de la HMA.
La fin de l’âge d’or de la HMA
Avec la progression du matériel informatique et l’évolution des systèmes d’exploitation, l’importance de la HMA a diminué progressivement. Les ordinateurs modernes disposent désormais de capacités mémoires largement supérieures, rendant obsolètes les astuces et contournements autrefois nécessaires.
Toutefois, il est important de se souvenir que la gestion historique de la mémoire et, par extension, de la High Memory Area a été un élément clé dans le développement de nos machines et a joué un rôle crucial au cours d’une période charnière à la fois sur le plan technologique et économique. La HMA restera ainsi gravée comme une étape phare dans cette évolution rapide vers toujours plus de performances.