Revision sheet: Gestion des Processus et Threads

Plan du Cours

  1. Processus et identifiants
  2. État d'un processus
  3. Bloc de contrĂŽle PCB
  4. Création processus fork()
  5. Hiérarchie des processus
  6. Concept de thread
  7. Ressources threads
  8. Multithreading
  9. Gestionnaire de threads POSIX
  10. Algorithmes d’ordonnancement
  11. Ordonnancement préemptif
  12. Critùres d’ordonnancement

1. Processus et identifiants

Notions clés & Définitions

  • Processus : EntitĂ© dynamique reprĂ©sentant l’exĂ©cution d’un programme sur un processeur. C’est l’activitĂ© rĂ©sultant de l’exĂ©cution d’un programme sĂ©quentiel, avec ses donnĂ©es, par un processeur (MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR, 2025-2026).

  • NumĂ©ro d’identification unique (PID) : Identifiant distinct attribuĂ© Ă  chaque processus pour le diffĂ©rencier dans le systĂšme d’exploitation.

  • Espace d’adressage : Ensemble des segments mĂ©moire (code, donnĂ©es, piles d’exĂ©cution) allouĂ©s Ă  un processus, permettant l’isolation et la gestion de ses ressources (MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR, 2025-2026).

  • Signaux : Messages ou interruptions que le systĂšme peut envoyer Ă  un processus pour signaler des Ă©vĂ©nements, pouvant ĂȘtre captĂ©s, masquĂ©s ou ignorĂ©s selon la configuration du processus.

  • Processus pĂšre, fils, groupe : Relations hiĂ©rarchiques entre processus, oĂč un processus pĂšre peut crĂ©er un ou plusieurs processus fils, et appartenir Ă  un groupe de processus pour la gestion collective.

Points essentiels

  • Un processus est caractĂ©risĂ© par un PID qui lui est attribuĂ© lors de sa crĂ©ation, garantissant son unicitĂ© dans le systĂšme (MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR, 2025-2026).

  • L’espace d’adressage comprend le code, les donnĂ©es et la pile d’exĂ©cution, permettant au processus de fonctionner de maniĂšre isolĂ©e et sĂ©curisĂ©e.

  • La gestion des signaux permet au systĂšme d’intervenir dans l’exĂ©cution d’un processus, par exemple pour l’arrĂȘter, le suspendre ou le redĂ©marrer.

  • Les relations hiĂ©rarchiques (pĂšre, fils, groupe) facilitent la gestion collective et la synchronisation entre processus, notamment pour la crĂ©ation et la terminaison.

  • Les variables d’environnement stockent des paramĂštres et configurations spĂ©cifiques Ă  chaque processus, influant sur son comportement.

À retenir

Un processus est une entitĂ© dynamique unique, identifiĂ©e par un PID, disposant d’un espace mĂ©moire dĂ©diĂ©, pouvant recevoir des signaux, et ayant des relations hiĂ©rarchiques avec d’autres processus, ce qui permet une gestion structurĂ©e et isolĂ©e de l’exĂ©cution des programmes.

2. État d'un processus

Notions clés & Définitions

  • États d’un processus : Les diffĂ©rentes phases par lesquelles un processus peut passer durant son cycle de vie, notamment Nouveau, PrĂȘt, En exĂ©cution, BloquĂ©, et Fin. Selon Salwa Othmen (2025), ces Ă©tats reflĂštent l’état dynamique d’un processus en fonction des Ă©vĂ©nements du systĂšme d’exploitation.

  • Nouveau : Lorsqu’un processus est créé dans le systĂšme, il est dans l’état de Nouveau, en attente d’ĂȘtre initialisĂ© et placĂ© dans la file d’attente des processus prĂȘts.

  • PrĂȘt : Le processus est en attente d’affectation du processeur, Ă©tant placĂ© dans la file d’attente des processus prĂȘts. Selon Salwa Othmen (2025), c’est l’état oĂč le processus attend son tour pour s’exĂ©cuter.

  • En exĂ©cution : Le processus utilise actuellement le processeur pour exĂ©cuter ses instructions. C’est l’état actif du processus, lorsque le CPU lui est attribuĂ©.

  • BloquĂ© : Le processus attend qu’un Ă©vĂ©nement spĂ©cifique se produise, comme la fin d’une opĂ©ration d’E/S ou la rĂ©ception d’un signal. Salwa Othmen (2025) prĂ©cise que cet Ă©tat est temporaire et dĂ©pend d’évĂ©nements externes ou internes.

  • Fin : La terminaison du processus, lorsque toutes ses opĂ©rations sont achevĂ©es ou qu’il est explicitement arrĂȘtĂ©. L’état final oĂč le processus est considĂ©rĂ© comme terminĂ©.

