Processus : AUTEUR (date) : exécution d'un programme. Il s'agit d'une instance en cours d'exécution d'un programme, distincte du code source.
Programme en cours d'exécution : un programme qui est en train d'être exécuté par l'ordinateur. Il devient un processus uniquement lorsqu'il est en cours d'exécution.
Code source : ensemble d'instructions écrites dans un langage de haut niveau, qui doit être transformé en langage machine pour être exécuté. Ce code représente la version statique du programme.
Un processus correspond à l'exécution d'un programme, distinct du code source. En d'autres termes, le code source est la version statique, tandis que le processus est la manifestation dynamique de ce code lors de son exécution par l'ordinateur.
Un programme devient un processus uniquement lorsqu'il est en cours d'exécution par l'ordinateur. Cela signifie que la simple présence du code source ne constitue pas un processus ; c'est l'action d'exécuter ce code qui le transforme en processus.
Il est essentiel de distinguer un programme statique de son exécution dynamique. Le processus représente cette exécution, incarnant concrètement le programme en action dans le système.
État élu
AUTEUR : voir section 1
État bloqué
AUTEUR (date) : processus qui attend la disponibilité d'une ressource, ne pouvant pas poursuivre son exécution.
État prêt
AUTEUR (date) : processus qui a obtenu toutes les ressources nécessaires pour s'exécuter, mais n'est pas encore en cours d'exécution.
Opération d'élection
AUTEUR (date) : processus qui utilise le microprocesseur, donc dans l'état élu.
Opération de blocage
AUTEUR (date) : transition d'un processus de l'état élu à l'état bloqué, généralement lors d'une attente de ressource.
Un processus ne peut être dans l'état élu que s'il utilise le microprocesseur. Le passage d'un processus de l'état élu à bloqué correspond à une opération de blocage. Un processus est toujours créé dans l'état prêt et doit être élu pour se terminer. Lorsqu'un processus en état élu demande une ressource indisponible, il passe à l'état bloqué. Il ne peut reprendre son exécution qu'après avoir obtenu la ressource, ce qui peut nécessiter une nouvelle opération d'élection pour un autre processus. La gestion des états permet de moduler la gestion temporelle et les attentes des processus dans l'ordonnancement, en assurant que seul un processus à la fois utilise le microprocesseur, tout en permettant à d'autres de patienter ou de se préparer à s'exécuter.
Les états d'un processus traduisent la gestion temporelle et les attentes dans l'ordonnancement : un processus en état élu utilise le microprocesseur, tandis qu'un processus bloqué attend une ressource, et un processus prêt est en attente d'une nouvelle élection pour reprendre l'exécution.
Chef d'orchestre (système d'exploitation) : rôle central du système d'exploitation dans la coordination des processus, en attribuant et en gérant leurs états (élu, prêt, bloqué). Il contrôle l'ordre et la priorité d'exécution, assurant une gestion cohérente et efficace.
Libération de ressource : opération par laquelle un processus, étant dans l'état "élu", rend une ressource qu'il utilisait afin de la rendre disponible pour d'autres processus. Cette étape est essentielle pour la gestion efficace des ressources partagées.
Le système d'exploitation est responsable de l'attribution des états aux processus, en gérant leur passage entre "prêt", "élu" et "bloqué". Un seul processus peut être élu à la fois, ce qui garantit l'exclusivité du microprocesseur. Lorsqu'un processus doit libérer une ressource qu'il utilise, il doit obligatoirement être dans l'état "élu" pour effectuer cette libération.
Un processus créé est toujours initialement dans l'état "prêt". Pour s'exécuter, il doit être élu, c'est-à-dire passer dans l'état "élu". La transition de "prêt" à "élu" s'appelle l'élection, tandis que la transition de "élu" à "bloqué" s'appelle le blocage. La gestion de ces transitions, orchestrée par le système d'exploitation, constitue le cœur de l'ordonnancement des processus.
Le système d'exploitation joue un rôle central dans la coordination des processus en gérant leurs états, garantissant que seul un processus à la fois exploite le microprocesseur, et assurant la libération efficace des ressources.
Commande fork
La commande fork est une commande système qui permet à un processus d créer un ou plusieurs processus fils. Elle duplique le processus appelant, créant ainsi un nouveau processus identique en tout point, mais avec un identifiant différent.
Processus père
Un processus père est un processus qui a créé un ou plusieurs processus fils via la commande fork. Il est considéré comme l'origine de la hiérarchie dans la structure arborescente des processus.
Processus fils
Un processus fils est un processus créé par un processus père. Il hérite de certaines caractéristiques de son père et occupe une position inférieure dans la structure hiérarchique.
Structure arborescente des processus
La relation entre processus père et fils forme une structure arborescente hiérarchique. Chaque processus peut avoir plusieurs processus fils, mais un processus n’a qu’un seul père, sauf le processus initial.
Processus init
Le processus init est le premier processus créé après le processus 0 lors du démarrage du système. Il sert de point de départ pour la création de tous les autres processus nécessaires au fonctionnement du système.
Processus Swapper (PID 0)
Le processus Swapper, également appelé processus 0, est le tout premier processus créé au démarrage du système. Il n’a pas de processus père et sert de base à la création des autres processus.
Un processus peut créer un ou plusieurs processus fils en utilisant la commande système "fork". Par exemple, si un processus A crée un processus B, A est le père de B et B est le fils de A. B peut à son tour créer un processus C, faisant de B le père de C. La relation père/fils s’organise en une structure arborescente, hiérarchique. Au démarrage, le tout premier processus, appelé processus 0 ou Swapper, est créé à partir de "rien" et ne possède pas de parent. Ensuite, ce processus 0 crée un processus appelé "init", qui à son tour engendre d’autres processus nécessaires au fonctionnement du système. Chaque processus possède un identifiant unique appelé PID, et le processus père est identifié par le PPID (Parent Process ID).
La hiérarchie des processus repose sur leur création via la commande fork, formant une structure arborescente où le processus initial (Swapper) donne naissance au processus "init" puis à tous les autres processus du système.
PID (Process Identification)
PPID (Parent Process Identification)
AUTEUR (date) : Le PPID est un nombre qui indique le PID du processus parent d’un processus donné. Il établit la relation hiérarchique entre processus.
L’identification des processus repose sur un PID unique attribué par un compteur incrémental, tandis que le PPID indique la relation parent-enfant, avec le processus 0 étant le seul sans parent.
Commande ps -aef : La commande ps -aef affiche tous les processus en cours d'exécution avec leurs informations détaillées, notamment leur PID (Process ID) et PPID (Parent Process ID). Elle permet de visualiser l'ensemble des processus actifs dans le système.
Commande top : La commande top offre un suivi en temps réel des processus en affichant dynamiquement des informations telles que l'utilisation CPU, mémoire, et d'autres ressources. Elle permet une surveillance continue et instantanée de l'activité du système.
Commande kill : La commande kill sert à terminer un processus en lui envoyant un signal, généralement pour le faire arrêter. Elle nécessite de spécifier le PID du processus à supprimer, par exemple : kill 4242 pour terminer le processus dont le PID est 4242.
La commande ps -aef permet d’afficher les processus en cours avec leurs PID et PPID, mais ne permet pas de suivre leur évolution en temps réel. Elle donne une vue statique de l’état actuel des processus.
La commande top permet un suivi en temps réel des processus, offrant une vue dynamique et continue de leur activité, ce qui facilite la gestion et la surveillance du système.
La commande kill permet de terminer un processus de façon simple en tapant kill suivi du PID du processus à arrêter. Par exemple, kill 4242 terminera le processus avec le PID 4242.
Maîtriser ces outils essentiels permet de visualiser et contrôler efficacement les processus sous Linux, en combinant une observation statique avec ps -aef et une surveillance dynamique avec top, tout en pouvant intervenir rapidement avec kill.
Interblocage (deadlock)
Ressource bloquante
Une ressource qui, lorsqu'elle est détenue par un processus, empêche d'autres processus d'y accéder, pouvant contribuer à un deadlock si combinée à une attente circulaire.
Attente circulaire
Une situation où chaque processus attend une ressource détenue par un autre processus, formant une boucle d’attente qui bloque tous les processus impliqués.
Un interblocage survient lorsque deux processus, par exemple P1 et P2, se bloquent mutuellement en attendant des ressources détenues par l'autre. Par exemple, P1 possède R1 mais attend R2, tandis que P2 possède R2 mais attend R1. Aucun des deux ne peut continuer, car pour poursuivre, chacun doit libérer sa ressource, ce qui est impossible tant que l'autre ne libère pas. La situation devient alors totalement bloquée, empêchant tout progrès. La résolution peut nécessiter l'arrêt d'un processus pour débloquer la situation.
L’interblocage est une situation critique où deux processus se bloquent mutuellement en attente de ressources, paralysant le système. La compréhension de cette situation permet d’identifier les risques de blocage et d’intervenir pour y remédier.
| Aspect | Définition / Fonctionnement | Auteur / Source |
|---|---|---|
| Définition d'un processus | Instance en cours d'exécution d'un programme, distincte du code source. | (section 1) |
| États d'un processus | Élu : utilise le microprocesseur ; Bloqué : attend une ressource ; Prêt : en attente d’élection. | (section 2) |
| Gestion par OS | L'OS coordonne les états, garantit l'exclusivité du microprocesseur, libère les ressources. | (section 3) |
| Création d’un processus | Via la commande fork ; hiérarchie père-fils ; processus init et swapper. | (section 4) |
| Identifiants PID / PPID | PID : identifiant unique ; PPID : identifiant du processus parent. | (section 5) |
Testez vos connaissances sur Gestion des processus sous Linux avec 9 questions à choix multiples avec corrections détaillées.
1. Quelle est la caractéristique essentielle d'un processus ?
2. Qu'est-ce qui distingue un processus d’un programme en cours d'exécution en termes de définition?
Mémorisez les concepts clés de Gestion des processus sous Linux avec 9 flashcards interactives.
Processus — définition ?
Instance en cours d'exécution d'un programme.
Processus — définition?
Instance en cours d'exécution d'un programme.
États d'un processus — principaux ?
Élu, prêt, bloqué.
Bases de données
Bases de données
Programmation
Programmation
Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.
Générateur de fiches