Système d'Exploitation Généralités
Jean-Luc Damoiseaux / I.S.I.T.V. 5
Chapitre 1 / Généralités
Supposons que l'ordinateur exécute le programme suivant :
void main(void)
{
char c;
c = getchar();
putchar(c);
return;
}
et demandons-nous ce que fait celui-ci pour afficher le caractère tapé au clavier ?
Notre programme, en arrivant sur l'instruction getchar, fait appel au système d'exploitation
pour l'informer qu'il attend un caractère au clavier. Le système d'exploitation interrompt donc
notre programme et lance un programme capable de lire sur l'unité d'entrées-sorties
correspondant au clavier. Lorsque l'on frappe sur une touche du clavier, le code correspondant
à la lettre tapée est envoyé par le clavier à l'ordinateur. Une fois capté et stocké par le circuit
électronique gérant la communication entre le clavier et l'ordinateur, le programme chargé de
la lecture est informé que la donnée est disponible. A ce moment là, une copie de ce code est
réalisée puis transmise système d'exploitation. Celui-ci réactive alors notre programme en lui
fournissant le code du caractère. Notre programme passe à la seconde instruction qui consiste
à afficher ce caractère, et un mécanisme semblable sera mis en route pour afficher le caractère
à l'écran.
Chacune de ces étapes pourrait être décrite d'une manière encore plus précise. Ainsi, pour
lancer le programme de lecture du clavier, le système d'exploitation détermine dans une table
l'adresse sur le disque du programme en question. Puis, il assure la rotation du disque,
positionne la tête de lecture à cette adresse, et transfère en mémoire la suite de 0 et de 1
composant le fichier. Enfin, après avoir chargé le contexte d'exécution du programme, le
système d'exploitation lui donne la ``main'' et celui-ci peut alors s'exécuter.
Comme le laisse entrevoir cet exemple, le système d'exploitation intervient de manière
cohérente à tous les niveaux du fonctionnement d'un ordinateur. Aux deux extrémités, il
interagit d'une part avec le matériel (le temps d'interaction est alors de quelques milliardièmes
de seconde) et d'autre part avec l'utilisateur (le temps d'interaction est de quelques secondes).
Le rôle d'un système d'exploitation est donc de réduire et de dominer la complexité de la
machine afin d'en faciliter l'usage à l'utilisateur (humain ou programme), celui-ci se retrouvant
alors débarrasser de toutes les tâches trop proches de la machine.
1. Historique des systèmes d'exploitations
L'informatique n'existe que depuis la deuxième guerre mondiale, et il est loin le temps des
machines à lampes lorsque l'on parle des ordinateurs de la cinquième génération. L'évolution
des fonctionnalités et par conséquent la taille des systèmes d'exploitations est allée de pair
avec les progrès technologiques. La période décrite s'étale donc de 1940 à 1990, mais au-delà
des années 1970, il est difficile de dégager, dans le développement des systèmes
d'exploitations, autres choses que des tendances générales.