Planification préemptive et non préemptive

Principales différences entre la planification préemptive et non préemptive

  • Dans la planification préemptive, le processeur est alloué aux processus pour une période de temps spécifique, et le processeur de planification non préemptive est alloué au processus jusqu'à ce qu'il se termine.
  • Dans la planification préemptive, les tâches sont commutées en fonction de leur priorité, tandis que dans la planification non préemptive, aucune commutation n'a lieu.
  • L'algorithme préemptif a la charge de faire passer le processus de l'état prêt à l'état en cours d'exécution, tandis que la planification non préemptive n'a pas une telle charge de commutation.
  • La planification préemptive est flexible, tandis que la planification non préemptive est rigide.
Planification préemptive vs non préemptive
Planification préemptive vs non préemptive

Qu'est-ce que la planification préemptive ?

La planification préemptive est une méthode de planification dans laquelle les tâches sont principalement attribué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.

À ce moment-là, la tâche de priorité inférieure reste en attente pendant un certain temps et reprend lorsque la tâche de priorité supérieure termine son exécution.

Qu'est-ce que la 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 n'a pas besoin de matériel spécialisé (par exemple, une minuterie) comme la planification préemptive.

La planification non préemptive se produit lorsqu'un processus entre volontairement dans l'état d'attente ou se termine.

Planification préemptive et non préemptive : tableau de comparaison

Voici une comparaison directe entre la planification préemptive et non préemptive. Les principales différences entre la planification préemptive et non préemptive dans le système d'exploitation sont les suivantes :

Planification préventive Planification non préemptive
Un processeur peut être préempté pour exécuter les différents processus au milieu de toute exécution de processus en cours. Une fois que le processeur commence son exécution, il doit la terminer avant d'exécuter l'autre. On ne peut pas faire de pause au milieu.
L'utilisation du processeur est plus efficace que la planification non préemptive. L'utilisation du processeur est moins efficace que la planification préemptive.
Le temps d'attente et de réponse de la planification préemptive est moindre. Les temps d'attente et de réponse de la méthode de planification non préemptive sont plus longs.
La planification préemptive est prioritaire. Le processus ayant la priorité la plus élevée est un processus actuellement utilisé. Lorsqu'un processus entre dans l'état d'exécution, l'état de ce processus n'est jamais supprimé du planificateur tant qu'il n'a pas terminé son travail.
La planification préemptive est flexible. La planification non préemptive est rigide.
Exemples : – Temps restant le plus court en premier, Round Robin, etc. Exemples : Premier arrivé premier servi, Travail le plus court en premier, Planification prioritaire, etc.
L'algorithme de planification préemptive peut être préempté, c'est-à-dire que le processus peut être planifié Dans le processus de planification non préemptif, il ne peut pas être planifié
Dans ce processus, le CPU est alloué aux processus pour une période de temps spécifique. Dans ce processus, le processeur est alloué au processus jusqu'à ce qu'il se termine ou passe à l'état d'attente.
L'algorithme préemptif a pour conséquence de faire passer le processus de l'état prêt à l'état en cours d'exécution et vice versa. La planification non préemptive n'entraîne pas de surcharge liée au passage du processus de l'exécution à l'état prêt.

Avantages de la planification préemptive

Voici les avantages/avantages de la méthode de planification préemptive :

  • La méthode de planification préemptive est plus robuste, approche telle qu'un seul processus ne peut pas monopoliser le processeur
  • Choix de la tâche en cours reconsidéré après chaque interruption.
  • Chaque événement provoque une interruption des tâches en cours
  • Le système d'exploitation s'assure que l'utilisation du processeur est la même pour tous les processus en cours d'exécution.
  • En cela, l'utilisation du CPU est la même, c'est-à-dire que tous les processus en cours utiliseront le CPU de la même manière.
  • Cette méthode de planification improvise également le temps de réponse moyen.
  • La planification préemptive est bénéfique lorsque nous l'utilisons pour l'environnement multi-programmation.

Avantages de la planification non préemptive

Voici les avantages/avantages de la méthode de planification non préemptive :

  • Offre de faibles frais de planification
  • A tendance à offrir un débit élevé
  • C'est une méthode conceptuellement très simple
  • Less ressources de calcul nécessaires pour la planification

Inconvénients de la planification préemptive

Voici les inconvénients de la planification préemptive :

  • Besoin de ressources de calcul limitées pour la planification
  • Le planificateur met plus de temps à suspendre la tâche en cours, à changer de contexte et à distribuer la nouvelle tâche entrante.
  • Le processus ayant une faible priorité doit attendre plus longtemps si certains processus hautement prioritaires arrivent en continu.

