Article de reference

Superposition (programmation)

Schématique Dans un sens informatique général, la superposition signifie « le processus de transfert d'un bloc de code de programme ou d'autres données dans la mémoire principal...

Schématique

Dans un sens informatique général, la superposition signifie « le processus de transfert d'un bloc de code de programme ou d'autres données dans la mémoire principale , en remplacement de ce qui est déjà stocké ». La superposition est une méthode de programmation qui permet aux programmes d'être plus volumineux que la mémoire principale de l'ordinateur . Un système embarqué utiliserait normalement des superpositions en raison de la limitation de la mémoire physique , qui est la mémoire interne d'un système sur puce , et du manque de fonctions de mémoire virtuelle .

Usage

La construction d'un programme de superposition implique la division manuelle d'un programme en blocs de code objet autonomes appelés superpositions ou liens , généralement disposés dans une structure arborescente . frères , ceux du même niveau de profondeur, partagent la même mémoire, appelée région de superposition ou région de destination . Un gestionnaire de superposition, faisant partie du système d'exploitation ou du programme de superposition, charge la superposition requise à partir de la mémoire externe dans sa région de destination lorsque cela est nécessaire ; cela peut être automatique ou via un code explicite. Souvent, les linkers fournissent un support pour les superpositions.

Exemple

L'exemple suivant montre les instructions de contrôle qui demandent à l' éditeur de liens OS/360 de lier un programme de superposition contenant une seule région, en retrait pour afficher la structure (les noms de segment sont arbitraires) :

INCLURE SYSLIB (MOD1) INCLURE SYSLIB (MOD2) SUPERPOSITION A INCLURE SYSLIB (MOD3) SUPERPOSITION AA INCLURE SYSLIB (MOD4) INCLURE SYSLIB (MOD5) SUPERPOSITION AB INCLURE SYSLIB (MOD6) SUPERPOSITION B INCLURE SYSLIB (MOD7) 
 +--------------+ | Segment de racine | | MOD1, MOD2 | +--------------+ | +----------+----------+ | | +-------------+ +-------------+ | Superposition A | | Superposition B | | MOD3 | | MOD7 | +-------------+ +-------------+ | +--------+--------+ | | +-------------+ +-------------+ | Superposition AA | | Superposition AB | | MOD4, MOD5 | | MOD6 | +-------------+ +-------------+ 

Ces instructions définissent un arbre composé du segment résident permanent, appelé racine , et de deux superpositions A et B qui seront chargées après la fin de MOD2. La superposition A elle-même se compose de deux segments de superposition, AA et AB. Au moment de l'exécution, les superpositions A et B utiliseront toutes deux les mêmes emplacements de mémoire ; AA et AB utiliseront toutes deux les mêmes emplacements après la fin de MOD3.

Tous les segments entre la racine et un segment de superposition donné sont appelés un chemin .

Applications

Depuis 2015 , la plupart des applications métier sont conçues pour fonctionner sur des plateformes dotées de mémoire virtuelle . Un développeur sur une telle plateforme peut concevoir un programme comme si la contrainte de mémoire n'existait pas, à moins que l' ensemble de travail du programme ne dépasse la mémoire physique disponible. Plus important encore, l'architecte peut se concentrer sur le problème à résoudre sans la difficulté de conception supplémentaire consistant à forcer le traitement en étapes limitées par la taille de la superposition. Ainsi, le concepteur peut utiliser des langages de programmation de niveau supérieur qui ne permettent pas au programmeur de contrôler beaucoup la taille (par exemple Java , C++ , Smalltalk ).

Les superpositions restent néanmoins utiles dans les systèmes embarqués. Certains processeurs à bas prix utilisés dans les systèmes embarqués ne disposent pas d' unité de gestion de la mémoire (MMU). De plus, de nombreux systèmes embarqués sont des systèmes en temps réel et les superpositions fournissent un temps de réponse plus déterminé que la pagination . Par exemple, le logiciel du système avionique primaire de la navette spatiale (PASS) utilise des superpositions programmées.

Même sur les plateformes dotées de mémoire virtuelle, les composants logiciels tels que les codecs peuvent être découplés au point de pouvoir être chargés et déchargés selon les besoins .

Utilisation historique

IBM a introduit le concept de tâche en chaîne dans FORTRAN II . Le programme devait appeler explicitement la sous-routine CHAIN ​​pour charger un nouveau lien, et le nouveau lien remplaçait tout le stockage de l'ancien lien à l'exception de la zone COMMON de Fortran.

IBM a introduit une gestion de superposition plus générale dans IBSYS / IBJOB , y compris une structure arborescente et le chargement automatique de liens dans le cadre du traitement CALL.

Dans OS/360, IBM a étendu la fonction de superposition d'IBLDR en permettant à un programme de superposition d'avoir des régions de superposition indépendantes, chacune avec sa propre arborescence de superposition. OS/360 disposait également d'un système de superposition plus simple pour les routines SVC transitoires , utilisant des zones transitoires SVC de 1024 octets.

À l' époque des ordinateurs personnels, les superpositions étaient populaires car le système d'exploitation et de nombreux systèmes informatiques sur lesquels il fonctionnait manquaient de mémoire virtuelle et disposaient de très peu de RAM par rapport aux normes actuelles : le PC IBM d'origine avait entre 16 000 et 64 000, selon la configuration. Les superpositions étaient une technique populaire dans Commodore BASIC pour charger les écrans graphiques.

« Plusieurs linkers DOS dans les années 1980 prenaient en charge [les overlays] sous une forme presque identique à celle utilisée 25 ans plus tôt sur les ordinateurs centraux. » Les fichiers binaires contenant des overlays de mémoire avaient des extensions standard de facto .OVL ou .OVR (mais utilisaient également des extensions de fichier numériques comme .000 , .001 , etc. pour les fichiers suivants ). Ce type de fichier était utilisé entre autres par WordStar (constitué de l'exécutable principal WS.COMet des modules de overlay WSMSGS.OVR, WSOVLY1.OVR, MAILMERGE.OVRet SPELSTAR.OVR, où les fichiers de overlay « gras » étaient même binairement identiques dans leurs ports pour CP/M-86 et MS-DOS ), dBase , et le logiciel de bureautique Enable DOS d' Enable Software . Turbo Pascal de Borland et le compilateur GFA BASIC étaient capables de produire des fichiers .OVL.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index