0% ont trouvé ce document utile (0 vote)
185 vues40 pages

Gestion des Processus Linux

Ce document décrit les notions de base sur la gestion des processus sous GNU/Linux, notamment la définition d'un processus, son cycle de vie, et les principales commandes (ps, top, kill) pour gérer et surveiller les processus en cours d'exécution.

Transféré par

Aïcha BOUCHRAÂ
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
185 vues40 pages

Gestion des Processus Linux

Ce document décrit les notions de base sur la gestion des processus sous GNU/Linux, notamment la définition d'un processus, son cycle de vie, et les principales commandes (ps, top, kill) pour gérer et surveiller les processus en cours d'exécution.

Transféré par

Aïcha BOUCHRAÂ
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

AIAC, cycle d’ingénieur GI Année scolaire: 2021/2022

Systèmes: GNU/Linux

Initiation et utilisation
Chapitre 4: gestion des processus
Plan

1. Définition;

2. Les principaux éléments d'un processus;

3. Les mode d’exécution d’une commande;

4. Le cycle de vie d’un processus;

5. Les commandes de gestion des processus

1. PS

2. TOP

3. KILL

4. JOBS

6. Les signaux
Chapitre 4: La gestion des processus

Notions Théoriques Sur Les Processus

Processus = programme en cours d'exécution;

• Un espace mémoire + contexte d'exécution (fichiers ouverts, etc.)  Caractéristiques statiques;

• PID : Process Identifier (identifie le processus);

• PPID : Parent Processus Identifier (identifie le parent);

• Utilisateur propriétaire;

• Droits d'accès aux ressources (fichiers, etc.) )Caractéristiques dynamiques;

• Priorité, environnement d’exécution, etc;

• Quantité de ressources consommées (temps CPU, etc.).


Chapitre 4: La gestion des processus

Notions Théoriques Sur Les Processus Arborescence de processus

• POST

• Chaque processus possède un processus parent (PPID)

• Sauf le premier processus (systemd ou init, PID=1)

⇒ arborescence de processus

• Deux types de processus :

• Processus utilisateurs (attachés à un terminal);

• Daemons : processus qui assurent un service

(détachés de tout terminal)


Chapitre 4: La gestion des processus

Notions Théoriques Sur Les Processus


Le PID est attribué à chaque processus par le système pendant sa création

Temps partagé

• On appelle temps partagé une exploitation dans laquelle plusieurs processus sont simultanément en cours
d’exécution,
• Caractéristique de linux : multitâches
• Temps partagé et Multitâches : Le temps partagé simule le partage par plusieurs utilisateurs de temps
processeur.
• Temps partagé se réfère à l'utilisation d'un ordinateur par plusieurs utilisateurs, tandis que la multitâche
évoque plus largement le déroulement simultané de processus multiples sans accorder d'importance spéciale
au nombre d'utilisateurs.
Chapitre 4: La gestion des processus

Notions Théoriques Sur Les Processus

• Le PID est attribué à chaque processus par le système pendant sa création.


Swapping ( va et vient )
• Le swap est une mémoire physique « virtuelle » ; Une partie du disque dur est réservée à cette mémoire virtuelle
qui viendra soulager le système en cas de surcharge.
• Le swapping consiste en la recopie sur disque d'un processus complet ou d'une partie de ce
dernier ayant perdu le contrôle de l'unité central et ne pouvant plus rester en mémoire centrale.
• La mémoire centrale ainsi libérée est affectée à un processus plus prioritaire.
• La qualité du swapping est très importante pour la performance d'un système.
Chapitre 4: La gestion des processus

Modes d’exécution d’une commande

Il existe quatre modes d’exécution d’une commande sous linux :

1. Le mode interactif ; avant plan( foreground );


2. Le mode en arrière-plan ( background);
3. Le mode différé: at
4. Le mode cyclique: cron
Ces deux modes font partie de l’administration système, seront abordées au niveau de
l’élément « administration système » (planification des tâches)
Chapitre 4: La gestion des processus

