expose linux gestion des processus
TRANSCRIPT
![Page 1: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/1.jpg)
1
LA GESTION DES PROCESSUS
Réalisé par :Guebba SaraFagroud Fatima ZahraNaji ZakariaMoudden Abderrazak
Encadré par :Mme Nawal Sael
![Page 2: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/2.jpg)
2
PLANDéfinition de Processus
Caractéristiques des Processus
Gestion des Processus
Types des processus
![Page 3: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/3.jpg)
3
DÉFINITION DE PROCESSUS
![Page 4: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/4.jpg)
4
Processus : programme en cours d’exécution
PROBLÈME: Un processeur ne peut exécuter qu’une seule instruction à la fois. BUT: Partager un (ou plusieurs) processeur entre différents processus.
Processus
![Page 5: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/5.jpg)
5
La types de
Processus
![Page 6: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/6.jpg)
6
Il est possible de distinguer deux types de processus
les processus utilisateurs.
les processus système
![Page 7: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/7.jpg)
7
a) Les processus système (daemons) Processus qui sont lancés au démarrage du système, Ces processus ne sont sous le contrôle d’aucun terminal et ont comme propriétaire l’administrateur du système
b)Les processus utilisateurs : o Ils correspondent à chaque exécution d’un
programme par l’utilisateur, le premier d’entre eux étant l’interpréteur de commandes à la connexion. Ces processus appartiennent à l’utilisateur et sont généralement attachés à un terminal.
![Page 8: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/8.jpg)
8
Les caractéristiques
d’un processus
![Page 9: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/9.jpg)
9
Les caractéristiques d’un processus
![Page 10: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/10.jpg)
10
En exécutionEn attente
prêt
Quand un processus s’exécute, il change d’état.Chaque processus peut se trouver dans Chacun des états suivantes :
Etat d’un processus
![Page 11: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/11.jpg)
11
LES CARACTÉRISTIQUES
STATIQUESSes caractéristiques statiques
c’est-à-dire ne variant pas au cours de sa vie, sont:♦ Un numéro unique: PID (Process
IDentifier),♦ Un propriétaire déterminant les droits
d’accès du processus aux ressources : ouverture de fichiers...
♦ Un terminal d’attache pour les entrées/sorties
![Page 12: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/12.jpg)
12
LES CARACTÉRISTIQUES
DYNAMIQUES
Ses caractéristiques dynamiques sont:
Priorité, environnement
d’exécution...
Quantité de ressources
consommées
![Page 13: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/13.jpg)
13
La notion
d ’ordonnancement
![Page 14: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/14.jpg)
14
L’ORDONNANCEUR
L’ordonnanceur (scheduler) est le module du SE qui s’occupe de sélectionner le processus suivant à exécuter parmi ceux qui sont prêts.
![Page 15: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/15.jpg)
15
TYPES D'ORDONNANCEMENT
A. Ordonnancement préemptif : l’Ordonnanceur peut interrompre un processus en cours d’exécution si un nouveau processus de priorité plus élevée est inséré dans la file des Prêts.
B. Ordonnancement coopératif : Ordonnancement jusqu’à achèvement : le processus élu garde le contrôle jusqu’à épuisement du temps qui lui a été alloué même si des processus plus prioritaires ont atteint la liste des Prêts
![Page 16: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/16.jpg)
16
LES ALGORITHMES DES ORDONNANCEMENTS
A. L’algorithme FIFO (First In First Out) L'ordonnancement est fait dans l'ordre d'arrivée Le processus élu est celui qui est en tête de liste
des Prêts: le premier arrivé.
B. L’algorithme SJF (Shortest Job First) SJF choisit de façon prioritaire les processus ayant
le plus court temps d’exécution sans réellement tenir compte de leur date d’arrivée.
![Page 17: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/17.jpg)
17
LES ALGORITHMES DES ORDONNANCEMENTS
C. L'algorithme du tourniqueles processus sont rangés dans une file d'attente des éligibles, le processeur est alloué successivement aux différents processus pour une tranche de temps fixe Q appelé Quantum.
D. L’algorithme HPF(Highest Priority First)
L'attribution de priorité à chaque processus. L'Ordonnanceur lance le processus prêt de priorité la plus élevée.
En cas de priorités égales on utilise l’algorithme FIFO
![Page 18: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/18.jpg)
18
Les ENTRÉES/SORTIES
D’UN PROCESSUS
![Page 19: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/19.jpg)
19
CANAUXS DE COMMUNICATION
A chaque création de processus, celui ci se voit affecté trois canaux de communication : Entrée standard Sortie standard Sortie d'erreurs standard
![Page 20: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/20.jpg)
20
CANAUXS DE COMMUNICATION
Chacun des trois canaux se voit affecter un nom de fichier et un numéro :Canal de
communicationFichier Numéro
logiqueEntrée standard stdin 0Sortie standard stdout 1Sortie d'erreurs standard
stderr 2
![Page 21: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/21.jpg)
21
LES FICHIERSLe fichier stdin :
fichier à partir duquel le process va lire les données nécessaires en entrée.
Ouvert avec le numéro logique 0(file descriptor C) Par défaut associé au clavier
Le fichier stdout : fichier dans lequel le process va écrire les messages qu'il
produit en sortie, dans le cas d'une exécution normale. ouvert avec le numéro logique 1 (file descriptor C) par défaut associé à l'écran
Le fichier stderr : fichier dans lequel le process va écrire les messages d'erreur. ouvert avec le numéro logique 2 (file descriptor C) par défaut associé à l'écran
![Page 22: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/22.jpg)
22
Le code retour d’un
processus
![Page 23: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/23.jpg)
23
L’ exécution de toute commande UNIX se termine par l’envoi d’un code retour au processus père. Celui-ci indique le bon déroulement ou non de la commande.
un code retour égal à: 0 : indique un bon déroulement 1 : indique une erreur de syntaxe 2 : une erreur d’emploi de la commande.
La variable $? du shell permet d’afficher le code retour de la dernière commande exécuté
![Page 24: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/24.jpg)
24
Cycle de vie d’un
processus
![Page 25: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/25.jpg)
25
CRÉATION D’UN PROCESSUS UNIX
La primitive FORK : permet la création dynamique d'un nouveau processus qui s'exécute de manière concurrente avec le processus qui l'a créé.
Lors de l'exécution de l'appel système Fork, si les ressources noyaux sont disponibles, le système effectue les opérations suivantes : le système alloue une entrée à la table des processus
pour le nouveau processus le système alloue un PID unique au nouveau processus le système duplique le contexte du processus parent :
le code, les données, et la pile le système retourne au processus père le PID du
processus crée et au nouveau processus (le fils) la valeur 0.
![Page 26: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/26.jpg)
26
CRÉATION D’UN PROCESSUS UNIX
Lors de cette création le processus fils hérite de tous les attributs de son père sauf : l'identificateur de son père son propre identificateur les temps d'exécution du nouveau processus
sont à nuls. Notamment, le fils hérite de tous les
descripteurs de fichiers ouverts par son père et partage donc ces fichiers avec lui.
![Page 27: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/27.jpg)
27
TERMINIAISON D’UN PROCESSUS UNIX
Un appel à la primitive EXIT provoque la terminaison du processus effectuant l'appel avec un code retour valeur.
Un processus qui se termine passe dans l'état zombi et reste dans cet état tant que son père n'a pas pris en compte sa terminaison.
Lorsqu'un processus se termine, le système démantèle tout son contexte, sauf l'entrée de la table des processus le concernant.
Le processus père, par un appel à la primitive WAIT, récupère la mort de son fils, cumule les statistiques de celui-ci avec les siennes et détruit l'entrée de la table des processus concernant son fils défunt. Le processus fils disparaît complètement.
![Page 28: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/28.jpg)
28
TERMINIAISON D’UN PROCESSUS UNIX
La communication entre le fils zombi et le père s'effectue par le biais d'un signal transmis du fils vers le père (signal SIGCHLD ou mort du fils). Si le père n'attend pas la mort de son fils par un appel à la primitive WAIT alors la table des processus n'est pas libérée et il y a risque de saturation de cette table.
Un processus fils défunt reste zombi jusqu'à ce que son père ait pris connaissance de sa mort. Un processus fils orphelin, suite au décès de son père (le processus père s'est terminé avant son fils) est toujours adopté par le processus numéro 1 (INIT) et non par son grand-père.
![Page 29: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/29.jpg)
29
Le bloc de
contrôle d’un
processus
![Page 30: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/30.jpg)
30
CONTENU un identificateur unique du processus (un entier) : le PID l'état courant du processus (élu, prêt, bloqué) le contexte processeur du processus : la valeur du CO, la
valeur des autres registres du processeur le contexte mémoire : des informations mémoire qui
permettent de trouver le code et les données du processus en mémoire centrale
des informations diverses de comptabilisation pour les statistiques sur les performances système
des informations liées à l' ordonnancement du processus. Le PCB permet la sauvegarde et la restauration du
contexte mémoire et du contexte processeur lors des opérations de commutations de contexte .
![Page 31: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/31.jpg)
31
![Page 32: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/32.jpg)
32
GESTION DES PROCESSUS
![Page 33: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/33.jpg)
33
LES SIGNAUX Un processus (ou le système) peut envoyer un signal
à un autre processus (commande ou appel kill) .Le processus destinataire réagit instantanément (il interrompt l'exécution de son programme, traite le signal, et éventuellement reprend son exécution)
Le système communique avec les processus à l’aide de signaux. Un signal ne transporte pas d'information autre que son numéro. Il existe quelques dizaines de signaux distincts, définis par le système (kill -l pour obtenir la liste)
Par exemple: SIGKILL Termine le processus autoritairement SIGSTOP Met le processus en attente (sommeil) SIGCONT Reprend l'exécution d'un processus endormi
![Page 34: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/34.jpg)
34
LES SIGNAUX Exemples de génération de signaux :
Lorsqu'un fils se termine, un signal SIGCHLD est envoyé à son père. Cependant, le père ne sait pas lequel de ses fils s’est terminé.
Lorsqu’un processus écrit à une adresse mémoire invalide, un signal SIGSEGV est généré
div. par 0 envoie le signal SIGFPE (Floating Point Exception)
Certaines touches entrainent l'envoi d'un signal : Ctrl+C Envoie SIGINT Ctrl+\ Envoie SIGQUIT
![Page 35: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/35.jpg)
35
Les modes
d’exécution
![Page 36: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/36.jpg)
36
EXÉCUTION SÉQUENTIELLE
Le mode d’exécution par défautExécution synchronePour lancer l'exécution séquentielle de
plusieurs commandes sur la même ligne de commande, il suffit de les séparer par le caractère ;
![Page 37: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/37.jpg)
37
EXÉCUTION SÉQUENTIELLE
la combinaison de touches appropriée pour arrêter l’exécution d’une commande en mode synchrone est indiquée par la valeur du champ intr lorsque la commande unix stty
![Page 38: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/38.jpg)
38
EXÉCUTION EN ARRIÈRE PLAN permet de rendre immédiatement le contrôle
à l’utilisateur On utilise le caractère & pour lancer une
commande en arrière-plan ( cmd &)
![Page 39: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/39.jpg)
39
EXÉCUTION EN ARRIÈRE PLAN
Si le terminal est fermé, la commande en arrière plan est interrompue automatiquement Solution: lancer la commande sous le contrôle de
la commande nohup (nohup nom_commande &)
![Page 40: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/40.jpg)
40
MODE DIFFÉRÉ
Commande at: Exécution d’une commande a un temps précis
![Page 41: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/41.jpg)
41
commandes de
gestion des
processus
![Page 42: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/42.jpg)
42
COMMANDES PS
Commande ps permet de voir l'état des processus en cours
d'exécution sur une machine Syntaxe:
ps [options] Rarement utilisé sans option
![Page 43: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/43.jpg)
43
COMMANDES PS Option:
-e : affichage de tous les processus -f : affichage détaillé -x : permet de visualiser tout les processus
actifs de l'utilisateur courant -ax :permet de visualiser tous les processus de la
machine de tous les utilisateurs -aux : permet de visualiser affiche les utilisateurs
associés à chaque processus -u nom_utilisateur : affiche chaque processus
associés à utilisateur -p PID :affiche les informations sur un processus -t :affiche tout les processus liées a un terminal
![Page 44: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/44.jpg)
44
COMMANDES PS
![Page 45: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/45.jpg)
45
COMMANDES TOP Permet d’afficher des informations en continu sur
l’activité du système Permet surtout de suivre les ressources que les
processus utilisent (quantité de RAM, pourcentage de CPU, la durée de ce processus depuis son démarrage
![Page 46: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/46.jpg)
46
ARRÊTER UN PROCESSUS Commande kill
pour arrêter un processus, on doit aussi tuer un processus
On doit connaître son PID (commande ps) Syntaxe:
• kill -9 PID• kill PID
![Page 47: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/47.jpg)
47
Priorité d’un
processus
![Page 48: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/48.jpg)
48
PRIORITÉ D’UN PROCESSUS Chaque processus se voit affecter une
priorité qui correspond à un numéro(entre -20 et 20).
Lorsqu'une commande est lancée, le processus a une priorité maximale.
Plus le processus occupe de temps d’exécution pour le processeur, plus son numéro de priorité baisse, et moins le processus occupe de temps d’exécution pour le processeur, plus son numéro de priorité augmente.
plusieurs processus peuvent être exécutes en même temps
![Page 49: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/49.jpg)
49
COMMANDES La commande nice permet de diminuer la
priorité du processus : nice -n nombre (nom_processus) Exemple :
nice -n -19 firefox Donc ici le Firefox va s'ouvrira avec une priorité très
élevé. On peut aussi gérer la priorité sans
commande de ligne depuis le Moniteur système
![Page 50: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/50.jpg)
50
COMMANDES la commande renice permet de changer le
facteur de priorité en cours d'exécution de la commande, en spécifiant le nouveau facteur de priorité et le numéro de processus (PID) mais il faut se connecter au tant qu’un root : Exemple :
renice -10 (pid_processus) Remarque : on peut trouver le PID d'un
processus en cours d’exécution avec la commande (PIDOF nom_de_processus)
![Page 51: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/51.jpg)
51
jobs control
![Page 52: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/52.jpg)
52
Fonctionnalité interne au shell Permet de gérer des tâches (processus)
multiples dans un même shell : suspension temporaire : le processus est arrêté
jusqu'à nouvel ordre arrêt définitif : le processus est terminé mise en arrière/avant plan : le processus reçoit
l'entrée clavier Un processus peut ignorer l'arrêt définitif,
mais pas la suspension
![Page 53: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/53.jpg)
53
Suspendre (stopper) un processus : Ctrl+z Arrêter (terminer) un processus : Ctrl+c (si
le processus est à l'avant plan) Voir la liste des processus du terminal (jobs) :
jobs %n '+' est le job « courant »
![Page 54: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/54.jpg)
54
Mettre un job en arrière plan : bg %n nom_ps &
Mettre un job en avant plan : fg %n nom_ps
Lancer un job en arrière plan : nom_ps &
![Page 55: Expose linux gestion des processus](https://reader036.vdocuments.mx/reader036/viewer/2022062523/58735cf91a28abe7648b4ca7/html5/thumbnails/55.jpg)
55
Merci pour votre
attention.