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) |
Test your knowledge on Gestion des processus sous Linux with 9 multiple-choice questions with detailed corrections.
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?
Memorize the key concepts of Gestion des processus sous Linux with 9 interactive flashcards.
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Ă©.
Import your course and AI generates sheets, quizzes and flashcards in 30 seconds.
Sheet generator