Chapitre 1 : Evolution des systèmes d’exploitation 1
Préambule
On peut découper l'histoire de l’informatique en 4 époques :
- L'ère primaire des dinosaures de l'informatique et des SE : les années 50-60-70 des ordinateurs centraux
et des architectures centralisées (maître esclave).
- L'ère secondaire : la vague des ordinateurs personnels, la folle époque du PC des années 80-90,
caractérisé par les réseaux locaux et les architectures client / serveur.
- L'ère tertiaire, ou l'ère Internet depuis 1995 environ, l'année de la prise de conscience de l'importance
d'Internet par les fournisseurs d'informatique. C'est aussi l'époque de l'intégration de tous les ordinateurs dans
des réseaux locaux, puis des réseaux étendus sur la planète.
- L’ère quaternaire; dés le début de la deuxième millénaire on à vue l’émergence des téléphones mobile
et PDA, c’est l’aire de la mobilité de l’ubiquité et de l’anywhere, avec les réseaux sans fils GSM, GPRS,
EDGE, UMTS, GPS,…etc.
Dans ce chapitre on va étudier sommairement l’évolution des systèmes d’exploitations, il est organisé
comme suit :
1. Introduction ………..………………………………………………………. 2
2. Qu’est-ce qu’un système d’exploitation…………………………………….. 2
3. Fonctions d'un système d'exploitation………………………………………. 3
4. Evolution historique………………………………………………………… 4
4.1. La porte ouverte…………………………………………………… 4
4.2. Le moniteur d’enchaînement……………………………………… 4
4.3. Le traitement par lots (Batch)……………………………………... 5
4.4. Traitement off line…………………..…………………………….. 5
5. La Multiprogrammation ……….…………………………………………… 6
6. Types de systèmes d’exploitations …………………………………………. 7
6.1. Le temps partagé ……………………………………………………... 8
6.2. Systèmes multiprocesseurs …………………………………………… 8
6.3. Systèmes embarqués …………………………………………………. 8
6.4. Systèmes temps réel ………………………………………………….. 8
7. Conclusion ………………………………………………………………….. 8
Chapitre 1 : Evolution des systèmes d’exploitation 2
1. Introduction
Un système informatique se divise grossièrement en quatre composantes :
- le matériel
- le système d’exploitation
- les programmes d’applications
- les utilisateurs
Programmes
Système bancaire Réservation d’avion Jeu d’aventure
d’application
Compilateurs Editeurs Interpréteur de commandes Programmes
Système d’exploitation système
Langage machine
Microprogrammation Matériel
Dispositifs physiques
Le matériel se trouve au niveau le plus bas et se compose au plus de deux couches :
• La couche la plus basse contient les circuits physiques (circuits intégrés et autres dispositifs physiques).
• Un logiciel de base qui contrôle ces différents dispositifs et fournit une interface plus simple à la couche
suivante. Ce logiciel, appelé un microprogramme, se situe généralement dans des mémoires mortes. Il s’agit
en fait d’un interpréteur qui exécute des instructions en langage machine (binaire) l’une après l’autre.
La fonction primordiale d’un système d’exploitation est de masquer toute la complexité de la couche
précédente et de présenter au programmeur un ensemble d’instructions plus simples à utiliser. Le reste des
programmes systèmes se trouve au dessus du système d’exploitation. On y trouve l’interpréteur de
commandes (shell), les compilateurs, les éditeurs et d’autres programmes qui ne dépendent pas non plus des
programmes d’application.
Remarque : il est nécessaire de faire la distinction entre le système d’exploitation qui s’exécute en mode
noyau (maître) et le reste des programmes système qui s’exécute en mode utilisateur (esclave).
2. Qu’est-ce qu’un système d’exploitation ?
On peut donner plusieurs définitions à un système d’exploitation :
- Un système d'exploitation est un programme qui sert d'interface entre un utilisateur et un ordinateur.
- Un S.E est un ensemble de procédures manuelles et automatiques qui permet à un groupe d'utilisateurs de
partager efficacement un ordinateur.
- Un S.E est un ensemble de procédures cohérentes qui a pour but de gérer la pénurie de ressources.
Chapitre 1 : Evolution des systèmes d’exploitation 3
Il est plus facile de définir un système d'exploitation par ce qu'il fait que par ce qu'il est. Le problème de la
définition vient du fait que le système d’exploitation effectue fondamentalement deux tâches sans rapport
l’une avec l’autre :
• Machine virtuelle : Le système d’exploitation est le programme qui soustrait le matériel aux regards
du programmeur et offre une vue simple et agréable de fichiers nommés qui peuvent être lus et écrits.
Le système d’exploitation masque de la même manière beaucoup d’aspects fastidieux en ce qui
concerne les interruptions, les horloges, la gestion de la mémoire et les autres tâches de bas niveau.
De ce point de vue, la fonction du système d’exploitation est de présenter à l’utilisateur l’équivalent
d’une machine étendue ou machine étendu (virtuelle) plus facile à programmer que le matériel.
• Gestionnaire de ressources : On peut considérer le système d’exploitation sous l’angle du
gestionnaire de fonctions complexes d’un système. Les ordinateurs se composent de processeurs, de
mémoires, d’horloges, de disques, de terminaux, d’imprimantes, d’interfaces réseau et d’autres
périphériques. Dans cette optique, le rôle du S.E consiste à ordonner et à contrôler l’allocation des
processeurs, des mémoires et des périphériques d’entrées/sorties entre les différents programmes qui
y font appel. Lorsqu’un ordinateur est partagé entre plusieurs utilisateurs, la nécessité de gérer et de
protéger la mémoire ainsi que les périphériques d’entrées/sorties et les autres ressources est évidente.
De ce point de vue, est de connaître à tout moment l’utilisateur d’une ressource, de gérer les accès à
cette ressource, d’en accorder l’usage et d’éviter les conflits d’accès entre différents programmes ou
entre utilisateurs.
3. Fonctions d'un système d'exploitation
Le Système d'Exploitation est l'ensemble des logiciels effectuant la gestion optimale des ressources d'un
système informatique. Installé, on dit encore « chargé » en mémoire centrale lors du démarrage, le système
opératoire prend en charge la gestion complexe des constituants d'un ordinateur (processeur, mémoire,
périphériques…) et en optimise l'utilisation. Il permet tout simplement de rendre opérationnel un ordinateur.
Les fonctions principales sont:
- Gestion des applications ou travaux (partage de l'UC).
- Gestion des utilisateurs,
- Gestion des interruptions,
- Gestion de la Mémoire Centrale,
- Gestion de la Mémoire Secondaire (gestion des fichiers)…etc.
Chapitre 1 : Evolution des systèmes d’exploitation 4
Un système d'exploitation possède :
- Un système de dialogue avec l’utilisateur soit à travers une interface graphique soit à l’aide d’une
interface de type « console » où les commandes sont entré en mode ligne.
- Un interpréteur de commande.
- Un ensemble de routine qui permettent de gérer la machine et faciliter son utilisation.
4. Evolution historique
Les systèmes d’exploitations se sont développés au cours de ces 50 dernières années pour deux raisons
principales. D’abord, les systèmes d’exploitation essayent de planifier les activités de calcul pour assurer une
bonne performance du système informatique. Ensuite, ils proposent un environnement commode pour le
développement et l’exécution de programmes. Afin de satisfaire les objectifs annoncés précédemment les
modes d’exploitations de la machine on subit les développements suivants :
4.1. La porte ouverte (machine nue)
Les premiers systèmes informatiques ne disposer pas de S.E. L’ordinateur, dépourvu de tout logiciel,
était utilisé à tour de rôle par les programmeurs qui on louer (réserver) une certaine durée de temps fini pour
faire tourner leurs programmes écrit on binaire. La mémoire contient à la fois le code exécutable et les
données. Le processeur comporte un compteur ordinal contenant l'adresse de la prochaine instruction, ainsi
que des registres divers. L'exécution se déroule de la façon suivante :
1. Chargement des l'instructions manuellement;
2. Lancement de l’exécution par le programmeur;
3. Chargement des données dans les registres ;
4. stockage en mémoire et édition des résultats sur imprimante ;
Limitations
Dans ce mode d’utilisation simple, on n'a pas de système d'exploitation.
La mémoire n'a pas d'organisation particulière ;
Le remplissage de la mémoire est fastidieux ;
Mauvaise utilisation des ressources ;
Avantage
Interaction direct avec la machine ;
4.2. Le moniteur d’enchaînement
L'émergence des supports magnétiques (bandes initialement) a tout d'abord permis la conservation des
programmes binaires importants sur ce support. Il a fallu alors définir des outils spécifiques de gestion de ces
périphériques, pour permettre aux utilisateurs de retrouver facilement ces programmes. Simultanément, pour
améliorer la rentabilité des machines, on a imaginé l'introduction du moniteur d'enchaînement des travaux,
Chapitre 1 : Evolution des systèmes d’exploitation 5
qui est un programme particulier activé automatiquement à la fin de l'exécution de chaque programme
utilisateur, et dont le but est d'assurer alors la lecture en mémoire et le lancement du programme. Dans ce
contexte, l'utilisateur prépare un paquet de cartes représentant son travail (job), et qui est constitué d'une ou
plusieurs étapes. Chaque étape correspond à un programme dont l'exécution est demandée par l'utilisateur sur
un jeu de données particulier. Ce programme peut être un des utilitaires conservés sur bande, tel qu'un
compilateur, ou le résultat d'une étape précédente mémoriser temporairement sur bande. Le moniteur
d'enchaînement assure le chargement et l'exécution successive des programmes définis dans un job.
Pour cela trois concepts ont été introduits:
• Le langage de commande est interprété par le moniteur, et permet à l'utilisateur de préciser en quoi
consiste le travail. C'est donc le moyen de communication entre l'utilisateur et le moniteur.
• La protection des données et des instructions du moniteur est nécessaire pour éviter qu'un programme
utilisateur ne vienne les détruire.
• Le superviseur d'entrées-sorties est un ensemble de sous-programmes résidents en machine, qui
assurent le contrôle des opérations d'entrées-sorties des programmes utilisateurs.
Ce mode de fonctionnement attire les remarques suivantes:
• Le programme est déchargé de la gestion des E/S.
• Le débit des travaux, c'est-à-dire le nombre de travaux par unité de temps, est amélioré.
• Le temps de réponse, c'est-à-dire le délai qui sépare le moment de l’arrivé du programme et celui de
l’obtient des résultats, est augmenté.
4.3. Le traitement par lots (Batch)
Dans ce cas, on introduit la notion de lot ou fournée de travaux. L’opérateur regroupe une suite de jobs en
un lot qui sera soumis à la machine. Quant le une carte de contrôle indique l’exécution d’un programme, le
moniteur d’enchaînement charge le programme et lui transfert le contrôle. Une fois terminé le contrôle et
redonné au moniteur qui continue avec la prochaine carte. Ces actions sont répétées jusqu’à épuisement de
toutes les cartes du job courant, automatiquement, le moniteur passe aux cartes du job suivant dans le lot.
4.4 Traitement off line (1960)
Les opérations d'entrées-sorties relatives aux cartes et aux imprimantes sont, en général, longues par
rapport aux performances des machines. Comme le moniteur d'enchaînement impose que ces opérations
soient exécutées par le superviseur d'entrées-sorties, au lieu de l'être directement par le programme, celui-ci
peut réaliser différemment ces opérations, pourvu que le résultat soit le même pour l'utilisateur. Aussi, pour
améliorer la rentabilité de l'ordinateur de traitement, on a imaginé de transférer les cartes sur une bande, en
Chapitre 1 : Evolution des systèmes d’exploitation 6
utilisant un ordinateur spécifique et bon marché, et de faire lire cette bande, à la place des cartes, par le
moniteur d'enchaînement des travaux. De même, les résultats d'impression sont transférés sur bande dans
l'ordinateur principal, et la bande est ensuite lue par l'ordinateur dédier au E/S pour être imprimée.
Traitement off line
5. La multiprogrammation
Les méthodes vues jusqu'alors, si elles améliorent la rentabilité des machines, atteignent cependant leurs
limites. En effet, lorsqu'un programme s'exécute, il n'est pas possible de supprimer complètement les temps
des opérations d'entrées-sorties. Les temps d'unité centrale laissés disponibles par un programme pendant ses
entrées-sorties, peuvent être récupérés par d'autres programmes indépendants s'ils sont également présents en
mémoire centrale à ce moment. C'est ce que l'on appelle la multiprogrammation.
Fig. 1.5. Moniteur de multiprogrammation.
Constatons tout d'abord que, pour mettre plusieurs programmes simultanément en mémoire, il faut avoir
de la place. La multiprogrammation a pu être développée grâce à l'augmentation de la taille des mémoires
centrales conjointement à une diminution considérable de leur coût. La mise en œuvre du multitâches
nécessite le renforcement de certains mécanismes qui ont déjà été présentés:
Chapitre 1 : Evolution des systèmes d’exploitation 7
• La protection des données et des instructions du moniteur doit maintenant être étendue aux données et
instructions d'un programme par rapport aux autres, de façon à permettre l'isolation de chacun des
utilisateurs dans un univers partagé.
• Le superviseur d'entrées-sorties doit contrôler l'accès aux ressources de la machine, et assurer la
gestion de ces ressources (allocation, contrôle, restitution).
• Le mécanisme d'interruption est au centre de l'allocation du processeur. Signalant la fin d'une
opération d'entrées-sorties, l'interruption a en général pour effet de permettre au programme
demandeur de poursuivre son exécution.
• La notion de système d'exploitation apparaît avec la nécessité de gérer l'ensemble du matériel et du
logiciel mis à la disposition d'utilisateurs simultanés.
Ce mode de fonctionnement attire les remarques suivantes:
• L'amélioration de la rentabilité de la machine est obtenue en la partageant entre plusieurs programmes
simultanés, conduisant à une meilleure utilisation de l'ensemble des ressources.
• Il est possible de s'abstraire de la séquentialité originelle des travaux. Le système assure le transfert
sur disque des programmes dès qu'ils sont disponibles. Lorsqu'il y a de la place libre en mémoire, il
choisit l'un des travaux sur disque en fonction de paramètres variés, et non plus dans l'ordre d'arrivée.
Il est ainsi possible de diminuer le temps de réponse pour les travaux courts.
• Il est possible de déporter les organes d'entrées-sorties du type cartes et imprimantes, en les reliant à
l'ordinateur central par des lignes téléphoniques spécialisées. Les travaux qui sont entrés par ce
moyen sont traités de la même façon que les autres, les résultats étant délivrés par le système sur
l'imprimante déportée.
6. Types de systèmes d’exploitations
Un système d'exploitation est dit multi-tâches (multithreaded) lorsque plusieurs tâches (également
appelées processus) peuvent être exécutées simultanément. Les applications sont composées en séquence
d'instructions que l'on appelle «processus légers» (en anglais «threads»). Ces threads seront tour à tour actifs,
en attente, suspendus ou détruits, suivant la priorité qui leur est associée ou bien exécutés séquentiellement.
Un système est dit préemptif lorsqu'il possède un Ordonnanceur (scheduler), qui répartit, selon certains
critères, le temps machine entre les différents processus qui en font la demande.
Chapitre 1 : Evolution des systèmes d’exploitation 8
6.1. Le temps partagé
Le système est dit à temps partagé lorsqu'un quota de temps est alloué à chaque processus par
l'Ordonnanceur. C'est notamment le cas des systèmes multi-utilisateurs qui permettent à plusieurs utilisateurs
d'utiliser simultanément sur une même machine des applications différentes ou bien similaires : le système
est alors dit «système transactionnel». Pour ce faire, le système alloue à chaque utilisateur une tranche de
temps.
6.2. Systèmes multiprocesseurs
Le multiprocessing est une technique consistant à faire fonctionner plusieurs processeurs en parallèle afin
d'obtenir une puissance de calcul plus importante que celle obtenue avec un processeur haut de gamme ou
bien afin d'augmenter la disponibilité du système (en cas de panne d'un processeur).
6.3. Systèmes embarqués
Les systèmes embarqués sont des systèmes d'exploitation prévus pour fonctionner sur des machines de
petite taille, telles que des PDA (personal digital assistants) ou des appareils électroniques autonomes (sondes
spatiales, robot, ordinateur de bord de véhicule, etc.), possédant une autonomie réduite. Ainsi, une
caractéristique essentielle des systèmes embarqués est leur gestion avancée de l'énergie et leur capacité à
fonctionner avec des ressources limitées. A titre d’exemple de systèmes embarqués nous citons : PalmOS;
Windows CE; Windows Mobile; Windows Smart phone.
6.4. Systèmes temps réel
Les systèmes temps réel, essentiellement utilisés dans l'industrie, sont des systèmes dont l'objectif est de
fonctionner dans un environnement contraint temporellement. Un système temps réel doit ainsi fonctionner
de manière fiable selon des contraintes temporelles spécifiques, c'est-à-dire qu'il doit être capable de délivrer
un traitement correct des informations reçues à des intervalles de temps bien définis (réguliers ou non). Voici
quelques exemples de systèmes d'exploitation temps réel : OS-9 ; RTLinux ; QNX ; VxWorks.
7. Conclusion
Les critères qui permettent de caractériser l'adéquation du système au mode de fonctionnement désiré, et
donc d'induire les choix lors de la conception du système peuvent s'énoncer de la façon suivante:
• Le temps de traitement d’un programme pourrait se définir comme le temps que mettrait l'ordinateur
pour exécuter ce dernier s'il ne faisait que cela. En général, ce temps est décomposé en un temps de
processeur et un temps d'entrées-sorties. Il est normalement assez bref dans le mode interactif
(inférieur à la seconde, par exemple); il est souvent connu dans mode transactionnel, mais il est a
Chapitre 1 : Evolution des systèmes d’exploitation 9
priori imprévisible dans le mode temps partagé. Dans le mode différé (ex. off line), ce temps peut être
beaucoup plus important, de l'ordre de plusieurs dizaines de minutes, mais sa valeur maximale est
souvent définie par le demandeur. Enfin, dans le mode temps réel, il est en général très bref, quelques
dizaines de millisecondes, et connu, de façon assez précise.
• Le temps de réponse est le délai qui sépare l’entré d’un programme dans le système, de la fin son
exécution. Ce temps ne peut, évidemment, être inférieur au temps de traitement. Ce n'est pas une
conséquence du programme seul, mais le résultat du comportement du système. C'est l'un des critères
de jugement de l'utilisateur, et donc une contrainte que doit respecter le système pour satisfaire ce
dernier. Si, par nature, un temps de réponse de plusieurs heures est acceptable pour le mode différé,
par contre l'utilisateur, en mode interactif, attend normalement des temps de réponse de l'ordre de la
seconde. Le mode temps réel impose des contraintes souvent strictes sur le temps de réponse qui peut
être aussi bien de quelques millisecondes, que de quelques minutes.
• Le débit est le nombre de programmes exécutés par unité de temps. C'est une mesure de l'efficacité de
l'ensemble du système, matériel et logiciel, qui est surtout intéressant pour le responsable du service
informatique, car il permet de calculer indirectement la rentabilité du système, tous utilisateurs
confondus. Il dépend évidemment de la nature des programmes. Dans le mode transactionnel, le débit
est défini par le nombre de transactions par seconde ou Tps. Dans le mode différé, le débit est défini
par le nombre de travaux à l'heure.
• Le temps d'arrivée des programmes détermine la façon dont ils sont demandés au système. C'est une
caractéristique de l'utilisateur.
• Le mode de communication entre le demandeur et l'ordinateur impose des contraintes
supplémentaires sur le système, dès que l'on désire introduire une distance entre les deux. La
communication entre machines faisait intervenir un protocole normalisé plus ou moins complexe.
• La nature du partage des ressources entre les demandeurs doit être clairement appréhendée, car elle
a une influence directe sur le comportement du système.
Dans le prochain chapitre on va étudier les différentes stratégies de gestion du processeur, ainsi que, la
notion de processus.