Les processus sont au cœur du fonctionnement des systèmes d’exploitation. Dans cet article, nous allons explorer ce concept essentiel et vous expliquer en détail comment les processus sont créés, comment ils interagissent entre eux et quel rôle joue le système d’exploitation dans leur gestion.
Notion de processus : comprendre le code source
Un programme, écrit dans un langage de haut niveau, est transformé en langage machine pour pouvoir être exécuté par un ordinateur. C’est à ce moment-là qu’il devient un processus en cours d’exécution. Prenons l’exemple de notre recette de cuisine : le code source du programme correspond à la recette, et le processus est le cuisinier qui la suit dans sa cuisine.
États d’un processus : du “chacun son tour”
Les systèmes d’exploitation modernes, tels que Linux, Windows, macOS, Android ou iOS, peuvent gérer l’exécution de plusieurs processus en même temps. Mais en réalité, ils les exécutent “chacun leur tour”. Pour gérer cela, les systèmes d’exploitation attribuent différents “états” aux processus.
Voici les états possibles :
- L’état “élu” correspond au processus en cours d’exécution, celui qui utilise le microprocesseur.
- L’état “bloqué” concerne le processus qui attend l’accès à une ressource qui n’est pas immédiatement disponible. Tant qu’il n’obtient pas cette ressource, il reste bloqué.
- L’état “prêt” est celui où le processus a obtenu la ressource attendue et est prêt à reprendre son exécution dès que sa “place” sera disponible.
Le passage de l’état “prêt” à l’état “élu” correspond à l’opération “d’élection”, tandis que le passage de l’état “élu” à l’état “bloqué” est l’opération de “blocage”. Un processus est créé dans l’état “prêt” et doit obligatoirement se trouver dans l’état “élu” pour se terminer.
Il est essentiel de comprendre que le système d’exploitation est le “chef d’orchestre” qui attribue aux processus leur état. Le système gère l’ordonnancement des processus, en déterminant quel processus est prioritaire sur les autres.
Création d’un processus : les relations père et fils
Un processus peut créer un ou plusieurs autres processus à l’aide d’une commande système, telle que “fork” sous les systèmes de type Unix. Si un processus A crée un processus B, on dit que A est le père de B et que B est le fils de A. Cette relation père-fils peut être représentée par une structure arborescente.
Mais comment est créé le tout premier processus ? Sous un système d’exploitation comme Linux, au démarrage de l’ordinateur, un premier processus (appelé processus 0 ou Swapper) est créé à partir de “rien”. Ce processus 0 crée ensuite un processus appelé “init”. À partir de “init”, les processus nécessaires au bon fonctionnement du système sont créés. Puis, d’autres processus sont créés à partir de ces nouveaux processus.
PID et PPID : identifier les processus
Chaque processus possède un identifiant appelé PID (Process Identification), qui est un nombre. Le premier processus créé au démarrage du système a le PID 0, le second 1, le troisième 2, et ainsi de suite. Le système d’exploitation utilise un compteur pour attribuer les PID aux processus.
Chaque processus possède également un PPID (Parent Process Identification). Le PPID permet de connaître le processus parent d’un processus. Par exemple, le processus “init” a un PID de 1 et un PPID de 0. Le processus 0, lui, ne possède pas de PPID.
Observer les processus : commandes utiles
Sous Linux, il existe des commandes permettant de visualiser les processus. Par exemple, vous pouvez utiliser la commande ps -aef
dans un terminal pour afficher des informations sur les processus en cours sur votre ordinateur, dont les PID et les PPID.
La commande top
permet quant à elle d’avoir un suivi en temps réel des processus. En l’exécutant dans un terminal, vous pourrez observer ce qui se passe au niveau des processus lorsque vous ouvrez ou supprimez un onglet dans votre navigateur web.
Il est également possible de supprimer un processus à l’aide de la commande kill
, suivie du PID du processus à supprimer. Par exemple, kill 4242
permet de supprimer le processus de PID 4242.
Interblocage : comprendre ce phénomène
Enfin, nous aborderons le concept d’interblocage, également appelé deadlock en anglais. L’interblocage se produit lorsque deux processus, P1 et P2, demandent des ressources R1 et R2 qui dépendent l’une de l’autre. Par exemple, P1 possède R1 et attend R2, tandis que P2 possède R2 et attend R1. Dans cette situation, aucun des deux processus ne peut poursuivre son exécution, et il est nécessaire d’intervenir pour résoudre ce problème de blocage.
Conclusion
Les processus jouent un rôle essentiel dans le fonctionnement des systèmes d’exploitation. Ils permettent l’exécution simultanée de plusieurs programmes et sont gérés par le système d’exploitation lui-même. En comprenant le concept des processus, vous pourrez mieux appréhender le fonctionnement de votre ordinateur et des logiciels que vous utilisez au quotidien.
N.B. Les noms de processus cités dans cet article sont donnés à titre d’exemple, et il n’est pas nécessaire de les retenir. L’important est de comprendre les notions de processus père et fils ainsi que la structure arborescente qui les lie.