Système d’exploitation 21 : Linux-PR 2020-2021
Institut Supérieur des Sciences Appliquées et de Technologie de Sousse
Académie militaire fondok el jedid
Prepa-A2-01 ; Prepa-A2-02 ; Prepa-A2-03 ; Prepa-A2-04 Mme Farah
Enseignante : Amani Bedoui
Braham
LASM 107- 108 Farahbedoui96@[Link]
Mail : [Link]@[Link]
02 : Gestion des processus
TP03
Ce TP a pour objectif de :
Maîtriser les commandes de gestion des processus.
Savoir observer les processus s’exécutant sur une machine.
Manipuler un processus en cours d’exécution.
Savoir tuer un ou plusieurs processus.
Pour ce TP vous devez rédiger un compte-rendu (nom_prénom_groupe_CTP03.docx)
qui sera envoyé par mail à la fin de la séance. (Précisez dans l’objet : TP03-Prepa-A2-
Groupe)
Rappel et Révision
1. Introduction
On appelle processus un objet dynamique correspondant à l’exécution d’une suite
d’instructions : un programme qui s'exécute, ses données, ainsi que d’autres informations
sur son contexte d’exécution.
Un processus possède les caractéristiques qui permettent au système de l’identifier. Parmi
ces caractéristiques :
Etat : exécution, suspendu, etc.
Identifiant du processus.
Identifiant du processus qui lui a donnée naissance : processus parent.
Identifiant de l’utilisateur qui l’a lancé.
Compteur ordinal : indique la prochaine instruction à exécuter.
Pile d’exécution : mémorise l’empilement des appels de fonction.
Données en mémoire.
Etc.
Un processus s’exécute soit en avant-plan (foreground), soit en arrière-plan
(background).
Amani Braham TP03- Système d’exploitation 2 : Linux-PR 1
2. Commandes Shell de gestion de processus :
La commande ps : $ ps [options]
Permet d’obtenir la liste des processus actifs sur le Shell.
L’option –e donne des informations sur tous les processus en cours et l’option –f permet
d’avoir des informations détaillées sur les processus.
COLONNE DEFINITION
UID Identifiant de l’utilisateur (User ID).
PID Identifiant du processus (Process ID).
PPID Identifiant du processus parent (Parent Process ID).
C Facteur de priorité (plus la valeur est grande plus la priorité
est élevée).
STIME Heure de lancement du processus.
TTY Nom du terminal depuis lequel le processus a été lancé.
TIME Durée de traitement du processus.
CMD Commande exécutée.
L’option –u permet d’obtenir la liste des processus lancés par un utilisateur particulier.
La commande pstree : $ pstree
Amani Braham TP03- Système d’exploitation 2 : Linux-PR 2
Permet de visualiser l’arborescence des processus.
La commande top : $ top [options]
Permet de gérer les processus en temps réel (visualisation dynamique des processus).
Dès que top est lancée, il est possible d’exécuter des commandes interactives :
N : Classer les processus par PID.
A : Classer les processus dans l’ordre chronologique.
P : Classer les processus par rapport à leur utilisation CPU.
M : Classer les processus par rapport à leur utilisation de la mémoire.
k : Tuer un processus (PID sera demandé).
q : Quitter l’utilitaire top.
La commande kill: $ kill [-l] -Num_signal PID [PID2...]
Amani Braham TP03- Système d’exploitation 2 : Linux-PR 3
Permet d’envoyer des signaux à un processus dont on connaît son identifiant. Cette
commande ne sert pas seulement à « tuer » un processus ; on peut lister les signaux
disponible avec la commande kill –l.
SIGNAL DESCRIPTION
SIGSTOP (19) Arrêter un processus.
SIGCONT (18) Continuer un processus arrêté.
SIGTERM (15) Signifier au processus qu’il doit se terminer.
SIGKILL (9) Tuer un processus.
Commandes pour manipuler les jobs :
Il est possible de démarrer plusieurs processus appelés aussi « jobs ».
& : Démarrer un processus en arrière-plan.
jobs : Afficher la liste des tâches du Shell courant.
fg %n : Relancer l’exécution d’un processus en arrière-plan en un processus en
avant-plan.
Ctrl + Z : Suspendre un job
Amani Braham 2 Système d’exploitation 2 : Linux-PR
TP03- 4
bg %n : Relancer l’exécution d’un processus suspendu en processus en arrière-
plan.
kill %n : Tuer un job.
Pour lancer un processus en arrière-plan, on utilise le symbole &. Lorsqu’on
ferme la console, le processus est arrêté. Pour éviter qu’un processus ne s’arrête
lorsque son parent se termine, on utilise la commande nohup.
Commande time: $ time
Permet de mesurer les durées d’exécution d’une commande processus et retourner trois
valeurs (real, user, system).
Travail Demandé
A. Exercices de prise en main
1) Lister tous les processus lancés sur le système. Affichez la liste des processus dont vous
êtes propriétaire.
2) a- Lister de nouveau les processus lancés sur le système de façon détaillée.
b- A quoi correspond l’information STIME ?
c- A quelle heure votre machine a-t-elle démarré ?
3) Affichez la hiérarchie des processus s’exécutant sur le système.
4) Quel signal est lancé par défaut à la commande kill?
Amani Braham 2 Système d’exploitation 2 : Linux-PR
TP03- 5
5) Afficher en temps réel les informations sur l’ensemble de processus exécutés sur votre
machine. Quelles informations sont affichées par défaut ?
6) a- Consulter le man de nice et renice. A quoi sert les commandes nice et renice?
b- La commande top consomme des ressources. Faites en sorte que sa priorité soit de
« 19 ».
7) a- Consulter le man de ps. A quoi sert cette commande ? Placer le processus en arrière-
plan sans le terminer.
b- Consulter le man de kill. A quoi sert cette commande ? Placer le processus en arrière-
plan sans le terminer.
c- Lister les tâches lancées par le Shell.
d- Réafficher le man de ps.
e- Ouvrez un deuxième terminal et envoyez le signal SIGKILL au processus affichant
le man de ps.
f- Retourner dans le premier terminal, lister les tâches lancées par le Shell, et réactiver
le man de kill.
B. Exercices avancés
Exercice 1
1) Dans un système Linux, quel est le processus qui n’a pas un père ? Préciser son PID.
2) Utiliser la commande ps et trouver le PID du processus acpid.
3) Utiliser la commande pstree pour trouver le PID du processus acpid et le nom de son
processus père.
4) Consulter la documentation de la commande yes. A quoi sert cette commande ?
5) Lancer la commande: $ yes “Good morning, my name is yourname !”.
6) Pendant l’exécution de la commande yes, lancer la commande top dans un autre
terminal. Quels sont les processus qui consomment le plus le CPU ?
Exercice 2
1) a- Lancer les commandes sleep 4444, sleep 3333 et sleep 2222 en arrière-plan.
b- Que signifie ce qui est retourné à l’écran ?
2) Afficher la liste des tâches en cours.
3) Que signifient les caractères + et - dans la liste précédente ?
4) Lancer la commande sleep 1111 en avant-plan.
5) Interrompre le processus en avant plan en utilisant Ctrl+Z. Quel est le numéro de travail
du processus interrompu ?
Amani Braham 2 Système d’exploitation 2 : Linux-PR
TP03- 6
6) Afficher à nouveau la liste des tâches en cours.
7) Relancer en arrière-plan la dernière commande sleep.
8) Arrêter l’exécution de la première commande sleep en utilisant son numéro de travail.
9) Afficher à nouveau la liste des tâches en cours.
10) Arrêter l’exécution de la deuxième commande sleep en utilisant son PID.
11) Afficher à nouveau la liste des tâches en cours.
12) Passer en avant-plan les dernières commandes sleep et arrêter l’exécution de ces
commandes.
13) Afficher à nouveau la liste des tâches en cours.
Exercice 3
1) Lancer la commande xeyes.
2) Pouvez-vous exécuter une autre commande dans le même Shell ? Justifiez.
3) Suspendre l’application xeyes.
4) Ramener l’application en avant-plan.
5) Suspendre à nouveau l’application xeyes.
6) Continuer l’exécution de l’application xeyes tournant en arrière-plan.
7) Pouvez-vous exécuter une autre commande dans le même Shell ? Justifiez.
8) Lancer la commande gedit en avant-plan. Fermer la fenêtre de l’interpréteur de
commandes à partir de laquelle l’application est lancée. Que se passe-t-il ?
9) Lancer la commande gedit en arrière-plan. Fermer la fenêtre de l’interpréteur de
commandes à partir de laquelle l’application est lancée. Que se passe-t-il ?
10) Comment faire pour éviter qu’un processus ne s’arrête lorsque son parent se termine ?
Tester avec la commande gedit.
Amani Braham 2 Système d’exploitation 2 : Linux-PR
TP03- 7