États des processus et transitions d'état

07 Sep 2022 07 Sep 2022 2808 vues ESSADDOUKI Mostafa 11 min de lecture

Les états des processus

Définition : États de processus

Un système d'exploitation utilise la notion d'état de processus pour garder une trace de ce qu'un processus fait à tout moment.

Le noyau utilise des états de processus pour simplifier son propre fonctionnement, de sorte que le nombre d'états de processus et leurs noms peuvent varier selon les systèmes d'exploitation.

Principe fondamental

Les états de processus permettent au système d'exploitation de gérer efficacement les ressources et l'ordonnancement. Chaque processus passe par différents états tout au long de son cycle de vie, de sa création à sa terminaison.

Les quatre états fondamentaux

La plupart des systèmes d'exploitation utilisent les quatre états fondamentaux suivants :

 État actif

En cours d'exécution (Running)

Un processeur exécute actuellement des instructions dans le code du processus.

Caractéristique : Dans un système monoprocesseur, un seul processus peut être dans cet état à un instant donné.

 État d'attente

Bloqué (Blocked / Waiting)

Le processus doit attendre qu'une demande de ressource qu'il a faite soit accordée, ou il souhaite attendre qu'un événement spécifique se produise.

Exemples : Attente d'une opération d'E/S, d'un message, d'une ressource.

 État d'attente CPU

Prêt (Ready)

Le processus souhaite utiliser le CPU pour continuer son fonctionnement ; cependant, il n'a pas encore été expédié (dispatched).

Caractéristique : Tous les processus prêts sont placés dans la file d'attente prête.

 État final

Terminé (Terminated)

Le fonctionnement du processus s'est terminé normalement ou le système d'exploitation l'a interrompu.

Le processus ne sera plus jamais exécuté et ses ressources seront libérées.

Interprétation des états

Le noyau considère qu'un processus est dans l'état bloqué s'il a fait une demande de ressource et que la demande n'a pas encore été accordée, ou s'il attend qu'un événement se produise. Une CPU ne doit pas être allouée à un tel processus tant que son attente n'est pas terminée.

Le noyau changerait l'état du processus en prêt lorsque la demande est accordée ou que l'événement qu'il attend se produit. Un tel processus peut être envisagé pour l'ordonnancement.

Le noyau changerait l'état du processus en exécution lorsqu'il est distribué (servi). L'état serait changé en terminé lorsque l'exécution du processus se termine ou lorsqu'il est abandonné par le noyau pour une raison quelconque.

Remarque importante

Un système informatique conventionnel ne contient qu'une seule unité centrale et, par conséquent, un seul processus au maximum peut être à l'état d'exécution. Il peut y avoir un nombre quelconque de processus dans les états bloqué, prêt et terminé.

Un système d'exploitation peut définir davantage d'états de processus pour simplifier son propre fonctionnement ou pour prendre en charge des fonctionnalités supplémentaires comme le swapping.

Diagramme des transitions d'état

Schéma des transitions

Figure : Diagramme des états et transitions d'un processus

Les transitions d'état

Définition : Transition d'état

Une transition d'état pour un processus Pi est un changement dans son état. Une transition d'état est provoquée par l'occurrence d'un événement tel que le début ou la fin d'une opération d'entrée/sortie.

Lorsque l'événement se produit, le noyau détermine son influence sur les activités des processus et modifie en conséquence l'état d'un processus affecté.

Les cinq transitions principales

Transition 1

Prêt → En cours d'exécution

Le processus est distribué (servi). Le CPU commence ou reprend l'exécution de ses instructions.

Acteur : Cette transition est effectuée par le dispatcher (répartiteur).

Événement déclencheur : Décision de l'ordonnanceur de sélectionner ce processus.

Transition 2

Bloqué → Prêt

Une demande faite par le processus est accordée ou un événement qu'il attendait se produit.

Exemples :

  • Fin d'une opération d'E/S
  • Réception d'un message attendu
  • Obtention d'une ressource demandée
  • Expiration d'un délai d'attente
Transition 3

En cours d'exécution → Prêt

Le processus est préempté parce que le noyau décide de planifier un autre processus.

Causes possibles :

  • Un processus plus prioritaire devient prêt (préemption par priorité)
  • La tranche de temps (quantum) du processus s'écoule (temps partagé)
  • Une interruption matérielle se produit
Transition 4

En cours d'exécution → Bloqué

Le processus en cours d'exécution effectue un appel système pour indiquer qu'il souhaite attendre qu'une certaine demande de ressource soit accordée, ou qu'un événement spécifique se produise.

Les cinq principales causes de blocage :

  1. Le processus demande une opération d'E/S
  2. Le processus demande une ressource
  3. Le processus souhaite attendre pendant un intervalle de temps spécifié
  4. Le processus attend un message d'un autre processus
  5. Le processus attend une action d'un autre processus
