Terminale · Architectures, systèmes et réseaux

Processus et gestion des ressources

Un lecteur audio peut attendre des données tandis qu’un autre programme utilise le processeur. Le système ne voit pas seulement des fichiers de code : il gère des exécutions, leurs états et les ressources dont elles ont besoin. Ces exécutions sont des processus.

SofienAvec SofienIngénieur et enseignant en informatique
Dans ce chapitre

Un cap pour ce chapitre

Ce que vous saurez faire

  • Distinguer programme et processus.
  • Expliquer les états prêt, élu, bloqué et terminé.
  • Décrire création, attente et attribution de ressources.
Les bases utiles pour commencer

Le programme enregistré et son exécution

Un programme est une description d’instructions, généralement conservée dans un fichier ou une autre représentation. Un processus correspond à une exécution de programme gérée par le système. Il possède un contexte : état des registres, mémoire utilisée, ressources ouvertes et informations permettant de reprendre son exécution.

Deux lancements du même programme peuvent créer deux processus distincts. Ils partagent éventuellement certaines ressources selon le système, mais ne doivent pas être assimilés à une seule exécution parce que leur code a la même origine. Le système attribue des identifiants pour les distinguer.

L’identifiant d’un processus permet au système de suivre une exécution particulière. Son nom de programme peut être identique à celui d’un autre processus, mais son avancement et ses données diffèrent. À l’inverse, une application visible peut utiliser plusieurs processus. Compter les fenêtres, les fichiers exécutables et les processus donne donc trois quantités qu’il ne faut pas confondre.

Créer et faire vivre un processus

Lors d’un lancement, le système prépare les ressources et le contexte nécessaires à l’exécution. Un processus peut ensuite obtenir le processeur, demander une entrée-sortie, attendre un événement puis reprendre. Le système conserve assez d’informations pour retrouver son état après une interruption de son activité sur le processeur.

Les outils d’observation présentent notamment des identifiants, un nom de programme, une activité et parfois un état. Les détails varient selon le système. Une liste de processus peut contenir des services en arrière-plan qui ne correspondent pas à une fenêtre visible. Fermer une fenêtre et comprendre toute l’activité de la machine sont donc deux choses différentes.

Prêt, élu et bloqué répondent à des situations différentes

Un processus prêt dispose de ce dont il a besoin pour calculer, mais attend que le processeur lui soit attribué. Un processus élu utilise actuellement le processeur dans notre modèle à un seul cœur. Un processus bloqué attend un événement ou une ressource, comme la fin d’une lecture. Lui attribuer du temps de calcul ne suffirait pas à résoudre son attente.

Quand la lecture se termine, le processus bloqué redevient prêt. Il ne devient pas automatiquement élu : l’ordonnanceur doit encore le choisir. Lorsque son programme atteint sa fin, il passe à l’état terminé et ses ressources sont libérées selon les mécanismes du système.

Une préemption fait passer un processus élu à prêt parce que le système lui retire temporairement le processeur. Un blocage le fait attendre une autre condition, comme une entrée-sortie. Les deux libèrent le cœur dans le modèle, mais leur cause et leur chemin de retour diffèrent : le processus prêt est candidat à l’élection, le processus bloqué ne l’est pas encore.

Partager les ressources sans confondre les attentes

Le processeur, la mémoire, les fichiers et les périphériques constituent des ressources différentes. L’ordonnanceur organise l’utilisation du processeur ; d’autres mécanismes gèrent les accès et attentes sur les ressources. Un processus peut libérer le processeur tout en conservant une ressource dont il aura besoin ensuite.

Le simulateur suit un seul processus et laisse choisir un événement. Il refuse une transition incompatible, par exemple finir une entrée-sortie alors que le processus ne l’attendait pas. Il représente les états fondamentaux du cours, sans reproduire toutes les variantes internes d’un système réel. L’ordonnancement de plusieurs processus et les interblocages sont approfondis séparément.

Exemple suivi : calculer puis attendre une lecture