Points essentiels

  • La gestion des Ă©tats d’un processus repose sur la transition entre ces Ă©tats selon des Ă©vĂ©nements prĂ©cis : exĂ©cution, blocage, terminaison. La transition de PrĂȘt Ă  En exĂ©cution se produit lorsque le processeur lui est attribuĂ©, tandis que la transition vers BloquĂ© survient lors d’un Ă©vĂ©nement d’attente (ex : E/S).

  • La structure de donnĂ©es principale pour suivre ces Ă©tats est le bloc de contrĂŽle de processus (PCB), qui contient notamment l’état actuel du processus, ses registres, sa prioritĂ©, et ses ressources allouĂ©es. Salwa Othmen (2025) souligne que le PCB permet la reconstitution du contexte lors des changements d’état.

  • La multiprogrammation permet Ă  plusieurs processus d’ĂȘtre en cours d’exĂ©cution simultanĂ©ment, mais Ă  un instant donnĂ©, un seul processus peut utiliser le processeur, en raison de l’accĂšs unique au CPU.

  • La transition entre Ă©tats est dĂ©clenchĂ©e par des Ă©vĂ©nements tels que l’achĂšvement d’une opĂ©ration, une demande d’attente, ou une terminaison. La gestion de ces transitions est essentielle pour l’ordonnancement et la synchronisation des processus.

À retenir

Les Ă©tats d’un processus reprĂ©sentent ses diffĂ©rentes phases dynamiques, et leur gestion repose sur des transitions contrĂŽlĂ©es par le systĂšme d’exploitation pour assurer la cohĂ©rence et l’efficacitĂ© de l’exĂ©cution multitĂąche.

3. Bloc de contrĂŽle PCB

Notions clés & Définitions

  • Bloc de ContrĂŽle de Processus (PCB) : Structure de donnĂ©es maintenue par le systĂšme d'exploitation pour suivre l’état et les caractĂ©ristiques d’un processus en cours d’exĂ©cution. Il permet la reconstitution du contexte du processus lors des opĂ©rations d’ordonnancement ou de suspension.
  • Contexte d’un processus : Ensemble des informations dynamiques reprĂ©sentant l’état d’exĂ©cution d’un processus, incluant notamment les valeurs des registres, l’état de la pile, la prioritĂ©, et les pointeurs vers les files d’attente.
  • Valeurs des registres : DonnĂ©es sauvegardĂ©es dans le PCB lors de la suspension ou de la mise en attente d’un processus, permettant la reprise exacte de l’exĂ©cution ultĂ©rieure.
  • Gestion des files d’attente via pointeurs : Le PCB contient des pointeurs vers les files d’attente (prĂȘt, en exĂ©cution, bloquĂ©), facilitant la gestion de l’ordonnancement et la transition entre Ă©tats.
  • Reconstitution du contexte : OpĂ©ration effectuĂ©e par le systĂšme d’exploitation pour restaurer l’état d’un processus Ă  partir des informations contenues dans son PCB, notamment lors de la reprise aprĂšs suspension ou blocage (voir Salwa Othmen, 2025-2026).

Points essentiels

  • Le PCB est une structure essentielle pour la gestion du processus, contenant toutes les informations nĂ©cessaires pour sauvegarder et restaurer l’état d’un processus lors des opĂ©rations d’ordonnancement, de suspension ou de terminaison.
  • Il inclut le contexte d’exĂ©cution, notamment les valeurs des registres, la prioritĂ©, et les pointeurs vers les files d’attente (prĂȘt, en exĂ©cution, bloquĂ©).
  • La reconstitution du contexte d’un processus se fait par le systĂšme d’exploitation en chargeant les valeurs sauvegardĂ©es dans le PCB dans les registres et autres composants du processeur, permettant la reprise prĂ©cise de l’exĂ©cution.
  • La gestion efficace des PCB permet d’assurer la multiprogrammation, la synchronisation, et la planification des processus, en maintenant une structure cohĂ©rente et accessible pour le systĂšme.
  • Selon Salwa Othmen (2025-2026), le PCB joue un rĂŽle clĂ© dans la transition d’un processus entre diffĂ©rents Ă©tats, notamment lors de l’interruption, du passage d’un processus Ă  un autre, ou lors de la reprise aprĂšs blocage.

À retenir

Le PCB est la piĂšce maĂźtresse du systĂšme d’exploitation pour la gestion dynamique des processus, permettant de sauvegarder et de restaurer leur contexte d’exĂ©cution afin d’assurer une multiprogrammation efficace et cohĂ©rente.

4. Création processus fork()

Notions clés & Définitions

  • fork() : Appel systĂšme sous Unix/Linux permettant de crĂ©er un nouveau processus en dupliquant le processus appelant. La nouvelle copie est appelĂ©e processus fils, et l'original processus pĂšre. AUTEUR (date) : « fork() crĂ©e une copie exacte du processus existant, partageant le mĂȘme espace mĂ©moire initial. »
  • Duplication exacte d’un processus existant par fork() : Processus fils est une copie fidĂšle du processus pĂšre, incluant le code, les donnĂ©es, et l’état d’exĂ©cution au moment de l’appel. La diffĂ©rence rĂ©side dans le PID et l’état d’exĂ©cution.
  • DiffĂ©rence entre fork() et CreateProcess() sous Windows :
    • fork() duplique le processus en conservant le mĂȘme code et l’état, tandis que CreateProcess() crĂ©e un nouveau processus en chargeant un programme distinct, avec une duplication partielle de l’environnement.
    • fork() est spĂ©cifique Ă  Unix/Linux, alors que CreateProcess() est une API Windows pour lancer un nouveau programme.
  • Exemples d’utilisation de fork() :
    • CrĂ©ation d’un processus fils pour exĂ©cuter une tĂąche spĂ©cifique tout en laissant le pĂšre continuer son exĂ©cution.
    • Affichage des PID pĂšre et fils pour illustrer la hiĂ©rarchie des processus.

