Vous êtes sur la page 1sur 4

MOULOUDI Khaled / 201100002207

L2 ISIL Section A Groupe 2


Compte-rendu du TP No.5 de Systme d'Exploitation
Gestion de Processus et Signaux sous Linux Partie I

Rapport du TP5 de Systme d'Exploitation :


Exercice 1:
1 En utilise l'utilitaire des manuels (commande man) pour nous renseigner
sur les diffrentes commandes. Sinon, leur excution principale :
- bg signifie Background excute un processus en arrire plan
- fg signifie Foreground excute un processus au premier plan
- jobs signifie Travaux permet d'afficher la liste des processus en arrire plan.
- ps liste les processus en cours d'excution. Tout comme la commande ls celle
ci accepte l'argument -l qui lui permet d'afficher la liste avec une forme longue
ainsi que l'ID du processus pre.
- pstree (tree pour arbre) affiche l'arborescence des processus en cours
d'xecution
- kill perrmet de tuer un processus.
- killall permet d'envoyer un signal tous les processus.
Le paramtre pid qui peut accompagner certaines commandes sert identifier
le processus contacter.
2 On cre le programme en Langage C grce gedit avec un contenu tel que
celui l pour provoquer une boucle infinie :

int main() {
while (true) ;
}
Puis on l'excute avec ./programme
3 Pour obtenir le pid du programme et celui de son pre, on ouvre un autre

terminal tant donn que la boucle infinie est entrain d'tre excute sur celui l
puis l'on tape

ps -al
L'argument -a sert afficher tous les processus en cours et l'argument -l pour
afficher la liste longue.
On obient :

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY


TIME
CMD
0 R 1000 7926 5226 99 80 0 - 1142 pts/0 00:00:56
programme
0 R 1000 8035 6670 0 80 0 - 1234 pts/3 00:00:00
ps
4 En prssant la combinaison CTRL+Z on arrte le programme en cours sans
l'arrter totalement.
5 En excutant la commande ps commen demand, on constate le processus
dans un tat T. Cela signifie qu'il est en arrire plan et est suspendu.
Avant cela, le processus se trouvait dans l'tat R.
R pour Running et T pour Trapped
6 Pour remettre un processus en arrire plan, il suffit d'xecuter la
comamnde :

fg X
X etant le numro interne du job contacter.
7 Le fait d'appuyer sur CTRL+C fait arrter le processus en corus d'xecution.
Equivalant kill -INT 7926
8 En fait les questions 4 et 7 avec la commande kill :

kill -TSTP 7926


kill -INT 7926
Ce qui equivaut respectivement CTRL+Z et CTRL+C pour les commandes
dcrites prcdemment (Suspension ou terminaision)
9 Pour lancer un processus en arrire plan, il suffit de lancer le programme

souhait en precissant bg ou bien le symbole & tel que

bg ./programme
La diffrence entre cette mthode et la premire est qu'ici, le processus est
bien arrire plan mais il est dans l'tat En cours d'excution (R) au lieu d'tre
arrt.
10 La commande taper est :

jobs

Exercice 2:
1 Aprs avoir utilis gedit ou encore cat on cre le fichier demand.
Ce script incrmente de manire indfinie la valeur d'une variable i de 1 pui s
l'affiche. Le sleep 2 cre une attente de 2 secondes chaque itration del a
boucle.
2 Pour afficher la hierarchie des processus en demandant de faire ressortir la
branche depuis laquette script.sh est excut, on utilise l'argument -H de la
commande pstree comme suit :

pstree -h 4966
4966 tant bien videmment le PID du processus de la boucle qu'on peut
obtenir grce la commande ps -fa
3 La commande top permet d'afficher la liste en temps rel des processus qui
sont en cours d'xecution sur la machine.
Les informations s'y trouvant modifient rgulirement et reprsentent la
consommation en mmoire virtuelle et centrale ainsi que la consommation
CPU.
4 On interrompe l'excution du script grce la combinaison CTRL+Z comme
demand. Le processus passe alors en arrire plan et l'tat stopp.
5 Pour arrter le processus suspensdu, nous avons deux faons de le faire :
Soit en reprenant l'excution du processus pour lui envoyer un signal avec kill.
(Le processus sera immdiatement termin)
Soit en envoyant le signal kill -TERM pidduprocessus pendant que son
excution est suspendu. Mais le signal ne sera pas excute de suite (Il sera
mmoris) et ne sera pris en considration que lorsqu'on reprend l'excution
du processus avec la commande fg.

6 Pour faire ce qui est demand, il suffit de rajouter une ligne

echo Valeur de i : $i >> hello


(Comme appris lors des TP prcdents)
Cette ligne fera en sorte d'envoyer au fichier hello chaque itration la
nouvelle valeur de i.
Pour que le programme puisse maintenant survivre la dconnexion de
l'utilisateur, il suffit d'utiliser :

nohup bash script.sh


Les sorties iront dsormais vers nohup.out et les entres seront tout
simplement ignores. Une fois le terminal ferm, le processus continuera
s'xecuter tout en mme temps que la valeur de i continuera s'incrmenter
et s'enregistrer