dav74's picture
Upload 212 files
0bfe6d9 verified

Résumé cours

Ce qu’il faut savoir

  • on appelle processus un programme en cours d'exécution.

  • 2 processus P1 et P2 peuvent être amenés à partager une même ressource R (fichiers…)

  • tous les systèmes d'exploitation modernes (Linux, Windows, macOS, Android, iOS...) sont capables de gérer l'exécution de plusieurs processus en même temps. Mais pour être précis, cela n'est pas en véritable "en même temps", mais plutôt un "chacun son tour". Pour gérer ce "chacun son tour", les systèmes d'exploitation attribuent des "états" au processus.

  • Les processus peuvent se trouver dans 3 états différents :

    • prêt (prêt à être exécuté)
    • élu (en cours d’exécution)
    • bloqué (attente d’une ressource)

  • le système d’exploitation gère l'ordonnancement des processus (priorité d'exécution...)

  • chaque processus est créé par un autre processus (sauf le tout premier qui est créé au démarrage du système d’exploitation). Si un processus P crée un processus P’, on dira que P est le père de P’.

  • chaque processus possède un identifiant : le PID (Process Identification)

  • chaque processus possède aussi un PPID (Parent Process Identification), le PPID permet de connaître le processus parent d'un processus

  • dans certaines conditions, 2 processus (ou plus) peuvent se trouver en situation d’interblocage (deadlock en anglais)

Ce qu’il faut savoir faire

vous devez savoir utiliser les commandes Unix qui permettent de :

  • visualiser les processus en cours (ps -aef, top…)
  • supprimer un processus (kill)

Exemples activités

activité 19.1

En vous basant sur le schéma ci-dessous, donnez le PID (en partant du principe qu'il est créé juste après init) et le PPID du processus "getty".

activité 19.2

Après avoir ouvert un terminal, tapez la commande suivante : ps -aef

Vous devriez avoir plusieurs informations sur les processus en cours sur votre ordinateur, notamment les PID et les PPID de ces processus. Prenez une capture d'écran du terminal.

activité 19.3

Ouvrez 2 terminaux, placez-les l'un à côté de l'autre. Dans l'un des 2 terminaux, exécutez la commande top (pour en savoir plus sur la l'utilisation de la commande top, consultez la page http://debian-facile.org/doc:systeme:top )

Vous devriez obtenir quelque chose qui ressemble à ceci :

Fermez votre navigateur Web et observez le résultat dans le terminal exécutant top.

Ouvrez votre navigateur Web et observez le résultat dans le terminal exécutant top. Selon le navigateur que vous utilisez, il se peut que le fonctionnement du navigateur soit associé à plusieurs processus.

Notez le PID des processus liés au fonctionnement du navigateur.

Utilisez la commande kill afin de supprimer le (ou les) processus lié(s) au fonctionnement du navigateur. Que se passe-t-il ?

activité 19.4

Imaginez une situation pouvant entrainer un interblocage.