Modes d’exécution d’une commande


Le mode interactif, avant plan ( foreground ):

• C’est le mode le plus fréquemment utilisé : la commande est lancé à partir d’un interpréteur de
commandes;
• L’utilisateur ne peut pas utiliser le terminal pour lancer une autre commande;
• Le contrôle n’est restitué à l’utilisateur qu’à la fin de l’exécution de la commande;
• À tout moment il est possible de :
 Interrompre la commande : ctrl – c
 Suspendre la commande : ctrl – z

 Reprendre la main: fg
Chapitre 4: La gestion des processus

Modes d’exécution d’une commande


Le mode en arrière - plan ( background):

• Le lancement de commandes en arrière plan permet de rendre le contrôle


immédiatement à l’utilisateur;

• Intéressant pour les taches ne nécessitent pas d’interaction entre l’utilisateur et la tache
(exemple : compilation d’un programme );

• La commande est lancée suivie du caractère & , son exécution peut être surveillée par les
commandes PS ou JOBS.
Chapitre 4: La gestion des processus

Modes d’exécution d’une commande


Le mode en arrière - plan ( background):

• Si l’utilisateur est en bash et il quitte le shell , 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,
• “Nohup” est une commande Unix permettant de lancer un processus qui restera actif même
après la déconnexion de l’utilisateur l’ayant initiée.
• Combiné à l’esperluette (&) qui permet le lancement en arrière-plan;
• nohup permet de créer des processus s’exécutant de manière transparente sans être dépendants
de l’utilisateur.
Chapitre 4: La gestion des processus

Mode d’éxécution d’une commande


Le mode en arrière - plan ( background):
syntaxe

nohup commande &

exemple

nohup firefox &


Chapitre 4: La gestion des processus

Le cycle de vie d’un processus


Etats des processus

Lors de sa vie (entre le moment où il est lancé et celui où il se termine), un processus peut passer par
différents états. Les principaux sont les suivants :

• En cours d’exécution:
• processus OK, processeur OK.

• Prêt : suspendu provisoirement pendant qu’un autre processus s’exécute


• Processus OK, processeur NOK (occupé)
• Bloqué: attend un évènement d’un périphérique ou suspendu pour un certain temps
• Processus NOK, processeur OK

• Zombie: fonction terminée


• Processus NOK, processeur NOK
Chapitre 4: La gestion des processus
Le cycle de vie d’un processus

Initialisation: le processus attend que


l’ordonnenceur, soit prêt pour le mettre en mémoire
et en attente (le réveil).
Prêt: une fois il est en mémoire , il est prêt ou en
attente d’accèder au processeur (ne peut exécuter
qu’une tâche à la fois), C’est le rôle de
l’ordononceur de faire la multitâches.
De donner l’illusion que plusieurs programmes
s’exécutent au Même temps  de gérer les
différentes priorités.
Ce processus est tout d’abord en attente.
Elu (exécution): Quand le processeur est
disponible il y a une étape d’élection, il passe en
statut en exécution.
Chapitre 4: La gestion des processus
Le cycle de vie d’un processus

Bloqué: le programme peut être bloqué,


l’ordonneceur va faire en sorte d’endormir ce
programme afin de le mettre en attente d’un
évènement, comme une entrée /sortie, un signal ou
de L’intterompre et donner la priorité à un autre
processus, ensuite on peut débloquer ce processus
et se remettre à l’état prêt ou en attente, et on peut à
nouveau l’exécuter ou le bloquer.
Terminé: une fois que toute l’opération est
terminée, le processus sera stoppé et libère la
mémoire.
Zombie: quand un processus est terminé, mais ne
peut pas être déchargé de la mémoire.
Swapping: le fait de mettre un proc bloqué,
endormi en mémoire virtuelle afin de libérer la
mémoire vive, il s’agit d’une fausse mémoire vive
(disque).
Chapitre 4: La gestion des processus

La commande PS (process Status)

