Fiche de révision : Gestion des processus sous Linux

📋 Plan du Cours

  1. Définition d'un processus
  2. États d'un processus
  3. Gestion des états par OS
  4. Création d'un processus
  5. Identifiants PID et PPID
  6. Observation des processus Linux
  7. Interblocage (deadlock)

📖 1. Définition d'un processus

🔑 Notions clés & Définitions

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.

📝 Points essentiels

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.

💡 À retenir

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.

📖 2. États d'un processus

🔑 Notions clés & Définitions

  • É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.

📝 Points essentiels

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.

💡 À retenir

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.

📖 3. Gestion des états par OS

🔑 Notions clés & Définitions

  • AUTEUR : voir section 1

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.

📝 Points essentiels

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.

💡 À retenir

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.

📖 4. Création d'un processus

🔑 Notions clés & Définitions

  • 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.

📝 Points essentiels

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).

💡 À retenir

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.

📖 5. Identifiants PID et PPID

🔑 Notions clés & Définitions

PID (Process Identification)

  • AUTEUR : voir section 1

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.

📝 Points essentiels

  • Chaque processus possède un PID unique attribué par un compteur incrémental.
  • Le compteur est initialisé et incrémenté de 1 à chaque création de processus, garantissant l’unicité du PID.
  • Le premier processus créé lors du démarrage du système a pour PID 0.
  • Le PID 1 correspond généralement au processus "init" ou équivalent, qui est le processus racine de la hiérarchie.
  • Le PPID permet de connaître le processus parent d’un processus. Par exemple, le processus "init" a un PPID de 0.
  • Le processus 0 (Swapper) est le seul à ne pas avoir de PPID, car il n’a pas de parent.

💡 À retenir

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.

📖 6. Observation des processus Linux

🔑 Notions clés & Définitions

  • 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.

📝 Points essentiels

  • 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.

💡 À retenir

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.

📖 7. Interblocage (deadlock)

🔑 Notions clés & Définitions

Interblocage (deadlock)

  • AUTEUR : voir section 1

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.

📝 Points essentiels

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.

💡 À retenir

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.

📊 Tableaux de Synthèse

AspectDéfinition / FonctionnementAuteur / Source
Définition d'un processusInstance 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 OSL'OS coordonne les états, garantit l'exclusivité du microprocesseur, libère les ressources.(section 3)
Création d’un processusVia la commande fork ; hiérarchie père-fils ; processus init et swapper.(section 4)
Identifiants PID / PPIDPID : identifiant unique ; PPID : identifiant du processus parent.(section 5)

⚠️ Pièges & Confusions Fréquentes

  1. Confondre un programme statique avec un processus en cours d'exécution.
  2. Penser qu’un programme devient un processus dès sa simple présence dans le système.
  3. Confondre l’état élu avec l’état prêt ou bloqué, notamment lors de l’utilisation du microprocesseur.
  4. Croire qu’un processus peut être dans plusieurs états simultanément.
  5. Oublier que la transition de "prêt" à "élu" s’appelle une élection, et celle de "élu" à "bloqué" une opération de blocage.
  6. Confondre le rôle du système d’exploitation dans la gestion des états avec une gestion manuelle par l’utilisateur.
  7. Mal interpréter la hiérarchie père-fils lors de la création des processus, notamment avec le processus init et swapper.
  8. Confondre PID et PPID, ou leur rôle dans la hiérarchie des processus.

✅ Checklist Examen

  • Connaître la définition précise d’un processus et sa distinction avec le code source.
  • Maîtriser les différents états d’un processus : élu, prêt, bloqué, et leur gestion par le système d’exploitation.
  • Comprendre le rôle central du système d’exploitation dans la gestion des états et la coordination des processus.
  • Savoir comment un processus est créé via la commande fork, et comprendre la structure arborescente des processus.
  • Connaître la différence entre PID et PPID, ainsi que leur mode d’attribution.
  • Identifier les transitions entre états : élection, blocage, libération de ressource.
  • Savoir que le premier processus créé est le swapper (PID 0) puis init (PID 1).
  • Comprendre que chaque processus possède un identifiant unique PID incrémental.
  • Assimiler le rôle de l’élection pour passer en état élu et la nécessité de cette étape pour l’utilisation du microprocesseur.
  • Connaître les auteurs ou concepts clés : (section 1) pour la définition, (section 2) pour les états, (section 3) pour la gestion par OS, (section 4) pour la création, (section 5) pour PID/PPID.

Testez vos connaissances

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?

Faire le QCM →

Révisez avec les flashcards

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é.

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches