Nous utilisons des cookies pour améliorer votre expérience. En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies.


Politique de confidentialité

États de processus et transitions d'état

 

États de processus et transitions d'état

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. Cependant, la plupart des OS utilisent les quatre états fondamentaux :

  •  En cours d'exécution : un processeur exécute actuellement des instructions dans le code de processus.
  •  Bloqué : 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.
  •  Prêt : Le processus souhaite utiliser le CPU pour continuer son fonctionnement ; cependant, il n'a pas été expédié.
  •  Terminé : le fonctionnement du processus, c'est-à-dire l'exécution du programme qu'il représente, s'est terminé normalement ou le système d'exploitation l'a interrompu.

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.

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.

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

prêt → en cours d'exécution

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

bloqué → prêt

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

en cours d'exécution → prêt

Le processus est préempté parce que le noyau décide de planifier un autre processus. Cette transition se produit soit parce qu'un processus plus prioritaire devient prêt, soit parce que la tranche de temps du processus s'écoule.

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 qu'il a faite soit accordée, ou qu'un événement spécifique se produise dans le système. Les cinq principales causes de blocage sont :

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 sont :

Auto-termination

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.

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.

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.

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, l'exécution d'une instruction invalide, l'exécution d'une instruction privilégiée, des conditions arithmétiques comme le dépassement de capacité ou la violation de la protection de la mémoire.

Interaction incorrecte avec d'autres processus

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



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

Partager ce cours avec tes amis :
Rédigé par ESSADDOUKI Mostafa
ESSADDOUKI
The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.