Points essentiels

  • La fonction fork() est un appel systĂšme crucial pour la crĂ©ation de processus lourds dans les systĂšmes Unix/Linux. Elle duplique le processus appelant, crĂ©ant un processus fils avec un PID diffĂ©rent.
  • La duplication par fork() inclut le code, la pile, les registres, et l’état d’exĂ©cution, permettant au processus fils de reprendre l’exĂ©cution immĂ©diatement aprĂšs le fork, avec une copie fidĂšle de l’état du pĂšre.
  • La diffĂ©rence majeure avec CreateProcess() rĂ©side dans la nature de la crĂ©ation : fork() duplique un processus existant, tandis que CreateProcess() charge un nouveau programme.
  • Lors de l’exĂ©cution, la fonction fork() retourne deux valeurs : 0 dans le processus fils, et le PID du fils dans le pĂšre, permettant de diffĂ©rencier les deux processus pour exĂ©cuter des branches diffĂ©rentes.
  • Exemple pratique : aprĂšs un fork(), le pĂšre et le fils affichent leur PID respectif, illustrant la hiĂ©rarchie et la duplication.

À retenir

L’appel systĂšme fork() permet de dupliquer un processus existant pour crĂ©er un processus fils, facilitant la gestion de processus parallĂšles dans les systĂšmes Unix/Linux, en conservant une copie fidĂšle de l’état du processus pĂšre. La diffĂ©rence avec CreateProcess() rĂ©side dans la nature de la crĂ©ation, fork() Ă©tant une duplication exacte, tandis que CreateProcess() charge un nouveau programme.

5. Hiérarchie des processus

Notions clés & Définitions

  • Relation pĂšre-fils : Structure hiĂ©rarchique dans laquelle un processus (pĂšre) crĂ©e et contrĂŽle un ou plusieurs processus (fils). Selon AUTEUR (date), cette relation permet une organisation structurĂ©e et une gestion des processus au sein du systĂšme d’exploitation.
  • Partage ou non des ressources entre processus pĂšre et fils : Les processus fils peuvent partager certaines ressources (mĂ©moire, fichiers) avec leur pĂšre ou disposer de ressources indĂ©pendantes. La dĂ©cision dĂ©pend de la conception du systĂšme et des mĂ©canismes de gestion des ressources.
  • ContrĂŽle exercĂ© par le pĂšre : Le processus pĂšre peut suspendre, dĂ©truire (kill), ou attendre (wait) la terminaison de ses processus fils. Selon AUTEUR (date), ce contrĂŽle assure la gestion et la synchronisation des processus dans la hiĂ©rarchie, mais il ne peut pas renier un fils, ce qui limite la relation de dĂ©pendance.

Points essentiels

  • La hiĂ©rarchie des processus est organisĂ©e via une relation pĂšre-fils, oĂč chaque processus peut crĂ©er des processus fils Ă  l’aide d’appels systĂšme comme fork() ou CreateProcess().
  • Le processus pĂšre dĂ©tient un contrĂŽle sur ses processus fils : il peut les suspendre, les dĂ©truire avec kill(), ou attendre leur terminaison avec wait(). Cependant, il ne peut pas renier un fils, ce qui garantit une certaine stabilitĂ© dans la gestion des processus.
  • La relation pĂšre-fils implique une gestion des ressources partagĂ©es ou sĂ©parĂ©es, selon la configuration du systĂšme. La hiĂ©rarchie facilite la gestion, la synchronisation et la destruction ordonnĂ©e des processus.
  • La structure hiĂ©rarchique ne permet pas au pĂšre de renier un fils, assurant ainsi que chaque processus créé reste sous contrĂŽle jusqu’à sa fin ou sa destruction.

À retenir

La hiĂ©rarchie des processus repose sur une relation pĂšre-fils oĂč le pĂšre contrĂŽle la crĂ©ation, la suspension, la destruction et l’attente de ses processus fils, sans pouvoir les renier, assurant une gestion structurĂ©e et contrĂŽlĂ©e des processus dans le systĂšme.

6. Concept de thread