• La commande ps liste les processus de l'utilisateur.

• L'option -e affiche tous les processus en cours d'exécution sur un ordinateur;

• -f : génère pour chaque processus les informations suivantes (slide suivant):


• Ainsi, la commande ps –ef produit une sortie semblable à :
Chapitre 4: La gestion des processus

La commande PS

• UID nom de l'utilisateur qui a lancé le processus;


• PID correspond au numéro du processus;
• PPID correspond au numéro du processus parent;
• C lié au facteur de priorité : plus la valeur est grande, plus
le processus est prioritaire;
• STIME correspond à l'heure de lancement du processus;
• TTY correspond au nom du terminal;
• TIME correspond à la durée de traitement du processus;
• COMMAND correspond au nom du processus.
Chapitre 4: La gestion des processus

La commande PS

• La commande ps options permet d‘obtenir des renseignements sur l’état des processus en cours .
• Par défaut, seuls les processus de la connexion en cours pour l’utilisateur ayant lancé la commande
ps sont affichés
• Une option –u nom_utilisateur permet d’afficher les processus lancés par un utilisateur particulier.
Chapitre 4: La gestion des processus

La commande PS

Le paramètre -o permet de sélectionner le format d’affichage


dans l’ordre voulu selon une liste de mots clés particulier

syntaxe
Ps –o user,group,uid,gid,pid,ppid,command,c

exemple
Chapitre 4: La gestion des processus

Exécution d’une commande


La commande ps

Exercice
1. Exécuter la commande ps avec différentes options pour différents utilisateurs, étudier

ps –ef , ps –aux (utilisez le script adduser pour créer d’autres utilisateurs)

2. Pour expérimenter le mode d’exécution en arrière plan , faites le avec l’éditeur vi ,

reprenez après le vi en avant plan.

3. À l'aide de la commande wc, affichez le nombre total de processus.

4. Affichez tous les processus qui s'exécutent en votre nom.


Chapitre 4: La gestion des processus

L’utilitaire top

• La commande top permet d'afficher des informations en continu sur l'activité du


système.

• Elle permet de suivre les ressources que les processus utilisent (quantité de RAM,
pourcentage de CPU, la durée de ce processus depuis son démarrage).

• Pour quitter l’utilitaire top, il suffit d’appuyer sur la touche q .

• Visualise de manière dynamique les processus présents sur la machine ainsi que le
taux de charge du processeur et le taux d’occupation de la mémoire.
Chapitre 4: La gestion des processus

La commande top
Chapitre 4: La gestion des processus

La commande top
• PID : Le PID du processus, Il s’agit d’une valeur numérique qui spécifie quels processus sont en
cours simultanément dans un ordinateur multitâche.
• USER : L’utilisateur qui a exécuté ce processus
• PR : La priorité de la tâche. (Plus le chiffre est petit plus la tâche est prioritaire).
• NI : La gentillesse de la tâche.
• VIRT : Taille virtuelle d’un processus, c’est la somme de la mémoire qu’il utilise réellement en
mémoire (pas qu’en mémoire vive), toute mémoire :C’est la quantité de mémoire dont le processus a
accès immédiatement
• RES : Quantité de mémoire physique occupée par le processus
• SHR : Indique quelle quantité de la colonne VIRT est réellement partagée
• S : Statut du processus. Les valeurs possibles sont : S (sleeping), D (uninterruptible sleep), R
(running), Z (zombie), ou T (stopped or traced), peut être précédé par < (valeur de nice négative), N
(valeur de nice positive), W (swapped out), ou I (inactif).
• %CPU : Charge CPU
• %MEM: Charge mémoire
• TIME+: Temps total d’utilisation du processeur depuis le lancement du processus
• COMMAND : Nom du processus
Chapitre 4: La gestion des processus

La commande top
• Le mode interactif est le mode par défaut de top.
• se rafraîchit par défaut toutes les 3 secondes.