Un processus est créé : il devient prêt. L’ordonnanceur le choisit : il devient élu. Il demande une lecture dont les données ne sont pas encore disponibles : il devient bloqué. Quand la lecture se termine, il redevient prêt. Une nouvelle décision d’ordonnancement le rend élu, puis l’exécution de sa dernière instruction le rend terminé.

La suite est donc prêt,élu,bloqué,prêt,élu,terminé. Il y a deux passages par l’état prêt, pour des raisons différentes : début de l’exécution, puis disponibilité après l’attente. À l’instant où la lecture se termine, un autre processus peut déjà utiliser le cœur. Il faut donc conserver une étape distincte de sélection et ne pas transformer automatiquement toute fin d’entrée-sortie en exécution immédiate.

Utiliser les états pour diagnostiquer une trace

Supposons un processus prêt auquel un événement « fin de lecture » est appliqué. Dans notre modèle, cette transition est incompatible puisqu’aucune lecture n’était attendue. Le simulateur la refuse et conserve l’état. De même, élire un processus bloqué ne résout pas la ressource manquante. Une trace doit expliquer les événements, pas seulement juxtaposer des noms d’états.

Sur un seul cœur, plusieurs processus peuvent être prêts mais un seul est élu à un instant donné dans le modèle simplifié. Un processus bloqué peut conserver de la mémoire et des fichiers ouverts tout en ne consommant pas de temps de calcul. Les outils système présentent des variantes d’états plus détaillées, mais la méthode reste utile : identifier la ressource attendue, l’événement qui rend l’exécution possible et la décision qui attribue le processeur. L’étude des files d’attente et interblocages prolonge ensuite ces distinctions.

À vous de faire varier les choses

Faites vivre un processus

Choisissez une suite d’événements puis avancez. L’atelier refuse les transitions incompatibles et explique pourquoi.

Lire le résultat de l’expérience initiale

État actuel : bloqué

Modèle à un cœur : la fin d’une entrée-sortie rend prêt, puis une sélection distincte rend élu.

ÉvénementAvantDécisionAprès
CréerabsentTransition permiseprêt
ÉlireprêtTransition permiseélu
Attendre E/SéluTransition permisebloqué

Chaque transition correspond à un événement précis ; attendre une ressource ne se résout pas par une simple attribution du processeur.

De la compréhension à l’autonomie

À vous de résoudre

Cherchez d’abord par vous-même. Vérifiez les résultats demandés, utilisez les indices si nécessaire, puis comparez votre méthode à la correction.

Exercice 1 · Comprendre#

Deux lancements, deux exécutions

Un même programme est lancé deux fois avec des données différentes. Peut-il donner naissance à deux processus ? Quelle information permet de les distinguer ?

Indice 1

Le code et son exécution ne sont pas la même chose.

Indice 2

Le système suit chaque contexte d’exécution.

Comprendre la correction

Oui. Deux exécutions peuvent correspondre à deux processus, possédant chacun un contexte et un identifiant. Le fait que leur programme d’origine soit identique ne fusionne pas leurs données courantes ni leur progression. Des partages précis peuvent exister, mais doivent être décrits.

Exercice 2 · Appliquer#

Attendre le disque

Un processus élu demande une lecture et doit attendre sa fin. Quels états suit-il au moment de la demande, puis quand la lecture est terminée ?

Indice 1

Il ne peut pas poursuivre son calcul immédiatement.

Indice 2

La fin de l’attente le rend exécutable, sans lui attribuer forcément le cœur.

Comprendre la correction

Il passe d’élu à bloqué lorsqu’il attend la lecture. À la fin de l’entrée-sortie, il redevient prêt. Il faudra ensuite une décision d’ordonnancement pour qu’il soit de nouveau élu. Confondre prêt et élu ferait disparaître l’attente du processeur.

Exercice 3 · Corriger#

Plus de temps ne résout pas tout

Un élève propose de donner un quantum supplémentaire à un processus bloqué qui attend une ressource indisponible. Pourquoi cela ne suffit-il pas ?

Indice 1

Sa difficulté n’est pas seulement l’attente du processeur.

Indice 2