Notions clés & Définitions

  • Thread : Flot d’exĂ©cution lĂ©ger dans un processus, permettant Ă  un programme d’effectuer plusieurs tĂąches simultanĂ©ment. Selon AUTEUR (date), un thread partage avec ses frĂšres le mĂȘme espace mĂ©moire et les descripteurs de fichiers du processus parent, tout en disposant de ses propres ressources privĂ©es (variables locales, registres, pile d’exĂ©cution, compteur ordinal).

  • Partage de mĂ©moire et descripteurs de fichiers : Entre threads d’un mĂȘme processus, ces ressources sont communes, ce qui facilite la communication et la synchronisation. Cependant, chaque thread possĂšde ses ressources privĂ©es pour assurer son exĂ©cution indĂ©pendante (variables locales, registres, pile).

  • DiffĂ©rence entre processus et threads : Un processus possĂšde ses ressources privĂ©es (espace d’adressage, ressources allouĂ©es, etc.), tandis que les threads d’un mĂȘme processus partagent ces ressources, mais disposent de leurs propres ressources privĂ©es pour leur exĂ©cution (variables locales, pile, registres). Un processus est plus lourd Ă  crĂ©er et gĂ©rer qu’un thread, qui est plus lĂ©ger et rapide Ă  instancier.

Points essentiels

  • Un thread est un flot d’exĂ©cution au sein d’un mĂȘme processus, utilisant la mĂȘme mĂ©moire et les mĂȘmes descripteurs de fichiers que ses frĂšres, mais avec ses propres ressources privĂ©es telles que variables locales, registres, pile d’exĂ©cution et compteur ordinal.

  • La gestion des threads permet d’amĂ©liorer la rĂ©activitĂ© et l’efficacitĂ© d’un programme, notamment par la parallĂ©lisation des tĂąches, tout en partageant efficacement les ressources du processus.

  • La distinction entre processus et threads rĂ©side principalement dans la gestion des ressources : les processus ont leurs ressources privĂ©es, alors que les threads partagent ces ressources, ce qui rĂ©duit le coĂ»t de crĂ©ation et d’ordonnancement.

À retenir

Un thread est un flot d’exĂ©cution lĂ©ger qui partage avec ses frĂšres les ressources du processus, permettant une exĂ©cution concurrente plus efficace tout en disposant de ses propres ressources privĂ©es pour son fonctionnement.

7. Ressources threads

Notions clés & Définitions

  • Variables locales : Ressources privĂ©es Ă  chaque thread, stockant des donnĂ©es temporaires ou spĂ©cifiques Ă  l'exĂ©cution d'une tĂąche. Elles ne sont accessibles qu’au thread qui les a créées.
  • Registres : Petites unitĂ©s de stockage dans le processeur contenant des donnĂ©es temporaires, spĂ©cifiques Ă  chaque thread, permettant la gestion de l’état d’exĂ©cution.
  • Pile d’exĂ©cution (stack) : Zone mĂ©moire privĂ©e Ă  chaque thread, utilisĂ©e pour stocker les variables locales, les adresses de retour, et le contexte d’exĂ©cution.
  • Compteur ordinal : Registre indiquant l’instruction suivante Ă  exĂ©cuter dans le code du thread, permettant de reprendre l’exĂ©cution aprĂšs une suspension.
  • Code, variables globales, table des fichiers ouverts : Ressources partagĂ©es entre tous les threads d’un mĂȘme processus, accessibles Ă  tous, permettant la communication et la coordination.

Points essentiels

  • Ressources privĂ©es des threads : Incluent les variables locales, registres, la pile d’exĂ©cution, et le compteur ordinal. Ces ressources sont isolĂ©es pour chaque thread, garantissant leur indĂ©pendance lors de l’exĂ©cution.
  • Ressources partagĂ©es entre threads : Comprennent le code, les variables globales, et la table des fichiers ouverts. Leur partage facilite la communication et la synchronisation, mais nĂ©cessite des mĂ©canismes de contrĂŽle pour Ă©viter les conflits.
  • Gestion du contexte : Lorsqu’un thread est suspendu ou repris, le systĂšme sauvegarde ou restaure ses registres, compteur ordinal, et pile d’exĂ©cution pour assurer la continuitĂ© de l’exĂ©cution.
  • Avantages du multithreading : RĂ©activitĂ© accrue, partage efficace des ressources, Ă©conomie de mĂ©moire et de temps de crĂ©ation. La gestion des ressources privĂ©es et partagĂ©es est essentielle pour la stabilitĂ© et la performance des applications multithread.

À retenir

Les threads disposent de ressources privĂ©es (variables locales, registres, pile, compteur) pour leur exĂ©cution indĂ©pendante, tout en partageant code, variables globales et fichiers ouverts, ce qui optimise la rĂ©activitĂ© et l’efficacitĂ© dans la gestion des processus lĂ©gers.

8. Multithreading