Le programme se contrôle entièrement au clavier. Une aide est disponible en tapant la lettre h, ci-après quelques
commandes disponibles :
d ou s → Changer le délai de rafraîchissement. Toute valeur marche
k → Envoyer un signal à une tâche, le plus souvent pour la tuer.
r (renice)→ Renicer le processus.
u → Faire une recherche sur un utilisateur en particulier.
L → Rechercher une chaîne de caractère dans les tâches. ‘&’ pour remonter l’occurrence suivante.
•M : trie par taux d'occupation mémoire (champ %MEM) ;
•P : sert à trier les processus selon le temps CPU qu'ils consomment (champ %CPU : c'est le tri par défaut) ;
•i : cette commande fonctionne en tant que bascule. Par défaut, tous les processus, même endormis, sont affichés. Cette
commande fera que seuls les processus en cours d'exécution seront affichés (processus dont le
champ STAT indique R, running, soit en cours d'exécution) mais pas les autres. Un nouvel appel à cette commande
permettra de revenir à l'état antérieur.
Chapitre 4: La gestion des processus

Gestion des priorités


La commande nice

• chaque processus, en plus de son PID unique, possède une priorité liée à son contexte d’exécution.
• Cette priorité, s’échelonne entre -20 (le plus prioritaire) et +19 (le moins prioritaire).
• Par défaut, les processus sont initialisés (s’exécutent), avec une priorité à 0, appelée priorité de
planification de base.
• Les processus les plus prioritaires utilisent alors plus de ressources système que les autres.
• Les tâches les moins prioritaires doivent attendre que les processus de priorité haute soient terminés
ou libèrent leurs ressources, pour pouvoir s’exécuter.

Remarque: les utilisateurs autres que le super-utilisateur root ne peuvent que diminuer la priorité de leurs processus.
Et encore, ils sont restreints à la plage de 0 à 19.
Seul root peut jouer sur l’intégralité de l’échelle, pour n’importe quel processus actif.
Chapitre 4: La gestion des processus

Gestion des priorités


La commande nice
• la commande nice permet de fixer dès son démarrage la
priorité d’une nouvelle tâche.
• Pour gérer une priorité différente de la priorité de base, il
suffit de placer sa commande en argument de la
commande nice.
• il est possible d’assigner une priorité quelconque dans la
fourchette 0 (priorité maximale pour un simple utilisateur) à
+19 (priorité minimale).
• Seul le super-utilisateur peut assigner à de nouveaux
processus des priorités allant de -20 à +19.
Chapitre 4: La gestion des processus

Gestion des priorités


La commande nice

Syntaxe:

Nice –n ‘priorité’ commande

Exemple:

Initialisez le processus vi avec une priorité plus basse que +10


Chapitre 4: La gestion des processus

Gestion des priorités


La commande renice

Permet de changer la priorité d’un programme qui est déjà en exécution

Exemple:

Pidof : cmd pour voir le


PID d’un processus
Chapitre 4: La gestion des processus

Exécution d’une commande


La commande sleep
• La commande sleep suspend l'exécution du processus pendant un intervalle de temps passé
en paramètre.
• Chaque argument est composé d'un nombre suivi éventuellement d'une unité (s, m, h, d).

sleep 10; ps cette commande va lancer une commande ps


10s après la validation (touche entrée).

sleep 1m, ps => pareil mais pour une minute


sleep 1h, ps => pareil mais pour une heure
sleep 1d, ps => pareil mais pour un jour.
• de manière dynamique les processus présents sur la machine ainsi que le taux de
charge du processeur et le taux d’occupation de la mémoire.
Chapitre 4: La gestion des processus

Les signaux

• Un signal est un message envoyé à un processus. Le corps du message est constitué d'un entier indiquant le type
du signal.
• Typiquement, l'arrivée d'un signal interrompt, plus ou moins brutalement l'exécution du processus qui le reçoit.
• Chaque processus sous UNIX est susceptible de réagir à des signaux qui lui sont envoyés.
• Pour chacun de ces signaux, le processus peut redéfinir son propre comportement par défaut, sauf deux : le signal
numéro 9 (KILL), et le signal numéro 19 (STOP).
• Le signal 9 tue un processus de façon brutale, sans lui laisser le temps de se terminer correctement.
• C'est ce signal qu'il faut envoyer à des processus dont vous voulez vous débarrasser.
• Une liste complète des signaux est disponible en utilisant la commande kill -l.
Chapitre 4: La gestion des processus

