Avant de plonger dans les applications pratiques de la gestion des processus, il est essentiel de comprendre ce que sont les processus Linux et comment ils fonctionnent. Ce sujet peut sembler complexe à mesure que nous explorons les détails, n'hésitez donc pas à revenir sur cette leçon plus tard si nécessaire.
Qu'est-ce qu'un processus Linux
Un processus est un programme en cours d'exécution. Plus précisément, c'est une instance d'un programme en cours d'exécution à laquelle le système a alloué des ressources telles que la mémoire, le temps CPU et les E/S. Par exemple, si vous ouvrez trois fenêtres de terminal, exécutez la commande cat dans deux d'entre elles sans aucun argument (elle attendra l'entrée standard, gardant le processus actif), puis utilisez la troisième fenêtre pour exécuter ps aux | grep cat, vous verrez deux processus cat distincts. Chacun est une instance séparée du même programme, avec son propre identifiant de processus unique et son allocation de ressources.
Le rôle du noyau dans la gestion des processus
Le noyau Linux est responsable de toute la gestion des processus. Lorsque vous exécutez un programme, le noyau charge son code en mémoire, alloue les ressources système nécessaires et commence à le suivre en tant que processus. Le noyau maintient des informations détaillées pour chaque processus, notamment :
- L'état du processus
- Les ressources que le processus utilise et reçoit
- Le propriétaire du processus
- La gestion des signaux (nous y reviendrons plus tard)
- Et fondamentalement tout le reste
Tous les processus actifs sont en concurrence pour les ressources système. Le noyau agit comme un ordonnanceur, garantissant que chaque processus reçoit une juste part des ressources en fonction de sa priorité et de ses besoins. Lorsqu'un processus termine sa tâche ou est terminé, le noyau récupère les ressources qu'il utilisait, les rendant disponibles pour d'autres processus.