Algorithme de planification prioritaire : EXEMPLE préemptif et non préemptif
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
Planification prioritaire divisée 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 de planification, le CPU a été alloué à un processus spécifique. Le processus qui maintient le processeur occupé libérera le processeur soit en changeant de contexte, soit en se terminant. C'est la seule méthode qui peut être utilisée pour diverses plates-formes matérielles. En effet, il ne nécessite pas de matériel spécial (par exemple, une minuterie) comme la planification préemptive.
Caractéristiques de la planification prioritaire
- Un algorithme de CPU qui planifie les processus en fonction de la priorité.
- Il a été 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é.
- Réduisez le nombre, plus la priorité est élevée.
- Dans ce type d'algorithme de planification, si un processus plus récent arrive, ayant une priorité plus élevée que le processus en cours d'exécution, alors le processus en cours d'exécution est préempté.
Exemple de planification prioritaire
Envisagez de suivre cinq processus P1 à P5. Chaque processus a sa priorité, son heure de rafale et son heure d'arrivée uniques.
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) Au temps = 0, les processus P1 et P2 arrivent. P1 a une priorité plus élevée que P2. L'exécution commence par le processus P1, qui a un temps de rafale de 4.
Étape 1) Au temps = 1, aucun nouveau processus n'arrive. L'exécution continue 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) Au temps 3, aucun nouveau processus n’arrive donc vous pouvez continuer avec P1. Processus P2 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) Au temps = 5, aucun nouveau processus n'arrive, donc on continue avec P2.
Étape 6) Au temps = 6, P3 arrive. P3 a une priorité plus élevée (1) par rapport à P2 ayant la 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) À au temps 7, aucun nouveau processus n'arrive, nous continuons donc avec P3. P2 est dans la file d'attente.
Étape 8) Au temps = 8, aucun nouveau processus n'arrive, on peut donc continuer avec P3.
Étape 9) Au temps = 9, aucun nouveau processus n'arrive donc nous pouvons continuer avec P3.
Étape 10) A l'intervalle de temps 10, aucun nouveau processus n'arrive, donc on continue avec P3
Étape 11) Au temps = 11, P4 arrive avec la priorité 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) Au temps = 12, P5 arrive. P3 a une priorité plus élevée, il continue donc son exécution.
Étape 13) Au temps = 13, P3 termine l'exécution. Nous avons P2, P4, P5 dans la file d'attente prête. P2 et P5 ont la même priorité. L’heure d’arrivée de P2 est avant P5. P2 commence donc l'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 14) Au temps =14, le processus P2 a terminé son exécution. P4 et P5 sont en état d'attente. P5 a la priorité la plus élevée et démarre l'exécution.
Étape 15) Au temps =15, P5 continue l'exécution.
Étape 16) Au temps = 16, P5 termine son exécution. P4 est le seul processus restant. Il démarre l'exécution.
Étape 17) Au temps = 20, P5 a terminé son exécution et il ne reste plus aucun processus.
É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 = o - o = o P2 =4 - o + 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/avantages de l’utilisation de la méthode de planification prioritaire :
- Méthode de planification facile à utiliser
- Les processus sont exécutés sur la base d'une priorité, de sorte qu'une priorité élevée ne nécessite pas d'attente longue, ce qui permet de gagner du temps.
- Cette méthode fournit un bon mécanisme permettant de définir avec précision 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/inconvénients de la planification prioritaire
- 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.
Résumé
- La 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é.
- Dans la planification préemptive prioritaire, les tâches sont pour la plupart assignées avec leurs priorités.
- Dans la méthode de planification prioritaire non préemptive, le processeur a été alloué à un processus spécifique.
- Les processus sont exécutés sur la base d'une priorité, de sorte qu'une priorité élevée ne nécessite pas d'attente longue, ce qui permet de gagner du temps.
- 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.