La conscience

Chapitre 1

GENERALITES

Les logiciels peuvent être classés en deux catégories : – les programmes d’application des utilisateurs – les programmes système qui permettent le fonctionnement de l’ordinateur. Parmi ceux-ci, le système d’exploitation (SE dans la suite). Le SE soustrait le matériel au regard du programmeur et offre une présentation agréable des fichiers. Un SE a ainsi deux objectifsprincipaux : – présentation : Il propose à l’utilisateur une abstraction plus simple et plus agréable que le matériel : une machine virtuelle – gestion : il ordonne et contrôle l’allocation des processeurs, des mémoires, des icônes et fenêtres, des périphériques, des réseaux entre les programmes qui les utilisent. Il assiste les programmes utilisateurs. Il protège les utilisateurs dans le casd’usage partagé.

1. HISTORIQUE
Les premiers ordinateurs étaient mis à la disposition d’un programmeur selon un calendrier de réservation : un usager avec un travail unique utilisait seul la machine à un moment donné. Puis vint l’époque du traitement par lots (batch) : enchaînement, sous le contrôle d’un moniteur, d’une suite de travaux avec leurs données, confiés à l’équipe d’exploitation de lamachine (inconvénient : temps d’attente des résultats pour chaque utilisateur). Cette pratique a nécessité trois innovations : – le contrôle des E/S et leur protection pour éviter le blocage d’un lot – un mécanisme de comptage de temps et de déroutement autoritaire des programmes pour éviter le blocage d’un lot à cause d’une séquence trop longue. Ce furent les première interruptions – les premierslangages de commande (JCL) sous forme de cartes à contenu particulier introduites dans le paquet ($JOB, $LOAD, $RUN, etc…) Historiquement, on peut dire que les SE sont vraiment nés avec les ordinateurs de la 3ème génération (ordinateurs à circuits intégrés apparus après 1965). Le premier SE digne de ce nom est l’OS/360, celui des IBM 360, famille unique de machines compatibles entre elles, depuissances et de configurations différentes. Bien que son extrême complexité (due à l’erreur de couvrir toute la gamme 360) n’ait jamais permis d’en réduire le nombre de bogues, il apportait deux concepts nouveaux : – la multiprogrammation : partitionnement de la mémoire permettant au processeur d’accueillir une tâche dans chaque partie et donc d’être utilisé plus efficacement par rapport aux tempsd’attente introduits par les périphériques (le processeur est ré-alloué) – les E/S tamponnées : adjonction à l’UC d’un processeur autonome capable de gérer en parallèle les E/S ou canal ou unité d’échange. Cela nécessite une politique de partage du bus ou d’autres mécanismes (vol de cycle, DMA). Au MIT, F.J. CORBATO et son équipe ont réalisé dès 1962, sur un IBM 7094 modifié, le premier SEexpérimental à temps partagé (mode interactif entre plusieurs utilisateurs

Systèmes d’exploitation et programmation système

Yves PAGNOTTE

Chapitre 1

1/7

simultanés), baptisé CTSS. Une version commerciale, nommée MULTICS (MULTiplexed Information and Computing Service), a été ensuite étudiée par cette équipe, les Bell Laboratories et General Electric. Les difficultés ont fait que MULTICS n’ajamais dépassé le stade expérimental sur une douzaine de sites entre 1965 et 1974. Mais il a permis de définir des concepts théoriques importants pour la suite. La technologie à base de circuits intégrés de la 3ème génération d’ordinateurs a permis l’apparition des mini-ordinateurs et leur diffusion massive (précédant celle des microordinateurs). En 1968, l’un des auteurs de MULTICS, Ken Thompsona effectué une adaptation de MULTICS mono-utilisateur sur un mini-ordinateur PDP-11 de DEC inutilisé dans son Laboratoire des Bell Laboratories. Son collègue Brian Kernighan Ia nomma UNICS (Uniplexed – à l’opposé de Multiplexed – Information and Computer Service), qui devint ensuite UNIX . En 1972, son collègue Dennis Ritchie traduisit UNIX en C, langage qu’il venait de mettre au point avec…