Chapitre 2.5 - Gestion des Processus
Objectifs d'Apprentissage
À la fin de ce chapitre, vous serez capable de:
- Comprendre comment Linux gère les processus
- Expliquer les états des processus
- Comprendre la planification (scheduling)
- Identifier les priorités et nice values
Qu'est-ce qu'un Processus?
Un processus est une instance d'un programme en cours d'exécution. Chaque processus a:
- Un PID (Process ID) unique
- Un PPID (Parent Process ID)
- Un espace mémoire propre
- Des fichiers ouverts
- Des ressources système
États des Processus
Un processus peut être dans différents états:
États:
- Running (R): En cours d'exécution ou prêt
- Sleeping (S): En attente d'un événement
- Stopped (T): Suspendu (Ctrl+Z)
- Zombie (Z): Terminé mais pas nettoyé
- Uninterruptible (D): En attente I/O disque
Planification des Processus
Le scheduler Linux (CFS - Completely Fair Scheduler) décide quel processus exécuter:
Critères de planification:
- Priorité (nice value)
- Temps CPU utilisé
- Temps d'attente
- Affinité CPU
Priorités et Nice Values
La priorité d'un processus détermine son accès au CPU:
Nice values:
- -20 à +19 (plus bas = plus prioritaire)
- 0: Priorité par défaut
- -20: Priorité élevée (root seulement)
- +19: Priorité très basse
# Voir la priorité
ps -o pid,ni,comm
# Changer la priorité au démarrage
nice -n 10 commande
# Changer la priorité d'un processus existant
renice 10 PID
# Processus temps réel (root)
chrt -f 50 commande
Hiérarchie des Processus
Les processus forment une hiérarchie (arbre):
Caractéristiques:
- Processus parent peut créer des enfants (fork)
- Si parent meurt, enfants deviennent orphelins (adoptés par init)
- Processus zombie si parent ne récupère pas le statut
Commandes de Gestion
# Voir les processus
ps aux
top
htop
# Tuer un processus
kill PID
kill -9 PID # Force
killall nom_processus
# Suspendre/Reprendre
kill -STOP PID
kill -CONT PID
# Voir l'arbre des processus
pstree
ps auxf
Communication Inter-Processus
Les processus peuvent communiquer via:
- Signaux: kill, SIGTERM, SIGKILL
- Pipes:
|(ligne de commande) - Sockets: Communication réseau
- Fichiers partagés: Mémoire partagée
- Message queues: IPC System V
Résumé
Dans ce chapitre, vous avez appris:
Processus: Instance d'un programme en cours d'exécution
États: Running, Sleeping, Stopped, Zombie
Scheduler: CFS planifie l'exécution des processus
Priorités: Nice values de -20 à +19
Hiérarchie: Arbre avec init comme racine
Gestion: ps, top, kill, nice, renice
Prochaines Étapes
Chapitre 2.6: Processus Init et systemd
Chapitre 2.7: Services et Démon
Chapitre créé le: Décembre 2024