Université Pierre et Marie Curie

Systèmes d'exploitation des ordinateurs

Chapitre 1. Les systèmes d'exploitation
Chapitre 2. Mécanismes d'exécution et de communication
Chapitre 3. Gestion des activités parallèles
3.1. Activités simultanées : pseudo parallèlisme
3.1.1. Classes de processus
3.1.2. Compétition entre processus
3.1.3. Machines multiprocesseurs et massivement parallèles
3.2. Mécanismes de synchronisation
Chapitre 4. Gestion des fichiers
Chapitre 5. Partage des ressources
Chapitre 6. Au-dessus du système d'exploitation
Chapitre 7. Notions sur les communications
Chapitre 8. Notions sur la sécurité
Bibliographie
Chapitre 9. Exercices et TPs
Examens
Page d'accueilTable des matièresNiveau supérieurPage précédenteBas de la pagePage suivante

3.1. Activités simultanées : pseudo parallèlisme

Tout ordinateur moderne, aussi modeste soit-il, doit gérer plusieurs activités simultanément. Nous avons déjà évoqué cette situation au chapitre précédent : gestion de l'horloge en même temps que le programme de l'utilisateur, impression d'un texte en tache de fond, partage du temps entre utilisateurs simultanés... Le système d'exploitation affecte à ces différentes tâches des priorités adéquates : l'horloge est plus prioritaire mais tous les utilisateurs sont égaux. Ces différentes tâches ou processus doivent échanger des informations et synchroniser leurs activités. Ceci était particulièrement flagrant dans l'exemple de la gestion des entrées sorties au moyen des tampons que nous avons décrit précédemment.

Un système d'exploitation permet plus ou moins d'accéder aux fonctions qui permettent de gérer ces activités : un système orienté temps réel possédera une bibliothèque qui offre des alternatives plus riches qu'un système orienté vers des applications comme Unix ou Windows. Il est toujours possible, compte-tenu des possibilités qu'offrent les machines modernes, de rajouter des bibliothèques spécialisées mais elles n'offriront pas forcément toutes les possibilités d'un système d'exploitation spécialisé. Il n'empêche que tout système dispose, plus ou moins cachées, des fonctionnalités nécessaires. Il faut donc distinguer gestion et accès à la gestion des activités parallèles.

Sous Unix, par exemple, chaque fois que l'utilisateur lance une commande il déclenche un nouveau processus qui s'exécute concurremment avec les autres, comme nous l'avons étudioé en détail au chapitre II.4. Le système gère leurs priorités. Il est très simple de   multiplier à loisir les processus. La seule limitation, outre les capacités de la machine elle-même, est un paramètre du noyau du système qui restreint, pour chaque utilisateur, le nombre de processus simultanés. Ce fut  l'origine de l'un des premiers  vers (worm)  d'Internet. Un étudiant de l'Université Cornell, dans l'état de New York aux USA, avait découvert la possibilité d'envoyer des messages à certaines machines du réseau Internet, messages qui commandaient la multiplication de process. Les responsables des systèmes visés voyaient les performances de leurs ordinateurs s'effondrer progressivement puisque le système d'exploitation devait gérer un nombre de tâches parallèles de plus en plus grand, tâches qui ne faisaient rien d'autre que se multiplier!

La question que nous allons aborder est la façon de faire fonctionner tous ces processus en même temps. Comment une machine dotée d'un seul processeur, donc capable de n'en activer qu'un seul à la fois, peut-elle les faire fonctionner "tous à la fois" ? Cette notion même de simultanéité doit être approfondie. Comment un ensemble de processus vont-ils coopérer pour réaliser une fonctionnalité du système d'exploitation ? La notion de processus, telle que nous l'avons vu auparavant, devra être progressivement enrichie. Nous considérerons au début de ce chapitre qu'il s'agit simplement d'un programme qui est exécuté séquentiellement, échangeant des informations avec d'autres processus et effectuant des entrées-sorties. Un processus est interruptible avant le début de chaque instruction et son contexte est défini par ceux du processeur et des zones de la mémoire qui lui sont affectées. De plus sont rangés, quelque part dans l'ordinateur, un ensemble d'attributs le décrivant et indiquant en particulier son identité (son nom), sa priorité et ses droits.


Copyright Yves Epelboin, université P.M. Curie, 1998, MAJ 4 avril, 2005

  3.1.1. Classes de processus
  3.1.2. Compétition entre processus
  3.1.3. Machines multiprocesseurs et massivement parallèles
Page d'accueilTable des matièresNiveau supérieurPage précédenteHaut de la pagePage suivante