<Précédent | Table des matières | Suivant>
3.1.3. Gestion des processus
Un processus est une instance en cours d'exécution d'un programme, qui nécessite de la mémoire pour stocker à la fois le programme lui-même et ses données d'exploitation. Le noyau est en charge de la création et du suivi des processus. Lorsqu'un programme s'exécute, le noyau met d'abord de côté de la mémoire, y charge le code exécutable du système de fichiers, puis démarre l'exécution du code. Il conserve des informations sur ce processus, dont le plus visible est un numéro d'identification connu sous le nom de identifiant de processus (PID).
Comme la plupart des systèmes d'exploitation modernes, ceux avec des noyaux de type Unix, y compris Linux, sont capables d'effectuer plusieurs tâches. En d'autres termes, ils permettent au système d'exécuter plusieurs processus en même temps. Il n'y a en fait qu'un seul processus en cours d'exécution à la fois, mais le noyau divise le temps CPU en petites tranches et exécute chaque processus à son tour. Étant donné que ces tranches de temps sont très courtes (de l'ordre de la milliseconde), elles créent l'apparence de processus s'exécutant en parallèle, bien qu'elles ne soient actives que pendant leur intervalle de temps et inactives le reste du temps. Le travail du noyau consiste à ajuster ses mécanismes de planification pour conserver cette apparence, tout en maximisant les performances globales du système. Si les tranches de temps sont trop longues, l'application peut ne pas apparaître aussi réactive que souhaité. Trop court, et le système perd du temps en changeant de tâche trop fréquemment. Ces décisions peuvent être affinées avec des priorités de processus, où les processus à haute priorité s'exécuteront pendant des périodes plus longues et avec des tranches de temps plus fréquentes que les processus à faible priorité.
Systèmes multiprocesseurs La limitation décrite ci-dessus, d'un seul processus s'exécutant à la fois, n'est pas toujours (et variantes) appliquer : la restriction réelle est qu'il ne peut y avoir qu'un seul processus en cours d'exécution par cœur de processeur. Multiprocesseur, multicœur ou hyper-thread les systèmes permettent plusieurs
processus à exécuter en parallèle. Cependant, le même système de découpage temporel est utilisé pour gérer les cas où il y a plus de processus actifs que de cœurs de processeur disponibles. Ce n'est pas inhabituel : un système de base, même en grande partie inactif, a presque toujours des dizaines de processus en cours d'exécution.
Systèmes multiprocesseurs La limitation décrite ci-dessus, d'un seul processus s'exécutant à la fois, n'est pas toujours (et variantes) appliquer : la restriction réelle est qu'il ne peut y avoir qu'un seul processus en cours d'exécution par cœur de processeur. Multiprocesseur, multicœur ou hyper-thread les systèmes permettent plusieurs
processus à exécuter en parallèle. Cependant, le même système de découpage temporel est utilisé pour gérer les cas où il y a plus de processus actifs que de cœurs de processeur disponibles. Ce n'est pas inhabituel : un système de base, même en grande partie inactif, a presque toujours des dizaines de processus en cours d'exécution.
Le noyau permet à plusieurs instances indépendantes du même programme de s'exécuter, mais chacune n'est autorisée à accéder qu'à ses propres tranches de temps et à sa propre mémoire. Leurs données restent ainsi indépendantes.