Etat d'un processus
Dans les systèmes monoprogrammés. Un programme ne quittait pas l'unité centrale avant de terminer son exécution. Pendant cette période, il dispose de toutes les ressources de la machine à lui tout seul. Par contre ce n'est pas le cas dans les systèmes multiprogrammés et temps-partagé.
En effet, comme nous l'avons mentionné dans le paragraphe précédent, il est impossible de prévoir les conditions dans lesquelles va se faire l'exécution d'un programme donné (à cause de l'occurrence de certains événements aléatoires : interruption,….).
Ainsi, durant sa vie, un processus peut être :
- Réellement en progression (en cours d'exécution),
- Suspendu en attendant le processeur alloué à un autre processus :
Exemple:
Dans un système temps-partagé, périodiquement, le système d'exploitation décide d'interrompre un processus en cours et de lancer l'exécution d'un autre, par exemple, parce que le premier a épuisé son temps d'allocation du processeur.
- En attente d'éléments dont il a besoin et qui ne sont pas disponibles
Par conséquent, la notion d'état de processus est introduite par les systèmes d'exploitation (multiprogrammé, temps-partagé) afin de leur permettre, dans leur gestion de processus, de prendre en considération ces situations.
Un processus peut se trouver dans l'un des états suivants :
- Elu (en cours d'exécution)
- Bloqué (attente d'un événement pour pouvoir continuer)
- Prêt (suspendu provisoirement pour permettre l'exécution d'un autre programme)
Remarque :
Dans les systèmes réels, nous avons un nombre plus important d'états. Nous y distinguons
les différentes causes d'attente.
|
Un processus peut se bloquer lorsqu'il ne peut pas pour une raison logique poursuivre son exécution.
Exemples:
- un processus peut se bloquer en attendant des données
- Un processus élu (en cours d'exécution) peut être arrêté, même s'il peut poursuivre son exécution : le système d'exploitation décide d'allouer le processeur à un autre processus
Remarque :
Les deux situations précédentes sont totalement différentes.
|
C'est le système qui détermine et modifie l'état d'un processus sous l'effet d'événements. Les événements sont :
- Internes aux processus :(une demande de lecture ou d'écriture fait passer le processus de l'état élu à l'état bloqué ou «en attente»)
- Externes (provenant du système d'exploitation) : (l'attribution de l'unité centrale à un processus le fait passer de l'état élu à l'état prêt à l'état élu)