Définition
Processus
Un processus est un programme en cours d'exécution, y compris son état d'exécution, la mémoire et les ressources système qu'il utilise.
PID (Process Identifier)
Un PID est un identifiant unique attribué par le système d'exploitation à chaque processus.
Context Switching
Le 'context switching' est le processus de sauvegarde et de restauration de l'état (le contexte) d'un CPU afin que l'exécution puisse être reprise à partir du même point plus tard.
Multitâche
Le multitâche est la capacité d'un système d'exploitation à exécuter plusieurs tâches (processus) simultanément.
Gestion des processus sous Linux
Sous Linux, les processus sont au cœur du fonctionnement du système. Chaque processus est créé à partir d'un autre processus préexistant, appelé processus parent, via un appel système spécifique comme 'fork()'. Le processus ainsi créé est le processus enfant qui peut s'exécuter indépendamment, utilisant le même code que le parent, mais avec une instance d'exécution distincte. Les processus sont gérés de manière hiérarchique et sont suivis à l'aide des PIDs.
Etat des processus
Un processus peut être dans plusieurs états différents tels que: en cours d'exécution, prêt à s'exécuter, bloqué (en attente de l'achèvement d'une opération d'E/S), ou terminé. L'ordonnanceur de processus du noyau décide quel processus doit être exécuté à un moment donné, en basant sa décision sur différents algorithmes d'ordonnancement.
Communication inter-processus (IPC)
La communication inter-processus est essentielle pour permettre aux processus de coordonner leurs actions et de partager des données. Les méthodes d'IPC incluent les signaux, les pipes, les files de messages, les sémaphores, et les mémoires partagées. Chaque méthode a ses propres caractéristiques, avantages et inconvénients.
Signals et gestion de signaux
Les signaux sont un mécanisme de communication pour notifier un processus d'un événement. Lorsqu'un signal est envoyé, le processus destinataire peut soit gérer le signal via un gestionnaire de signaux, soit ignorer ou retenir le signal pour plus tard. Les signaux sont couramment utilisés pour interrompre, arrêter, reprendre, ou terminer un processus.
Planification et ordonnancement
L'ordonnancement des processus est une tâche essentielle du noyau du système d'exploitation, qui détermine comment les processus sont attribués aux ressources du processeur. Linux implémente plusieurs politiques d'ordonnancement qui peuvent inclure le FIFO (First In, First Out), Round Robin et d'autres algorithmes basés sur la priorité.
A retenir :
Les processus sous Linux sont des entités centrales qui exécutent des programmes via le CPU, en utilisant des PIDs pour les distinguer et les gérer. Le système d'exploitation utilise des mécanismes tels que le 'context switching' pour gérer efficacement le multitâche et la planification. L'IPC joue un rôle crucial dans la coordination entre processus, tandis que les signaux fournissent un moyen rapide de communication sur des événements. Comprendre le fonctionnement des processus, de leur création à leur gestion par l'ordonnanceur, est essentiel pour apprécier la manière dont Linux exécute de multiples tâches simultanément.