Inconvénients de la planification non préemptive

Voici les inconvénients/inconvénients de la méthode de planification non préemptive :

  • Cela peut conduire à la famine, en particulier pour les tâches en temps réel.
  • Les bugs peuvent bloquer une machine
  • Il peut faire en temps réel et Planification prioritaire difficile
  • Mauvais temps de réponse pour les processus

Exemple de planification non préemptive

Dans la planification SJF non préemptive, une fois le cycle CPU alloué au processus, le processus le conserve jusqu'à ce qu'il atteigne un état d'attente ou se termine.

Considérez les cinq processus suivants, chacun ayant sa propre heure de rafale et son heure d'arrivée.

File d'attente de processus Temps de rafale Heure d'arrivée
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Étape 0) Au temps = 0, P4 arrive et démarre l'exécution.

Exemple de planification non préemptive

Étape 1) Au temps = 1, le processus P3 arrive. Mais P4 a encore besoin de 2 unités d’exécution pour être complété. L'exécution se poursuivra.

Exemple de planification non préemptive

Étape 2) Au temps =2, le processus P1 arrive et est ajouté à la file d'attente. P4 poursuivra son exécution.

Exemple de planification non préemptive

Étape 3) Au temps = 3, le processus P4 terminera son exécution. Le temps de rafale de P3 et P1 est comparé. Le processus P1 est exécuté car son temps de rafale est inférieur à celui de P3.

Exemple de planification non préemptive

Étape 4) Au temps = 4, le processus P5 arrive et est ajouté à la file d'attente. P1 poursuivra l'exécution.

Exemple de planification non préemptive

Étape 5) Au temps = 5, le processus P2 arrive et est ajouté à la file d'attente. P1 poursuivra l'exécution.

Exemple de planification non préemptive

Étape 6) Au temps = 9, le processus P1 terminera son exécution. Le temps de rafale de P3, P5 et P2 est comparé. Le processus P2 est exécuté car son temps de rafale est le plus faible.

Exemple de planification non préemptive

Étape 7) Au temps = 10, P2 est en cours d'exécution et P3 et P5 sont dans la file d'attente.

Exemple de planification non préemptive

Étape 8) Au temps = 11, le processus P2 terminera son exécution. Le temps de rafale de P3 et P5 est comparé. Le processus P5 est exécuté car son temps de rafale est inférieur.

Exemple de planification non préemptive

Étape 9) Au temps = 15, le processus P5 terminera son exécution.

Exemple de planification non préemptive

Étape 10) Au temps = 23, le processus P3 terminera son exécution.

Exemple de planification non préemptive

Étape 11) Calculons le temps d'attente moyen pour l'exemple ci-dessus.

Wait time 
P4= 0-0=0
P1=  3-2=1
P2= 9-5=4
P5= 11-4=7
P3= 15-1=14
Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2

Exemple de planification préventive

Considérez ceci en suivant trois processus dans Tournoi à la ronde

File d'attente de processus Temps de rafale
P1 4
P2 3
P3 5

Exemple de planification préventive

Étape 1) L'exécution commence par le processus P1, qui a un temps de rafale de 4. Ici, chaque processus s'exécute pendant 2 secondes. P2 et P3 sont toujours dans la file d'attente.

Exemple de planification préventive

Étape 2) Au temps =2, P1 est ajouté à la fin de la file d'attente et P2 commence à s'exécuter

Exemple de planification préventive

Étape 3) À time=4 , P2 est préempté et ajouté à la fin de la file d'attente. P3 commence à s'exécuter.

Exemple de planification préventive

Étape 4) À time=6 , P3 est préempté et ajouté à la fin de la file d'attente. P1 commence à s'exécuter.

Exemple de planification préventive

Étape 5) À time=8 , P1 a un temps de rafale de 4. Son exécution est terminée. P2 commence l'exécution

Exemple de planification préventive

Étape 6) P2 a un temps de rafale de 3. Il s'est déjà exécuté pendant 2 intervalles. Au temps = 9, P2 termine l'exécution. Ensuite, P3 commence l’exécution jusqu’à la fin.

Exemple de planification préventive

Étape 7) Calculons le temps d'attente moyen pour l'exemple ci-dessus.

Wait time 
P1= 0+ 4= 4
P2= 2+4= 6
P3= 4+3= 7

Résumez cet article avec :