Différence entre ordonnancement préemptif et non préemptif
C’est la responsabilité de l’ordonnanceur d’attribuer un processus à l’unité centrale lorsque l’unité centrale est à l’état inactif. L’ordonnanceur sélectionne un processus de la file d’attente prête et en alloue au CPU. L’ordonnancement qui a lieu lorsqu’un processus passe de l’état en cours à l’état prêt ou de l’état d’attente à l’état prêt est appelée ordonnancement préemptive. L’ordonnancement qui a lieu lorsqu’un processus se termine ou passe de l’exécution à l’attente ce type d’ordonnancement est appelée ordonnancement non préemptive.
La différence clé entre l‘ordonnancement préemptif et non préemptif réside dans le nom même. Un ordonnancement préemptif peut être préempté; les processus peuvent être planifiés. Dans l’ordonnancement non préemptive, les processus ne peuvent pas être planifiés.
Différences clés entre l’ordonnancement préemptif et non préemptif
- Dans l’ordonnancement préemptif, le CPU est allouée aux processus pour une durée limitée. Dans l‘ordonnancementnon préemptif, le CPU est allouée au processus jusqu’à ce qu’elle se termine ou passe en état d’attente.
- Le processus d’exécution dans l’ordonnancement préemptif est interrompu au milieu de l’exécution, tandis que le processus d’exécution dans l’ordonnancement non préemptif n’est pas interrompu au milieu de l’exécution.
- L’ordonnancement préemptif a pour objectif de faire passer le processus de l’état prêt à l’état en cours et de maintenir la file d’attente prête. Tandis que, l’ordonnancement non préemptif n’a pas besoin de basculer le processus de l’état en cours à l’état prêt.
- Dans l’ordonnancement préemptif, si un processus avec une haute priorité arrive fréquemment dans la file d’attente prête alors le processus avec une faible priorité doit attendre longtemps, et il peut mourir de faim. Alors, dans l’ordonnancement non préemptif, si le CPU est allouée au processus avec un temps de rafale plus important, alors les processus avec un petit temps de rafale peuvent avoir à mourir de faim.
- L’ordonnancement préemptif est assez flexible car les processus critiques sont autorisés à accéder au processeur dès qu’ils arrivent dans la file d’attente prête, quel que soit le processus en cours d’exécution. L’ordonnancement non préemptif est rigide car même si un processus critique entre dans la file d’attente prête, le processeur qui exécute le processus n’est pas perturbé.
- L’ordonnancement préemptif est associer aux coûts car elle doit maintenir l’intégrité des données partagées, ce qui n’est pas le cas avec l’ordonnancement non préemptif.
Conclusion
Ce n’est pas que l’ordonnancement préemptif est meilleur que l’ordonnancement non préemptif ou l’inverse. Tout dépend de la façon dont une planification minimise le temps d’attente moyen des processus et maximise l’utilisation du processeur.