À retenir
- Isolation totale : chaque processus a sa propre mémoire.
- Stabilité : un plantage est localisé et n'affecte pas les voisins.
- Coût élevé : consomme plus de ressources qu'un thread pour démarrer.
Un processus lourd est un programme en cours d'exécution qui dispose de son propre espace de travail privé dans la mémoire de l'ordinateur. Contrairement à un thread (processus léger), il est totalement indépendant : si l'un d'eux plante, il n'entraîne pas la fermeture des autres. On peut l'imaginer comme une entreprise autonome avec ses propres bureaux, ses propres dossiers et son propre personnel.
Étymologie
Traduction du concept anglais heavyweight process. Le mot « processus » vient du latin processus (progression, marche en avant). L'adjectif « lourd » a été ajouté pour souligner la consommation importante de ressources (mémoire et temps processeur) nécessaire à sa création et à sa gestion par le système d'exploitation.
Exemples d'usage
- L'ouverture d'un nouvel onglet dans certains navigateurs web modernes (comme Chrome), où chaque onglet est un processus séparé.
- L'exécution d'un script Python indépendant via la ligne de commande.
- Le lancement d'un serveur de base de données tournant en arrière-plan.
Cas d'usage
Ce concept intervient principalement dans les systèmes d'exploitation (Linux, Windows, macOS) pour isoler les applications les unes des autres. On l'utilise en développement quand on veut garantir qu'une erreur dans une partie du programme ne corrompe pas les données d'une autre partie.
Bonnes pratiques
Il faut éviter de créer des milliers de processus lourds simultanément, car cela sature rapidement la mémoire vive (RAM). Pour des tâches très nombreuses et interconnectées, il est préférable d'utiliser des processus légers (threads) ou des fonctions asynchrones.
Synonymes
Antonymes
Conseil
Retenez bien que la principale différence avec un thread est le partage de la mémoire. Si vous voulez de la sécurité et de l'étanchéité, choisissez le processus lourd. Si vous voulez de la performance pure pour des tâches qui partagent les mêmes données, le thread est plus adapté.
Questions fréquentes
Pourquoi dit-on qu'il est créé par duplication ?
Sur les systèmes de type Unix, un nouveau processus est créé en copiant un processus existant (appelé parent) via une opération nommée 'fork', avant de charger un nouveau programme.
Un processus lourd peut-il communiquer avec un autre ?
Oui, mais c'est complexe ; ils doivent utiliser des mécanismes spécifiques appelés IPC (Inter-Process Communication) comme les tubes ou les sockets.