Rapport

download Rapport

of 4

description

tp si

Transcript of Rapport

MOULOUDI Khaled / 201100002207L2 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 CMD0 R 1000 7926 5226 99 80 0 - 1142 - pts/0 00:00:56 programme0 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 7926kill -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