Notions clés & Définitions

  • Thread : Flot d’exĂ©cution lĂ©ger dans un processus, partageant la mĂȘme mĂ©moire et les mĂȘmes descripteurs de fichiers que les autres threads du mĂȘme processus (AUTEUR (2025) : dĂ©finition).
  • Partage de ressources : Les threads d’un mĂȘme processus utilisent les mĂȘmes ressources globales (code, variables globales, fichiers ouverts) tout en disposant de leurs ressources privĂ©es (variables locales, registres, pile d’exĂ©cution, compteur ordinal).
  • Avantages du multithreading : RĂ©activitĂ© accrue, partage efficace des ressources, Ă©conomie de mĂ©moire et de temps de crĂ©ation. La crĂ©ation d’un thread est gĂ©nĂ©ralement plus rapide que celle d’un processus (exemple : Solaris, crĂ©ation d’un thread 30 fois plus rapide).
  • Service POSIX pthread : Ensemble de structures et fonctions C permettant la gestion des threads, notamment pthread_create() pour crĂ©er un thread, pthread_join() pour attendre sa terminaison, et pthread_exit() pour le terminer (AUTEUR (2025) : description).
  • Types de threads : Threads utilisateur, gĂ©rĂ©s par des bibliothĂšques (ex : pthread sous Linux), et threads noyau, supportĂ©s directement par le systĂšme d’exploitation, avec gestion par le noyau.

Points essentiels

  • Le multithreading permet Ă  un processus d’exĂ©cuter plusieurs tĂąches simultanĂ©ment, amĂ©liorant la rĂ©activitĂ© notamment dans les applications interactives ou en temps rĂ©el.
  • Les threads partagent la mĂ©moire et les ressources du processus, ce qui facilite la communication et la coordination entre eux, tout en disposant de ressources privĂ©es pour leur exĂ©cution (variables locales, pile, registres).
  • La gestion des threads via le service POSIX pthread offre des fonctions standardisĂ©es pour leur crĂ©ation, suspension, terminaison, et synchronisation, simplifiant leur utilisation dans les systĂšmes modernes.
  • La distinction entre threads utilisateur et noyau permet d’optimiser la gestion des contextes d’exĂ©cution et la rĂ©activitĂ© du systĂšme.
  • La crĂ©ation et la gestion efficace des threads contribuent Ă  la performance globale du systĂšme, notamment par la rĂ©duction du coĂ»t de crĂ©ation et de commutation de contexte.

À retenir

Le multithreading permet d’exĂ©cuter plusieurs tĂąches simultanĂ©ment dans un mĂȘme processus, en partageant ses ressources tout en disposant de ressources privĂ©es pour chaque thread, ce qui optimise la rĂ©activitĂ© et l’efficacitĂ© du systĂšme.

9. Gestionnaire de threads POSIX

Notions clés & Définitions

  • pthread_create() (service POSIX) : Fonction qui permet de crĂ©er un thread lĂ©ger en spĂ©cifiant ses attributs, la fonction Ă  exĂ©cuter et ses arguments. Elle retourne zĂ©ro en cas de succĂšs, sinon un code d’erreur. (source : MinistĂšre de l’Enseignement SupĂ©rieur, 2025-2026)

  • pthread_join() (service POSIX) : Fonction qui suspend l’exĂ©cution du thread appelant jusqu’à la terminaison du thread spĂ©cifiĂ© par son identifiant, puis rĂ©cupĂšre le rĂ©sultat de la terminaison. Elle retourne zĂ©ro si elle rĂ©ussit. (source : MinistĂšre de l’Enseignement SupĂ©rieur, 2025-2026)

  • pthread_exit() (service POSIX) : Fonction permettant Ă  un thread de terminer son exĂ©cution en retournant un Ă©tat ou une valeur de sortie, sans terminer tout le processus. Elle est appelĂ©e par le thread lui-mĂȘme. (source : MinistĂšre de l’Enseignement SupĂ©rieur, 2025-2026)

Points essentiels

  • Structures et fonctions : Le gestionnaire de threads POSIX repose principalement sur la structure pthread_t pour identifier un thread, et sur des fonctions comme pthread_create(), pthread_join(), et pthread_exit() pour gĂ©rer leur cycle de vie.
  • CrĂ©ation de threads : pthread_create() permet de lancer un nouveau thread en lui attribuant une fonction spĂ©cifique et ses arguments, tout en configurant Ă©ventuellement ses attributs (taille de pile, prioritĂ©).
  • Synchronisation : pthread_join() est essentielle pour attendre la fin d’un thread et rĂ©cupĂ©rer ses rĂ©sultats, Ă©vitant ainsi les problĂšmes de synchronisation.
  • Terminaison : pthread_exit() permet Ă  un thread de s’arrĂȘter proprement en retournant une valeur ou un statut, sans affecter le processus principal ou d’autres threads.
  • Partage des ressources : Les threads d’un mĂȘme processus partagent la mĂ©moire, les descripteurs de fichiers, mais disposent de leurs propres variables locales, registres, pile d’exĂ©cution, et compteur ordinal.
  • Avantages : La gestion des threads via POSIX offre une crĂ©ation rapide, une communication facilitĂ©e, et une meilleure rĂ©activitĂ© dans les applications multitĂąches.

À retenir

Le gestionnaire de threads POSIX, à travers pthread_create(), pthread_join(), et pthread_exit(), fournit un cadre efficace pour la création, la synchronisation et la terminaison des threads légers, optimisant la réactivité et la partage de ressources dans les systÚmes multitùches.

