Extrait du cours sur les systèmes d’exploitation et réseaux informatiques
Introduction
Ce cours présente les principaux points théoriques du fonctionnement des systèmes d’exploitation. Il les illustre par un certain nombre d’exemples de mise en œuvre qu’il tire essentiellement du système Unix et accessoirement de Windows et de Java.
L’histoire de l’informatique est très brève – les ordinateurs sont nés avec la seconde guerre mondiale – et pourtant, elle a connu des grandes évolutions. À leur apparition, les ordinateurs étaient très coûteux et réservé s aux grandes entreprises; celles-ci n’en possédaient au départ que quelques exemplaires. Ces ordinateurs « centraux » sont rapidement devenu un auxiliaire d’administration et ils se sont diffusés dans les différents services (departments en anglais) : financier, comptabilité, etc. Pour rendre l’informatique plus adaptée et plus abordable, des fabricants se sont alors mis à produire des mini-ordinateurs « départementaux ». Ces ordinateurs fonctionnaient avec des systèmes d’exploitation qui leur étaient propres, à chaque machine ou à chaque constructeur, par exemple, MVS pour IBM ou VMS pour DEC.
Bibliographie
La bibliographie sur les systèmes d’exploitation est très abondante et elle se renouvelle très rapidement. Elle comprend à la fois des revues de recherche, des ouvrages pédagogiques et des ouvrages sur la programmation et l’utilisation d’un système particulier. La liste que nous donnons concerne ne concerne pas la recherche et n’est absolument pas exhaustive. Par ailleurs, cette recherche est largement passée des laboratoires universitaires à ceux de quelques industriels : Microsoft et IBM notamment. Notre liste fournit seulement les références que nous pensons être les plus utiles.
Chapitre 1 Les processus
1.1. Structure des processus
1.1.1. Généralités
Les processus correspondent à l’exécution de tâches : les programmes des utilisateurs, les entrées-sorties, … par le système. Un système d’exploitation doit en général traiter plusieurs tâches en même temps. Comme il n’a, la plupart du temps, qu’un processeur, il résout ce problème grâce à un pseudo-parallélisme. Il traite une tâche à la fois, s’interrompt et passe à la suivante. La commutation des tâches étant très rapide, l’ordinateur donne l’illusion d’effectuer un traitement simultané.
1.1.2. Les processus sous Unix
Les fonctions fondamentales Un processus peut se dupliquer – et donc ajouter un nouveau processus – par la fonction :
pid_t fork(void)
qui rend -1 en cas d’échec. En cas de réussite, la fonction retourne 0 dans le processus fils et le n° du processus fils – Process Identifier ou PID – dans le père. Cette fonction transmet une partie du contexte du père au fils : les descripteurs des fichiers standards et des autres fichiers, les redirections… Les deux programmes sont sensibles aux mêmes interruptions. À l’issue d’un fork() les deux processus s’exécutent simultanément.
La création d’un nouveau processus ne peut se faire que par le recouvrement du code d’un processus existant grâce à la fonction :
int execl(char *ref, char *arg0, char *argn, 0) ref est une chaîne de caractères donnant l’adresse du nouveau programme à substituer et à exécuter. arg0, arg1, …, argn sont les arguments du programme. Le premier argument, arg0, reprend en fait le nom du programme.Les fonctions execle() et execlp() ont des arguments et des effets semblables. Elle transmettent en plus respectivement la variable chemin (PATH) ou les variables d’environnement au complet.
1.2. Les fils d’exécution
Les interfaces graphiques, les systèmes multi-processeurs ainsi que les systèmes répartis ont donné lieu à une révision de la conception usuelle des processus. Cette révision se fonde sur la notion de fils d’exécution (thread of control). Un processus classique est composé d’un espace d’adressage et d’un seul fil de commande. L’idée est d’associer plusieurs fils d’exécution à un espace d’adressage et à un processus. Les fils d’exécution sont donc des processus dégradés (sans espace d’adressage propre) à l’intérieur d’un processus ou d’une application. On les appelle aussi des processus poids plume ou poids léger.
……..
Cours sur les systèmes d’exploitation et réseaux informatiques (3804 KO) (Cours DOC)