Transition 5

En cours d'exécution → Terminé

L'exécution du programme est terminée.

Les cinq principales raisons de l'arrêt d'un processus :

1. Auto-terminaison

Le processus en cours d'exécution achève sa tâche ou se rend compte qu'il ne peut pas fonctionner de manière significative et lance un appel système "terminate me". Des exemples de cette dernière condition sont des données incorrectes ou incohérentes, ou l'incapacité d'accéder aux données de la manière souhaitée, par exemple, des privilèges d'accès aux fichiers incorrects.

2. Arrêt par un parent

Un processus effectue un appel système "terminate Pi" pour mettre fin à un processus enfant Pi, lorsqu'il estime que l'exécution du processus enfant n'est plus nécessaire ou utile.

3. Dépassement de l'utilisation des ressources

Un système d'exploitation peut limiter les ressources qu'un processus peut consommer. Un processus dépassant une limite de ressources sera interrompu par le noyau.

4. Conditions anormales pendant le fonctionnement

Le noyau interrompt un processus si une condition anormale survient en raison de l'instruction en cours d'exécution, par exemple :

  • Exécution d'une instruction invalide
  • Exécution d'une instruction privilégiée
  • Conditions arithmétiques comme le dépassement de capacité
  • Violation de la protection de la mémoire
5. Interaction incorrecte avec d'autres processus

Le noyau peut interrompre un processus s'il est impliqué dans une impasse (deadlock).

Résumé du cycle de vie d'un processus

Un nouveau processus est mis à l'état prêt après que les ressources dont il a besoin ont été allouées. Il peut entrer dans les états en cours, bloqué et prêt un certain nombre de fois à la suite des événements décrits ci-dessus. Finalement, il entre dans l'état terminé.

    Nouveau
       │
       ▼
    ┌──────┐      ┌──────────┐
    │ Prêt │◄────►│ Exécution│
    └──────┘      └────┬─────┘
       ▲               │
       │               ▼
    ┌──────┐      ┌──────────┐
    │Bloqué│      │ Terminé  │
    └──────┘      └──────────┘
            

Tableau récapitulatif des transitions

TransitionDescriptionCause typique
Prêt → ExécutionLe processus est élu par l'ordonnanceurDécision du dispatcher
Exécution → PrêtLe processus est préemptéFin de quantum, arrivée d'un processus prioritaire
Exécution → BloquéLe processus demande une ressource ou une E/SAppel système d'attente
Bloqué → PrêtLa ressource attendue est disponibleFin d'E/S, réception d'un message
Exécution → TerminéLe processus se termineFin normale, erreur, interruption par parent
 Exercice pratique

Analyse des transitions d'état

 Niveau : Débutant

On considère le scénario suivant avec trois processus P1, P2 et P3 dans un système monoprocesseur :

  1. P1 est en cours d'exécution et demande une opération de lecture sur le disque.
  2. P2 est dans la file d'attente prête.
  3. P3 est en attente de la fin d'une opération d'écriture sur l'imprimante.
  4. L'opération de lecture de P1 se termine.
  5. P2 commence son exécution mais son quantum de temps s'écoule après 10 ms.

Questions :

  1. Quel est l'état initial de chaque processus ?
  2. Quelles transitions d'état se produisent à l'étape 1 ?
  3. Quelles transitions se produisent à l'étape 4 ?
  4. Quelles transitions se produisent à l'étape 5 ?
  5. Dessinez le diagramme des transitions en indiquant les états des processus après chaque étape.
Points clés à retenir
  • Les processus passent par différents états tout au long de leur cycle de vie.
  • Les quatre états fondamentaux sont : prêt, en cours d'exécution, bloqué, terminé.
  • Dans un système monoprocesseur, un seul processus peut être en cours d'exécution à la fois.
  • Les transitions d'état sont déclenchées par des événements (demandes de ressources, fin d'E/S, préemption, etc.).
  • Un processus bloqué ne doit pas recevoir de CPU tant que l'événement qu'il attend ne s'est pas produit.
  • La transition prêt → exécution est gérée par l'ordonnanceur et le dispatcher.
  • La transition exécution → prêt correspond à la préemption (fin de quantum ou priorité).
  • La transition exécution → bloqué se produit lorsqu'un processus demande une ressource ou une E/S.
  • La transition bloqué → prêt se produit lorsque la ressource attendue devient disponible.
  • Un processus peut se terminer normalement ou être interrompu par le système ou son parent.

Discussion (0)

Soyez le premier à laisser un commentaire !

Laisser un commentaire

Votre commentaire sera visible après modération.