L’événement nécessaire n’a pas encore eu lieu.

Comprendre la correction

Le processus ne peut pas poursuivre tant que la ressource ou l’événement manque. Du temps processeur supplémentaire ne crée pas cette disponibilité. Il faut d’abord résoudre l’attente qui le bloque ; l’ordonnanceur choisira ensuite parmi les processus prêts.

Exercice 4 · Justifier#

Une fenêtre ne décrit pas la machine

Un ordinateur affiche une seule fenêtre mais son outil système liste de nombreux processus. Est-ce nécessairement une anomalie ?

Indice 1

Des services peuvent fonctionner sans interface graphique.

Indice 2

Une application peut aussi impliquer plusieurs activités.

Comprendre la correction

Non. Des services du système et des tâches en arrière-plan s’exécutent sans fenêtre propre. Une application peut également s’appuyer sur plusieurs processus. Le nombre de fenêtres n’est donc pas une mesure fiable du nombre d’exécutions gérées par le système.

Exercice 5 · Approfondir et transférer#

Reconstituer une vie de processus

Un processus est créé, choisi, demande une lecture, reçoit la fin de lecture, est choisi de nouveau puis termine. Donnez les six états après événements et expliquez les deux passages par prêt.

Indice 1

La fin de lecture ne donne pas automatiquement le processeur.

Indice 2

La création prépare le processus à être sélectionné.

Comprendre la correction

Les états sont prêt,élu,bloqué,prêt,élu,terminé. Le premier prêt suit la création ; le second suit la résolution de l’attente d’entrée-sortie. Dans les deux cas, il faut une sélection pour obtenir le cœur. Terminé indique la fin de l’exécution, pas une simple attente temporaire.

Exercice 6 · Approfondir et transférer#

Deux processus sur un cœur

A est élu et B est prêt. A demande une lecture et se bloque ; B est ensuite choisi. La lecture de A se termine pendant que B calcule. Donnez les états de A et B à ce moment, puis un événement permettant à A de calculer ensuite.

Indice 1

A devient exécutable mais le cœur est déjà occupé.

Indice 2

B peut être préempté avant la sélection de A.

Comprendre la correction

A est prêt et B reste élu. Une préemption de B peut le remettre prêt, puis l’ordonnanceur peut choisir A. La fin de lecture seule ne donne pas à A le droit de s’exécuter simultanément avec B sur le cœur unique du modèle.

Exercice 7 · Approfondir et transférer#

Repérer les événements impossibles

Dans le modèle, un processus absent subit Créer, Fin E/S, Terminer, Élire, Attendre E/S, Élire. Donnez les événements refusés, le nombre de refus et l’état final, en conservant l’état lors d’un refus.

Indice 1

Fin E/S exige bloqué ; Terminer exige élu.

Indice 2

Un événement refusé ne modifie pas l’état avant l’événement suivant.

Comprendre la correction

Après Créer, il est prêt. Fin E/S et Terminer sont refusés. Élire le rend élu, Attendre E/S le rend bloqué, puis Élire est refusé. Il y a donc trois refus et l’état final est bloqué. Il faudrait d’abord une Fin E/S pour rendre une nouvelle élection possible.

Les erreurs qui méritent un détour

Employer prêt et bloqué comme synonymes.
Prêt signifie qu’il manque le processeur ; bloqué signifie qu’un événement ou une autre ressource empêche de poursuivre.
Confondre fin d’une entrée-sortie et fin du programme.
La première permet souvent de reprendre le calcul ; la seconde termine l’exécution.

La fiche à garder

L’essentiel à retenir

  • Un processus est une exécution avec un contexte.
  • Les états distinguent attente du processeur et attente d’un événement.
  • Le système gère plusieurs ressources et leurs interactions.

Cette notion au bac

Retrouvez ces idées dans un sujet complet, avec des indices, une correction expliquée et des ateliers.

Le prochain pas

Retrouver le catalogue de Terminale

Ce chapitre s’appuie sur le programme officiel de Terminale (PDF, nouvel onglet). Les explications et exercices sont proposés pour l’apprentissage.