Les signaux

Envoyer des signaux aux processus : kill, killall

• Ces deux commandes permettent d'envoyer des signaux à des processus.


• La commande kill attend un numéro de processus en argument,
• La commande killall attend un nom de commande.
• Les deux commandes peuvent, de façon optionnelle, recevoir un numéro de
signal en argument.
• Par défaut, elles envoient toutes deux le signal 15 (TERM) à un ou plusieurs
processus désigné(s).
• Par exemple, si vous voulez tuer le processus de PID 785, vous entrerez la
commande : kill -15 785 ou killall -15 firefox
Chapitre 4: La gestion des processus

Exécution d’une commande


Les principaux signaux

HUP signal 1
Le signal Hang Up peut être interprété par certains processus comme un signal de fin
d’exécution ou comme un signal indiquant que le processus doit relire son fichier de
configuration.
TERM signal 15
Le signal Terminate indique à un processus qu’il doit s’arrêter.
KILL signal 9
Le signal Kill indique au système qu’il doit arrêter un processus qui ne répond plus. Le
forcer à s’arrêter au cas où il ignore le signale TERM
Pour voir la liste de signaux possibles utilisez la commande kill -l
Chapitre 4: La gestion des processus

Les signaux

La commande kill

• La commande kill –signal PID sert essentiellement à arrêter des processus en arrière
plan ( à les tuer )
• En effet ,pour arrêter un processus lié à la commande en cours d’exécution il suffit de
taper ctrl + C

• Grâce à l’option –signal il est possible d’envoyer des signaux à un processus afin d’en
modifier l’exécution.
Chapitre 4: La gestion des processus

Exécution d’une commande


Les principaux signaux

ces différents signaux sont envoyés au processus par le système


Mais l’utilisateur pour envoyer ces processus ( forcer le système ) grâce à la commande :
Kill –s numSignal PID
Ou
Kill –s nomSignal PID
Exemple :

kill -s SIGSTOP 256


Chapitre 4: La gestion des processus

Exécution d’une commande


Job control

• Bash, propose un système de contrôle des job;


• La commande: jobs;
• Un job correspond à une tâche demandée par l'utilisateur;
• Cette tâche peut être composée de plusieurs processus;
• Ce qui les regroupe est un tube.
• Un job est donc un regroupement de plusieurs commandes devant s'exécuter les unes à
la suite des autres en communiquant leurs résultats.
• la commande jobs permet de connaître les commandes qui tournent en arrière plan.
Chapitre 4: La gestion des processus

Etats des processus bg


En exécution Stoppé
(arrière-plan) (arrière-plan)

Exemple
& fg

fg Ctrl+z

En exécution
(avant-plan)

Ctrl+c
Détruit
Chapitre 4: La gestion des processus

Exécution d’une commande


Job control

Un exemple tout simple de job pourrait être le suivant :

> ls | less
Lister par page
Deux processus sont crées , un correspond à ls et l’autre à less
bash fournit une abstraction permettant de manipuler ceci comme un tout, appelée donc job.
Un job peut aussi être constitué d’une seule commande
Chapitre 4: La gestion des processus

Exécution d’une commande


Job control

Lancer des jobs en arrière plan :

Exemple :

Vi &
[1] 2356
Vim &
[2] 4567
Numéro du job PID du job
Chapitre 4: La gestion des processus

Exécution d’une commande


Job control

La commande jobs permet de lister les différents jobs en cours avec leurs état d’exécution
>jobs
[1] running vi
[2] stoped vim
TP 5: gestion des processus

Vous aimerez peut-être aussi