Aller au contenu principal

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:

  1. Signaux: kill, SIGTERM, SIGKILL
  2. Pipes: | (ligne de commande)
  3. Sockets: Communication réseau
  4. Fichiers partagés: Mémoire partagée
  5. 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