Algorithme d'ordonnancement par priorité : préemptif, non préemptif
⚡ Résumé intelligent
L'ordonnancement par priorité est une méthode d'ordonnancement du processeur qui sélectionne les processus en fonction de leur priorité, en exécutant d'abord les tâches les plus prioritaires. Il peut être préemptif ou non préemptif, et les processus de priorité égale sont traités selon le principe du premier arrivé, premier servi ou par tourniquet.

Qu’est-ce que la planification prioritaire ?
Planification prioritaire est une méthode de planification des processus basée sur la priorité. Dans cet algorithme, le planificateur sélectionne les tâches à exécuter selon la priorité.
Les processus avec une priorité plus élevée doivent être exécutés en premier, tandis que les tâches avec des priorités égales sont exécutées sur une base circulaire ou FCFS. La priorité dépend des besoins en mémoire, en temps, etc.
Types de planification prioritaire
La planification par priorité se divise en deux types principaux :
Planification préventive
Dans la planification préemptive, les tâches sont pour la plupart assignées avec leurs priorités. Parfois, il est important d'exécuter une tâche ayant une priorité plus élevée avant une autre tâche de priorité inférieure, même si la tâche de priorité inférieure est toujours en cours d'exécution. La tâche de priorité inférieure est conservée pendant un certain temps et reprend lorsque la tâche de priorité supérieure termine son exécution.
Planification non préemptive
Dans ce type de méthode d'ordonnancement, le processeur est alloué à un processus spécifique. Ce processus libère le processeur soit en changeant de contexte, soit en se terminant. C'est la seule méthode compatible avec différentes plateformes matérielles, car elle ne nécessite pas de matériel particulier (comme un minuteur), contrairement à l'ordonnancement préemptif.
Caractéristiques de la planification prioritaire
- Un algorithme de CPU qui planifie les processus en fonction de la priorité.
- Il est utilisé dans Operasystèmes de mise en œuvre pour effectuer des processus par lots.
- Si deux jobs ayant la même priorité sont PRÊTS, il fonctionne sur un PREMIER ARRIVÉ PREMIER SERVI base.
- Dans la planification prioritaire, un numéro est attribué à chaque processus qui indique son niveau de priorité.
- Plus le chiffre est bas, plus la priorité est élevée.
- Dans ce type d'algorithme d'ordonnancement, si un nouveau processus arrive avec une priorité supérieure à celle du processus en cours d'exécution, alors ce dernier est préempté.
Exemple de planification prioritaire
Considérons les cinq processus suivants, de P1 à P5. Chaque processus possède sa propre priorité, sa durée d'exécution et son heure d'arrivée.
| Processus | Priorité | Temps de rafale | Heure d'arrivée |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 3 | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
Étape 0) À l'instant t = 0, les processus P1 et P2 arrivent. P1 est prioritaire sur P2. L'exécution commence avec le processus P1, dont la durée d'exécution est de 4.
Étape 1) À l'instant t = 1, aucun nouveau processus n'arrive. L'exécution se poursuit avec P1.
Étape 2) Au temps 2, aucun nouveau processus n’arrive, vous pouvez donc continuer avec P1. P2 est dans la file d'attente.
Étape 3) À l'instant 3, aucun nouveau processus n'arrive, vous pouvez donc continuer avec P1. Le processus P2 est toujours dans la file d'attente.
Étape 4) A l'instant 4, P1 a terminé son exécution. P2 démarre l'exécution.
Étape 5) À l'instant t = 5, aucun nouveau processus n'arrive, nous continuons donc avec P2.
Étape 6) À l'instant t = 6, P3 arrive. P3 a une priorité plus élevée (1) que P2, qui a une priorité (2). P2 est préempté et P3 commence son exécution.
| Processus | Priorité | Temps de rafale | Heure d'arrivée |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1 sur 3 en attente | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
Étape 7) À l'instant 7, aucun nouveau processus n'arrive, nous continuons donc avec P3. P2 est dans la file d'attente.
Étape 8) À l'instant t = 8, aucun nouveau processus n'arrive, nous pouvons donc continuer avec P3.
Étape 9) À l'instant t = 9, aucun nouveau processus n'arrive, nous pouvons donc continuer avec P3.
Étape 10) À l'intervalle de temps 10, aucun nouveau processus n'arrive, nous continuons donc avec P3.
Étape 11) À l'instant = 11, P4 arrive avec une priorité de 4. P3 a une priorité plus élevée, il continue donc son exécution.
| Processus | Priorité | Temps de rafale | Heure d'arrivée |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1 sur 3 en attente | 0 |
| P3 | 1 | 2 sur 7 en attente | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
Étape 12) À l'instant t = 12, P5 arrive. P3 ayant une priorité plus élevée, son exécution se poursuit.
Étape 13) À l'instant t = 13, P3 termine son exécution. P2, P4 et P5 sont dans la file d'attente des processus prêts. P2 et P5 ont la même priorité. Comme P2 arrive avant P5, son exécution commence.
| Processus | Priorité | Temps de rafale | Heure d'arrivée |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1 sur 3 en attente | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
Étape 14) À l'instant t = 14, le processus P2 a terminé son exécution. P4 et P5 sont en attente. P5, prioritaire, démarre son exécution.
Étape 15) À l'instant = 15, P5 poursuit son exécution.
Étape 16) À l'instant t = 16, l'exécution de P5 est terminée. Seul le processus P4 reste en cours d'exécution.
Étape 17) À l'instant t = 20, P4 a terminé son exécution et aucun processus ne reste.
Étape 18) Calculons le temps d'attente moyen pour l'exemple ci-dessus.
Temps d'attente = heure de début – heure d'arrivée + temps d'attente pour la prochaine rafale
P1 = 0 - 0 = 0 P2 = 4 - 0 + 7 = 11 P3 = 6 - 6 = 0 P4 = 16 - 11 = 5 Average Waiting time = (0 + 11 + 0 + 5 + 2)/5 = 18/5 = 3.6
Avantages de la planification prioritaire
Voici les avantages de l'utilisation de la méthode de planification par priorité :
- Méthode de planification facile à utiliser.
- Les processus sont exécutés en fonction de leur priorité ; les processus à haute priorité n'ont donc pas à attendre longtemps, ce qui permet de gagner du temps.
- Cette méthode offre un bon mécanisme permettant de définir précisément l'importance relative de chaque processus.
- Convient aux applications dont les besoins en termes de temps et de ressources varient.
Inconvénients de la planification prioritaire
Voici les inconvénients de la planification par priorité :
- Si le système finit par tomber en panne, tous les processus de faible priorité sont perdus.
- Si les processus hautement prioritaires consomment beaucoup de temps CPU, les processus moins prioritaires risquent de mourir de faim et seront reportés pour une durée indéterminée.
- Cet algorithme de planification peut laisser certains processus de faible priorité attendre indéfiniment.
- Un processus sera bloqué lorsqu'il est prêt à s'exécuter mais devra attendre le processeur car un autre processus est en cours d'exécution.
- Si un nouveau processus de priorité plus élevée continue d'arriver dans la file d'attente prête, alors le processus qui est en état d'attente devra peut-être attendre pendant une longue période.


