10. Algorithmes d’ordonnancement

Notions clés & Définitions

  • ProblĂ©matique de la concurrence d’accĂšs aux ressources partagĂ©es : Situation oĂč plusieurs processus ou threads tentent d’accĂ©der simultanĂ©ment Ă  des ressources communes (mĂ©moire, pĂ©riphĂ©riques, fichiers), pouvant entraĂźner des rĂ©sultats imprĂ©visibles si aucune prĂ©caution n’est prise, comme le souligne la nĂ©cessitĂ© de mĂ©canismes d’ordonnancement pour gĂ©rer ces accĂšs (source : RĂ©publique Tunisienne, 2025-2026).

  • Maintien par le systĂšme de tables et files d’attente pour ordonnancement : Organisation des processus en structures de donnĂ©es (tables, files d’attente) permettant de gĂ©rer leur Ă©tat (prĂȘt, en exĂ©cution, bloquĂ©) et leur ordre d’accĂšs au processeur, facilitant la planification selon des critĂšres dĂ©finis (source : RĂ©publique Tunisienne, 2025-2026).

  • Principe gĂ©nĂ©ral de l’ordonnancement des processus : MĂ©canisme par lequel le systĂšme d’exploitation dĂ©cide quel processus ou thread doit s’exĂ©cuter Ă  un instant donnĂ©, en utilisant des critĂšres tels que la prioritĂ©, le temps Ă©coulĂ© ou la durĂ©e d’attente, afin d’optimiser l’utilisation des ressources et la rĂ©activitĂ© du systĂšme (source : RĂ©publique Tunisienne, 2025-2026).

Points essentiels

  • La concurrence d’accĂšs aux ressources partagĂ©es peut conduire Ă  des rĂ©sultats imprĂ©visibles si elle n’est pas contrĂŽlĂ©e, ce qui nĂ©cessite des mĂ©canismes d’ordonnancement pour assurer la cohĂ©rence et la stabilitĂ© du systĂšme (source : RĂ©publique Tunisienne, 2025-2026).

  • Le systĂšme maintient une table de processus et des files d’attente pour gĂ©rer l’état des processus, leur ordonnancement et leur passage entre les Ă©tats (prĂȘt, en exĂ©cution, bloquĂ©). Ces structures permettent une gestion efficace de la planification (source : RĂ©publique Tunisienne, 2025-2026).

  • L’ordonnancement peut ĂȘtre prĂ©emptif ou non prĂ©emptif : dans le premier cas, un processus peut ĂȘtre interrompu pour laisser la place Ă  un autre processus plus prioritaire (fin de quantum, arrivĂ©e d’un processus plus important), alors que dans le second, un processus ne peut quitter le processeur que lorsqu’il termine ou se bloque (source : RĂ©publique Tunisienne, 2025-2026).

  • Les critĂšres d’ordonnancement incluent le taux d’utilisation du CPU, le dĂ©bit, le dĂ©lai de rotation, le temps d’attente et le temps de rĂ©ponse, visant Ă  maximiser l’efficacitĂ© tout en minimisant les dĂ©lais et l’attente (source : RĂ©publique Tunisienne, 2025-2026).

  • DiffĂ©rents algorithmes d’ordonnancement existent, tels que FCFS (Premier arrivĂ©, premier servi), SJF (Plus court d’abord), Round Robin, et avec prioritĂ©s, chacun adaptĂ© Ă  des contextes spĂ©cifiques pour rĂ©pondre Ă  des objectifs de rĂ©activitĂ© ou d’efficacitĂ© (source : RĂ©publique Tunisienne, 2025-2026).

À retenir

L’ordonnancement des processus repose sur la gestion organisĂ©e des ressources via des tables et files d’attente, permettant d’assurer une concurrence maĂźtrisĂ©e et une utilisation optimale du processeur selon des critĂšres dĂ©finis.

11. Ordonnancement préemptif

Notions clés & Définitions

  • Ordonnancement prĂ©emptif : MĂ©thode oĂč la transition d’un processus de l’état « Ă©lu » vers l’état « prĂȘt » peut ĂȘtre interrompue Ă  tout moment par le systĂšme, notamment lorsqu’un processus plus prioritaire ou un quantum de temps expire (selon PERROUX (date)). La rĂ©quisition du processeur est autorisĂ©e, permettant une gestion dynamique et rĂ©active des processus.

  • Transition entre Ă©tats en ordonnancement prĂ©emptif : La transition du processus en cours d’exĂ©cution vers l’état prĂȘt ou bloquĂ© peut se produire Ă  tout instant, notamment lors de l’arrivĂ©e d’un processus de prioritĂ© supĂ©rieure ou Ă  la fin du quantum de temps allouĂ©, contrairement Ă  l’ordonnancement non prĂ©emptif oĂč cette transition est interdite (voir PERROUX (date)).

  • Conditions de transition en ordonnancement prĂ©emptif : La rĂ©quisition du CPU peut se produire si un processus plus prioritaire devient prĂȘt ou si le quantum de temps du processus en cours expire, permettant ainsi une gestion fine et rĂ©active de l’allocation CPU (voir PERROUX (date)).

  • Interdiction de rĂ©quisition en ordonnancement non prĂ©emptif : La transition du processus en cours vers l’état prĂȘt ne peut se faire que lorsque celui-ci termine son exĂ©cution ou se bloque, empĂȘchant toute interruption volontaire ou involontaire par le systĂšme, ce qui limite la rĂ©activitĂ© (voir PERROUX (date)).

