230 - vie et état Flashcards
Actif ?
Actif: tient la ressource processeur
Prêt: ne manque que le processeur
Bloqué: manque une autre ressource
+———+ 2 +———-+
| |———–>| |
| Prêt | | Actif |
| |<———–| |
+———-+ 1 +———+
^ |
| 4 | 3
| v
+———————————+
| |
| Bloqué |
| |
+———————————-+
Prêt ?
Actif: tient la ressource processeur
Prêt: ne manque que le processeur
Bloqué: manque une autre ressource
+———+ 2 +———-+
| |———–>| |
| Prêt | | Actif |
| |<———–| |
+———-+ 1 +———+
^ |
| 4 | 3
| v
+———————————+
| |
| Bloqué |
| |
+———————————-+
Bloqué ?
Actif: tient la ressource processeur
Prêt: ne manque que le processeur
Bloqué: manque une autre ressource
+———+ 2 +———-+
| |———–>| |
| Prêt | | Actif |
| |<———–| |
+———-+ 1 +———+
^ |
| 4 | 3
| v
+———————————+
| |
| Bloqué |
| |
+———————————-+
Nommer les états
Actif: tient la ressource processeur
Prêt: ne manque que le processeur
Bloqué: manque une autre ressource
Décrivez les changements d’états (1, 2, 3 et 4) :
+———+ 2 +———-+
| |———–>| |
| Prêt | | Actif |
| |<———–| |
+———-+ 1 +———+
^ |
| 4 | 3
| v
+———————————+
| |
| Bloqué |
| |
+———————————-+
(A→P) : Le SE prend la main à un processus
(P→A) : Le SE donne la main à un processus
(A→B) : Le processus demande une ressource
(B→P) : La ressource demandée devient disponible
Citer un exemple pour (A→P) : Le SE prend la main à un processus
Citer un exemple pour (P→A) : Le SE donne la main à un processus
Citer un exemple pour (A→B) : Le processus demande une ressource
Citer un exemple pour (B→P) : La ressource demandée devient disponible
Un processus peut-il passer de prêt à bloqué ?
Un processus peut-il passer de bloqué à actif ?
États Unix
R (Running) : s’exécute ou peut s’exécuter , regroupe prêt et actif
S (Sleeping)/ D : bloqué sur un appel système, interruptible par un signal (kill(1))
D (Uninterruptible Sleep) : bloqué sur un appel système qui fait des entrée-sorties mais termine vite. rarement visible
T (Stopped) : arrêté par un signal ou un débogueur. Le processus peut continuer si on le débloque
Z (Zombie) : Le processus a terminé, mais attend que son parent collecte son code de retour. Pas encore été nettoyé par le système.
X (Dead) : Le processus a terminé son exécution et a été complètement nettoyé par le système. rarement visible
I (Idle) : inactif du noyau. Linux utilise l’infrastructure des processus pour gérer ses tâches noyaux internes. I n’a pas de sens autrement.
Changement de contexte
Un changement de contexte intervient quand le processeur est donné à un autre processus
* Passage du processus en mode noyau (syscall ou interruption)
* Sauvegarde du contexte du processus
* Exécution de l’appel ou gestion de l’interruption
* Modification éventuelle de l’état de processus
* Appel de l’ordonnanceur (scheduler) qui élit un processus
* Restauration du contexte de l’élu
* Modification de son état à actif
* Fin de l’appel ayant précédemment provoqué la suspension de
l’élu
* Passage de l’élu en mode utilisateur et suite de son exécution
→ C’est un procédé complexe et relativement coûteux
Coût du changement de contexte
Un changement de contexte coûte cher
* Rappel : le travail du SE n’est pas un travail utile en soi
Cause du coût
* Sauvegarde du contexte du processus
* Algorithme d’ordonnancement (détails plus tard) * Restauration du contexte du processus
* Deux fois mise en défaut des caches et sections
Personnages
* 3 processus (P1 actif, P2 et P3 prêts)
* Un système d’exploitation (accompagné de son ordonnanceur)
Acte 2
* P2 est élu
* Le contexte de P2 est restauré
* P2 passe à actif
* L’horloge est programmée pour un nouveau quantum
* Fin de l’appel système/de l’interruption qui avait suspendu P2
* Et suite de l’exécution de P2 (en mode utilisateur)
Questions
* Pourquoi pas P1 ?
* Pourquoi P2 et pas P3 ?