Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Un processus peut être dans les états suivants : Nouveau (initial), prêt, bloqué (en attente), en exécution,
et terminé (final).
Rectangle → queue
Cercle → ressource
3.4 Comportement des processus
L’exécution d’un processus consiste en un cycle d’exécution de l’UC et d’attente des entrées/sorties. Les
processus alterne entre ces deux états.
L’exécution d’un processus commence par un cycle d’UC, suivi d’un cycle d’entré/sortie et ainsi de suite.
Le dernier cycle d’UC finira par une requête au système pour terminer l’exécution.
⇒ si les processus les plus courts passent en premier, le temps moyen d’attente diminue
– inconvénient de FCFS: l’attente peut être longue pour des processus de courte durée
A.2) Travail plus court d’abord (SJF, shortest job first): On alloue l’UC au processus qui possède
le prochain cycle d’UC le plus petit.
Si deux processus possèdent la même longueur, le scheduling FCFS est appliqué.
Exemple :
Processus arrivée Temps du cycle
P1 0 7
P2 2 4
P3 4 1
P4 5 4
P2 P5 P1 P3 P4
Exemple :
Processus Temps du cycle
P1 24
P2 3
P3 3
Temps d’arrivée est 0
- Si nous utilisons un quantum de 4 ms :
P1 P2 P3 P1 P1 P1 P1 P1
Quantum = 2.0
P1 P2 P4 P1 P3
Priorités dynamiques
• si le système est très chargé, les processus de faible priorité n’obtiennent jamais le CPU (famine
ou starvation)
• pour pallier à ce défaut, la priorité doit être un paramètre dynamique qui permettra de changer
le processus de file (files réactives)
• l’ajustement dynamique de la priorité d’un processus est calculé par l’ordonnanceur
Files réactives
• lorsqu’un processus est créé, on lui attribue un niveau de priorité de base
• il entre dans la queue des processus prêts à son niveau de priorité et attend son tour (Round
Robin)
• selon l’usage qu’il a fait du CPU, sa priorité peut être modifiée (à la baisse ou à la hausse) ou
pas
• si un processus est rapidement suspendu suite à un I/O burst et qu’il n’a utilisé qu’une petite
fraction f de son quantum, sa priorité peut être élevée « proportionnellement » à 1/f
• il obtiendra à nouveau rapidement accès au processeur car il sera placé dans une file
supérieure
• un algorithme de vieillissement (aging) sera appliqué aux processus qui attendent dans les files
à basse priorité afin de les inclure dans des files de niveaux plus favorables
Exemple des files d’attente avec priorités différentes
Chaque file d’attente est absolument prioritaire par rapport aux files d’attentes de priorités inférieures
: Aucun processus de la file d’attente des processus batchs ne pourra s’exécuter à moins que les files
d’attente des processus système, interactifs et d’édition interactive ne soient toute vides. Si un processus
d’édition interactive arrive pendant qu’un processus batch s’exécute, ce dernier sera interrompu.
B.4) Autres algorithmes préemptifs
multi-queues:
– l'ordonnanceur gère plusieurs politiques (c-à-d plusieurs queues)
Exemple:
• queue 1 (ou politique 1): round-robin
• queue 2 (ou politique 2): premier arrivé-premier servi (allocation du CPU uniquement si la queue 1
est vide)
• multi-queues avec feedback plusieurs queues (politiques)
- les processus peuvent passer d'une queue à une autre
Exemple :
– queue 1: un processus peut y consommer au max 8 quantum de temps
– queue 2: moins prioritaire, un processus peut y consommer au max 16 quantum
– queue 3: la moins prioritaire, politique premier arrivé-premier servi
⇒ a pour effet d’avantager les processus courts