Points essentiels

  • La diffĂ©rence fondamentale rĂ©side dans la capacitĂ© ou non du systĂšme Ă  interrompre un processus en exĂ©cution pour en affecter un autre : prĂ©emptif permet cette interruption Ă  tout moment, non prĂ©emptif la interdit sauf lorsque le processus termine ou se bloque (voir PERROUX (date)).

  • En ordonnancement prĂ©emptif, la transition du processus en Ă©tat « Ă©lu » vers « prĂȘt » est autorisĂ©e, ce qui permet une gestion dynamique et une meilleure rĂ©activitĂ© du systĂšme face aux prioritĂ©s ou Ă  l’expiration du quantum (voir PERROUX (date)).

  • La rĂ©quisition du CPU en mode prĂ©emptif est essentielle pour assurer la rĂ©activitĂ© dans les systĂšmes multitĂąches modernes, notamment pour la gestion des processus prioritaires ou interactifs (voir PERROUX (date)).

  • En revanche, en mode non prĂ©emptif, cette rĂ©quisition est interdite, ce qui peut entraĂźner des problĂšmes de rĂ©activitĂ© et de famine pour les processus de faible prioritĂ©, mais garantit une exĂ©cution plus stable et sans interruption volontaire (voir PERROUX (date)).

À retenir

L’ordonnancement prĂ©emptif permet une gestion dynamique et rĂ©active des processus en autorisant la rĂ©quisition du CPU Ă  tout moment, contrairement Ă  l’ordonnancement non prĂ©emptif oĂč la transition est strictement contrĂŽlĂ©e et limitĂ©e aux fins naturelles du processus (fin ou blocage).

12. Critùres d’ordonnancement

Notions clés & Définitions

  • Taux d’utilisation CPU : Rapport entre le temps CPU utilisĂ© par un processus ou l’ensemble des processus et le temps total Ă©coulĂ©, permettant d’évaluer l’efficacitĂ© de l’ordonnancement (source : Salwa Othmen, 2025-2026).
  • DĂ©bit : Nombre de processus terminĂ©s par unitĂ© de temps, indicateur de la capacitĂ© de traitement du systĂšme (source : Salwa Othmen, 2025-2026).
  • DĂ©lai de rotation (turnaround time) : Temps Ă©coulĂ© entre la soumission d’un processus et sa terminaison, incluant le temps d’attente, d’exĂ©cution et d’attente en E/S (source : Salwa Othmen, 2025-2026).
  • Temps d’attente (waiting time) : DurĂ©e pendant laquelle un processus reste dans la file d’attente prĂȘt, avant son exĂ©cution effective (source : Salwa Othmen, 2025-2026).
  • Temps de rĂ©ponse (response time) : Temps Ă©coulĂ© entre la soumission d’un processus et le dĂ©but de sa premiĂšre rĂ©ponse ou exĂ©cution (source : Salwa Othmen, 2025-2026).

Points essentiels

  • Les critĂšres d’efficacitĂ© en ordonnancement visent Ă  maximiser l’utilisation du CPU et le dĂ©bit, tout en minimisant les dĂ©lais, le temps d’attente et le temps de rĂ©ponse (source : Salwa Othmen, 2025-2026).
  • La performance du systĂšme d’exploitation est Ă©valuĂ©e selon plusieurs critĂšres : le taux d’utilisation CPU, le dĂ©bit, le dĂ©lai de rotation, le temps d’attente et le temps de rĂ©ponse, qui doivent ĂȘtre optimisĂ©s simultanĂ©ment (source : Salwa Othmen, 2025-2026).
  • L’objectif principal de l’ordonnancement est d’assurer une utilisation efficace des ressources tout en garantissant une rĂ©activitĂ© optimale pour les processus interactifs, en minimisant notamment le temps de rĂ©ponse (source : Salwa Othmen, 2025-2026).
  • La sĂ©lection des critĂšres dĂ©pend du contexte d’utilisation : par exemple, pour un systĂšme temps rĂ©el, le dĂ©lai de rotation et le temps de rĂ©ponse sont cruciaux, tandis que pour un traitement batch, le dĂ©bit et le taux d’utilisation CPU priment (source : Salwa Othmen, 2025-2026).
  • La gestion efficace de ces critĂšres permet d’atteindre un compromis entre performance globale et rĂ©activitĂ©, en tenant compte des objectifs spĂ©cifiques du systĂšme (source : Salwa Othmen, 2025-2026).

À retenir

