Algorithme de planification prioritaire: Exemple préventif, non préventif

Table des matières:

Anonim

Qu'est-ce que la planification prioritaire?

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 à travailler selon la priorité.

Les processus avec une priorité plus élevée doivent être exécutés en premier, tandis que les travaux avec des priorités égales sont exécutés sur une base circulaire ou FCFS. La priorité dépend des besoins en mémoire, des besoins en temps, etc.

Dans ce didacticiel sur le système d'exploitation, vous apprendrez:

  • Qu'est-ce que la planification prioritaire?
  • Types de planification prioritaire
  • Caractéristiques de la planification prioritaire
  • Exemple de planification prioritaire
  • Avantages de la planification prioritaire
  • Inconvénients de la planification prioritaire

Types de planification prioritaire

Ordonnancement prioritaire divisé en deux types principaux:

Planification préventive

Dans la planification préventive, les tâches sont principalement attribuées avec leurs priorités. Parfois, il est important d'exécuter une tâche avec 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éventive

Dans ce type de méthode de planification, la CPU a été allouée à un processus spécifique. Le processus qui maintient le CPU occupé libérera le CPU 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. C'est parce qu'il n'a pas besoin de matériel spécial (par exemple, une minuterie) comme la planification préventive.

Caractéristiques de la planification prioritaire

  • Un algorithme de processeur qui planifie les processus en fonction de la priorité.
  • Il est utilisé dans les systèmes d'exploitation pour effectuer des processus par lots.
  • Si deux emplois ayant la même priorité sont PRÊTS, cela fonctionne selon le principe PREMIER ARRIVÉ, PREMIER SERVI.
  • Dans l'ordonnancement 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, qui a 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.

Traiter 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 4.

Étape 1) À l'heure = 1, aucun nouveau processus n'arrive. L'exécution se poursuit avec P1.

Étape 2) Au moment 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, vous pouvez donc continuer avec P1. Processus P2 toujours dans la file d'attente.

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

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

Étape 6) Au temps = 6, P3 arrive. P3 a une priorité plus élevée (1) par rapport à P2 ayant une priorité (2). P2 est préempté et P3 commence son exécution.

Traiter 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, nous pouvons donc continuer avec P3.

Étape 9) Au temps = 9, aucun nouveau processus ne vient donc nous pouvons continuer avec P3.

Étape 10) À l'intervalle de temps 10, aucun nouveau processus ne vient, nous continuons donc avec P3

Etape 11) Au temps = 11, P4 arrive avec la priorité 4. P3 a une priorité plus élevée, donc il continue son exécution.

Traiter 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 en file d'attente. P2 et P5 ont la même priorité. L'heure d'arrivée de P2 est avant P5. Donc P2 commence l'exécution.

Traiter 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 a terminé son exécution. P4 est le seul processus qui reste. Il démarre l'exécution.

Étape 17) Au temps = 20, P5 a terminé l'exécution et aucun processus n'est laissé.

É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 = oP2 =4 - o + 7 =11P3= 6-6=0P4= 16-11=5Average 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 de la priorité, donc la haute priorité n'a pas besoin d'attendre longtemps, ce qui permet de gagner du temps
  • Cette méthode fournit un bon mécanisme où l'importance relative de chaque processus peut être définie avec précision.
  • Convient aux applications dont le temps et les besoins en ressources varient.

Inconvénients de la planification prioritaire

Voici les inconvénients / inconvénients de l'ordonnancement prioritaire

  • Si le système tombe finalement en panne, tous les processus de faible priorité sont perdus.
  • Si les processus de haute priorité prennent beaucoup de temps CPU, alors les processus de priorité inférieure peuvent mourir de faim et seront reportés pour une durée indéfinie.
  • Cet algorithme de planification peut laisser certains processus de faible priorité en attente indéfiniment.
  • Un processus sera bloqué lorsqu'il est prêt à s'exécuter mais doit attendre le processeur car un autre processus est en cours d'exécution.
  • Si un nouveau processus de priorité plus élevée continue à arriver dans la file d'attente prête, alors le processus qui est dans l'état d'attente peut devoir attendre pendant une longue durée.

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 à travailler selon la priorité.
  • Dans la planification préventive prioritaire, les tâches sont principalement attribuées avec leurs priorités.
  • Dans la méthode de planification prioritaire non préemptive, la CPU a été allouée à un processus spécifique.
  • Les processus sont exécutés sur la base de la priorité, donc la haute priorité n'a pas besoin d'attendre longtemps, ce qui permet de gagner du temps
  • Si les processus de haute priorité prennent beaucoup de temps CPU, alors les processus de priorité inférieure peuvent mourir de faim et seront reportés pour une durée indéfinie.