HISTOIRE DU LOGICIEL (SYSTÈMES D'EXPLOITATION)

©2002, 2003 Jean Bellec
Retour histoire informatique

suite histoire du logiciel systèmes d'exploitation

en construction

Chapitre 1

Environnement d'exécution des Programmes

Il n'y a que peu de différences entre l'architecture d'un micro-ordinateur d'aujourd'hui et les systèmes qui ont évolué depuis les années 1950 vers les plus complexes versions des "grands systèmes". Peut-être peut-on noter que les ordinateurs d'hier devaient supporter les particularités d'appareils plus complexes et posséder davantage d'utilisateurs simultanés.

On traitera d'abord de l'environnement d'exécution des programmes, que l'on abrègera en environnement des programmes. On le distinguera du (ou des)  gestionnaire(s) de ressources et du planificateur de travaux.

Les programmes s'exécutant dans l'ordinateur sont généralement produits dans une "moulinette" d'une usine à logiciels que l'on appelle maintenant un environnement intégré de développement de programmes situé sur le même système ou plus souvent sur un autre système qu'on appelle système de développement. La dissociation du système d'exécution et de celui d'environnement est apparue assez tardivement quand les responsabilités furent clairement définies et quand le paradigme du concepteur/utilisateur s'est un peu évanoui. En pratique, les systèmes d'exploitation modernes continuent de proposer l'option d'un enchaînement entre ces deux activités.

Un programme sorti de l'environnement de développement se présente sous la forme d'un fichier de code (généralement une suite d'instructions binaires spécifiques de la machine d'exécution, mais parfois des instructions sous une forme de code intermédiaire destiné à une compilation dynamique et/ou une interprétation dans la machine d'exécution). Le programme contient aussi des segments de données spécifiées au moment de la programmation et surtout les liens avec l'environnement d'exécution du programme que nous étudierons dans ce chapitre.

Au début de ce chapitre, on ne traitera pas immédiatement des programmes qui s'exécutent dans un environnement spécialisé à une portion réduite des ressources de l'ordinateur. Ces programmes interprétés ou partiellement interprétés prennent de plus en plus d'importance aujourd'hui pour l'utilisateur. Cette importance, soupçonnée par l'auteur dès le début des années 1980, permet une plus grande indépendance des logiciels vis à vis de la plateforme formée du matériel et du système d'exploitation et diminue considérablement la sensibilité aux erreurs, virus et intrusions.

CHARGEUR (LOADER eng.)

appel de procédures de bibliothèque

système de fichiers

FIN NORMALE

traitement des erreurs

communication inter-processus

entrées-sorties

gestion du temps

réaction aux comportements extérieurs (ON...)

debugging

 

 

LOADER

Les programmes ne naissent pas -en général- spontanément dans la machine, ils sont presque toujours préparés à l'avance dans un environnement de développement local ou séparé de leur environnement d'exécution. Ils sont alimentés dans la mémoire programme de la machine par un programme "chargeur" qui leur permet de se retrouver sous forme exécutable par le processeur. Les fonctions du chargeur sont

  • le transfert de tout (ou partie) du programme depuis un support externe, généralement sous couvert du système de fichiers dans une zone de mémoire centrale allouée pour l'exécution par le gestionnaire de ressources (qui, dans certains cas, peut être un humain).
  • La modification de certaines zones du programme pour lier ce programme à des objets se trouvant à des adresses spécifiques de l'environnement d'exécution
  • la fabrication d'un contexte de contrôle pour le programme qui sera utilisé plus tard par la gestion de l'exécution.