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.

Planification prioritaire

Étape 1) Au temps = 1, aucun nouveau processus n'arrive. L'exécution continue avec P1.

Planification prioritaire

Étape 2) Au temps 2, aucun nouveau processus n’arrive, vous pouvez donc continuer avec P1. P2 est dans la file d'attente.

Planification prioritaire

Étape 3) Au temps 3, aucun nouveau processus n’arrive donc vous pouvez continuer avec P1. Processus P2 toujours dans la file d’attente.

Planification prioritaire

Étape 4) A l'instant 4, P1 a terminé son exécution. P2 démarre l'exécution.

Planification prioritaire

Étape 5) Au temps = 5, aucun nouveau processus n'arrive, donc on continue avec P2.

Planification prioritaire

É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

Planification prioritaire

Étape 7) À au temps 7, aucun nouveau processus n'arrive, nous continuons donc avec P3. P2 est dans la file d'attente.

Planification prioritaire

Étape 8) Au temps = 8, aucun nouveau processus n'arrive, on peut donc continuer avec P3.

Planification prioritaire

Étape 9) Au temps = 9, aucun nouveau processus n'arrive donc nous pouvons continuer avec P3.

Planification prioritaire

Étape 10) A l'intervalle de temps 10, aucun nouveau processus n'arrive, donc on continue avec P3

Planification prioritaire

É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

Planification prioritaire

Étape 12) Au temps = 12, P5 arrive. P3 a une priorité plus élevée, il continue donc son exécution.

Planification prioritaire

É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

Planification prioritaire

É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.

Planification prioritaire

Étape 15) Au temps =15, P5 continue l'exécution.

Planification prioritaire

Étape 16) Au temps = 16, P5 termine son exécution. P4 est le seul processus restant. Il démarre l'exécution.

Planification prioritaire

Étape 17) Au temps = 20, P5 a terminé son exécution et il ne reste plus aucun processus.

Planification prioritaire

É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.