Multiprocessus

Définition, exemples et bonnes pratiques

À retenir

  • Isolation : Chaque processus a sa propre mémoire ; si l'un plante, les autres survivent.
  • Performance : Permet d'utiliser plusieurs cœurs de processeur en même temps.
  • Indépendance : Les tâches ne partagent pas leurs ressources directement, contrairement au multithreading.

Le multiprocessus désigne la capacité d'un ordinateur ou d'un logiciel à exécuter plusieurs tâches indépendantes, appelées processus, de manière simultanée. C'est un peu comme une cuisine où plusieurs chefs travaillent chacun sur un plat différent : si l'un d'eux rate sa recette, cela n'empêche pas les autres de continuer leur travail.

Étymologie

Le mot est composé du préfixe latin multi- (plusieurs) et du nom processus (progression, marche en avant). En informatique, un processus représente un programme en cours d'exécution avec son propre espace mémoire.

Exemples d'usage

  • Navigateurs web : Dans Google Chrome, chaque onglet ouvert est souvent géré comme un processus distinct pour éviter qu'un plantage sur un site ne ferme tout le navigateur.
  • Serveurs Web : Un serveur comme Apache peut créer plusieurs processus pour répondre aux demandes de milliers de visiteurs en même temps.
  • Systèmes d'exploitation : Windows, macOS ou Linux gèrent des centaines de processus en arrière-plan (antivirus, horloge, gestion du Wi-Fi) de façon parallèle.

Cas d'usage

Ce concept est crucial dans le développement d'applications lourdes (montage vidéo, calcul scientifique) et dans la gestion des serveurs. Il permet d'exploiter la puissance des processeurs modernes qui possèdent plusieurs cœurs, en répartissant le travail sur chacun d'eux.

Bonnes pratiques

Il faut veiller à ne pas lancer trop de processus simultanément, car chacun consomme une portion de la mémoire vive (RAM). Un excès peut ralentir la machine au lieu de l'accélérer. Il est aussi important de bien gérer la communication entre ces processus (IPC) pour qu'ils puissent échanger des données sans se gêner.

Synonymes

parallélisme exécution parallèle multitâche

Antonymes

monoprocessus exécution séquentielle

Conseil

Si vous débutez en programmation (notamment en Python), commencez par comprendre les fonctions simples avant de vous lancer dans le multiprocessing. C'est un outil puissant mais complexe qui demande de bien maîtriser la gestion des ressources système.

Questions fréquentes

Quelle est la différence avec le multithreading ?

Dans le multiprocessus, les tâches sont isolées (chacun son bureau). Dans le multithreading, les tâches partagent la même mémoire (plusieurs personnes sur le même bureau), ce qui est plus léger mais plus risqué en cas d'erreur.

Est-ce que cela consomme plus de batterie ?

Oui, solliciter plusieurs cœurs de processeur pour du multiprocessus demande généralement plus d'énergie que d'exécuter une seule tâche à la suite.