Systèmes d’Exploitation LINUX
Gestion de processus
Hiba Ouni
Hiba Ouni Systèmes d’Exploitation LINUX 1 / 10
Outline
1 Les processus
Hiba Ouni Systèmes d’Exploitation LINUX 2 / 10
Les processus
Outline
1 Les processus
Hiba Ouni Systèmes d’Exploitation LINUX 3 / 10
Les processus
Les Processus
Un processus est un programme en cours d’exécution.
On distingue deux types de processus :
Le processus système (daemons) : assure des services généraux
accessibles à tous les utilisateurs du système.
Le propriétaire est le root et il n’est sous le contrôle d’aucun terminal.
Le processus utilisateur : dédié à l’exécution d’une tâche particulière.
Le propriétaire est l’utilisateur qui l’exécute et il est sous le contrôle du
terminal â partir duquel il a été lancé.
Toute exécution d’un programme déclenche la création d’un processus
dont la durée de vie est égale à la durée d’exécution du programme.
Le système alloue à chaque processus un numéro d’identification
unique : PID (Process IDentifier).
Tout processus est créé par un autre processus : son processus père.
Hiba Ouni Systèmes d’Exploitation LINUX 4 / 10
Les processus
États d’un processus
Prêt (R) : le processus attend que le processeur lui soit affecté.
Actif(R) : le processus est en exécution.
Endormi (S pour <20s ou I pour >20s) : le processus est en attente
de l’arrivée d’un événement (par exemple, une réponse du terminal).
Zombi (Z) : le processus a pris fin sans libérer ses ressources (peut
être bloqué jusqu’à l’arrêt de la machine).
Suspendu (T) : le processus a été interrompu et attend l’arrivée d’un
signal de reprise.
Hiba Ouni Systèmes d’Exploitation LINUX 5 / 10
Les processus
Les processus
Exécution d’une commande
Les principales modes d’exécution d’une commande :
mode interactif : commande lancée à partir d’un terminal. Le contrôle du
terminal n’est rendu à l’utilisateur qu’à la fin de l’exécution de la commande.
<ctrl-c> : interrompre la commande
<ctrl-z> : suspendre la commande
mode en arrière plan : permet de rendre immédiatement le contrôle à
l’utilisateur (commande lancée suivie du caractère &). Si le terminal est
fermé, la commande en arrière plan est interrompue automatiquement. Pour
éviter ce problème, il faut lancer la commande sous le contrôle de la
commande nohup (syntaxe : nohup nom commande &).
Hiba Ouni Systèmes d’Exploitation LINUX 6 / 10
Les processus
Les processus
La commande ps
La commande ps donne la liste des processus en cours. Par défaut, elle
affiche tous les processus actifs de l’utilisateur qui a lancé la
commande ps et qui appartiennent au même terminal depuis lequel ps
a été invoquée.
On décrit les lignes de commandes les plus utiles dans ce contexte :
ps -u utilisateur : affiche les processus lancés par utilisateur
ps -e : affiche tous les processus dans le système
ps -f : génère pour chaque processus :
UID : nom utilisateur
PID : numéro du processus
PPID : numéro du processus père
STIME : l’heure de lancement du processus
TTY : le nom du terminal
TIME : temps cumulé d’exécution du processus
CMD : commande exécutée
Hiba Ouni Systèmes d’Exploitation LINUX 7 / 10
Les processus
Les processus
La commande kill et les signaux
Au cours de l’exécution d’un processus, il est possible d’agir sur son
déroulement en lui envoyant un signal. Unix définit de façon standard
un certain nombre de signaux dont :
SIGINT (signal 2) : interrompre l’exécution d’un processus,
SIGKILL (signal 9) : arrêter définitivement l’exécution d’un processus
(ne peut pas être ignoré),
SIGTSTP (signal 20) : suspendre temporairement l’exécution d’un
processus,
SIGCONT (signal 18) : reprendre l’exécution d’un processus
précédemment suspendu par l’envoi d’un signal SIGTSTP.
Un signal peut être envoyé par :
le système (ex : signaux d’erreur),
un autre processus,
l’utilisateur : soit : exp :( <ctrl-z> pour SIGTSTP, <ctrl-c> pour
SIGINT), soit Kill
kill -signal PID
Hiba Ouni Systèmes d’Exploitation LINUX 8 / 10
Les processus
Le job control
Un job est une ligne de commande shell. Chaque job est numéroté de 1 à
N par le shell. Un job peut se trouver dans trois états :
avant plan : Le job s’exécute et vous n’avez pas la main sur le shell.
arrière plan : Le job s’exécute et vous avez la main sur le shell.
suspendu : Le job est en attente, il ne s’exécute pas.
Les commandes jobs, bg, fg.
jobs : permet de lister les jobs en cours
<ctrl-z> : suspendre une commande en avant plan
bg %num job : basculer de suspendu à arrière plan
fg %num job : passer en avant plan
<ctrl-c> : tuer une commande en avant plan
Hiba Ouni Systèmes d’Exploitation LINUX 9 / 10
Les processus
Le job control
Dans la figure suivante nous observons les possibles actions accomplies par
ces commandes.
Hiba Ouni Systèmes d’Exploitation LINUX 10 / 10