Les critĂšres d’ordonnancement, tels que le taux d’utilisation CPU, le dĂ©bit, le dĂ©lai de rotation, le temps d’attente et le temps de rĂ©ponse, sont essentiels pour optimiser la performance et la rĂ©activitĂ© d’un systĂšme informatique, en visant Ă  maximiser l’efficacitĂ© tout en minimisant les dĂ©lais et temps d’attente.

Tableaux de SynthĂšse

ThÚmeConcepts ClésDétailsAuteur / Référence
Processus & IdentifiantsProcessus, PID, espace d’adressage, signaux, relations hiĂ©rarchiquesProcessus : entitĂ© d’exĂ©cution, PID : identifiant unique, espace mĂ©moire isolĂ©, signaux : communication, relations : pĂšre-fils, groupeMinistĂšre de l’Enseignement SupĂ©rieur (2025-2026)
États d’un processusNouveau, PrĂȘt, En exĂ©cution, BloquĂ©, FinTransitions : crĂ©ation, attribution CPU, attente Ă©vĂ©nements, terminaisonSalwa Othmen (2025)
Bloc de ContrÎle de Processus (PCB)Structure de gestion, contexte, registres, pointeursContient état, registres, priorités, pointeurs vers files, opération de sauvegarde/restaurationSalwa Othmen (2025-2026)
Création processus fork()Dupliquer un processus, processus pÚre et filsfork() crée une copie du processus appelant, partage ou copie espace mémoire selon contexteAuteur inconnu (date)

PiÚges & Confusions Fréquentes

  1. Confondre processus et thread : un processus possÚde un espace mémoire isolé, un thread partage cet espace.
  2. Mauvaise interprétation des états : croire que le processus peut rester indéfiniment bloqué ou en attente sans transition.
  3. Confusion entre PCB et contexte d’un processus : PCB ne stocke pas le code, mais l’état d’exĂ©cution.
  4. Croire que fork() partage l’espace mĂ©moire : en rĂ©alitĂ©, il duplique ou partage selon la stratĂ©gie (copie Ă  la demande).
  5. NĂ©gliger la gestion des signaux : erreur d’interprĂ©tation de leur rĂŽle dans la gestion des processus.
  6. Confusion entre processus pÚre et processus groupe : groupe peut contenir plusieurs processus liés.
  7. Ignorer la diffĂ©rence entre Ă©tat de prĂȘt et en exĂ©cution : processus en prĂȘt n’utilise pas le CPU, en exĂ©cution oui.

Checklist Examen

  • ConnaĂźtre la dĂ©finition prĂ©cise d’un processus selon le MinistĂšre de l’Enseignement SupĂ©rieur (2025-2026).
  • Savoir identifier le rĂŽle du PID dans la gestion des processus.
  • Expliquer la fonction et la composition du Bloc de ContrĂŽle de Processus (PCB).
  • DĂ©crire les diffĂ©rentes Ă©tapes et Ă©tats du cycle de vie d’un processus (Nouveau, PrĂȘt, En exĂ©cution, BloquĂ©, Fin).
  • Comprendre la gestion des signaux et leur impact sur l’état d’un processus.
  • MaĂźtriser la hiĂ©rarchie des processus : processus pĂšre, fils, groupe.
  • ConnaĂźtre la diffĂ©rence entre processus et thread, ainsi que leur gestion des ressources.
  • Savoir ce qu’est la crĂ©ation d’un processus via fork() et ses implications.
  • ConnaĂźtre les ressources principales d’un thread (mĂ©moire, CPU, synchronisation).
  • Comprendre le concept de multithreading et ses avantages.
  • MaĂźtriser le fonctionnement du gestionnaire de threads POSIX.
  • ConnaĂźtre les principaux algorithmes d’ordonnancement (FIFO, Round Robin, PrioritĂ©s).
  • Expliquer le principe de l’ordonnancement prĂ©emptif.
  • Identifier les critĂšres d’ordonnancement : temps CPU, prioritĂ©, temps de rĂ©ponse, Ă©quitĂ©.
  • VĂ©rifier la maĂźtrise des notions de contexte, de transition d’état, et de gestion des ressources.

Test your knowledge

Test your knowledge on Gestion des Processus et Threads with 12 multiple-choice questions with detailed corrections.

1. Que désigne un processus dans un systÚme d'exploitation ?

2. Selon Salwa Othmen (2025), quel est l’état d’un processus lorsqu’il est en attente d’affectation du processeur, Ă©tant placĂ© dans la file d’attente des processus prĂȘts ?

Take the quiz →

Review with flashcards

Memorize the key concepts of Gestion des Processus et Threads with 24 interactive flashcards.

Processus — dĂ©finition ?

Entité d'exécution d'un programme, avec ses ressources.

PID — rîle ?

Identifiant unique pour chaque processus.

Espace d’adressage — localisation ?

Mémoire allouée au processus, isolée des autres.

See flashcards →

Similar courses

Create your own revision sheets

Import your course and AI generates sheets, quizzes and flashcards in 30 seconds.

Sheet generator