La différence entre la « préemption » et la « planification non préemptive » réside dans le fait que la planification non préemptive occupe le contrôle total du processeur, tandis que la planification préemptive permet au système d'exploitation (OS) de l'ordinateur de contrôler les états des processus. Cela peut aider à comprendre un peu les différents états d'un processus informatique :
Il y a cinq états par lesquels un processus passe au cours de son cycle ;
- Nouveau - Lorsqu'un processus est activé ou créé pour la première fois, comme lors du lancement d'un logiciel (nous nous en tiendrons à cet exemple tout au long de cette explication).
- Prêt - Lorsque le programme est prêt à être affecté au processeur.
- En cours d'exécution - Lorsque le programme est en cours d'exécution, il est appelé « en cours d'exécution ».
- En attente - Le processus ici est en veille et attend la communication d'autres processus.
- Terminé - Le terme utilisé lorsque le processus exécuté est terminé.
La planification préemptive se produit lorsqu'un processus informatique est interrompu et que la puissance du processeur est transférée à un autre processus avec une priorité plus élevée. Ce type de planification se produit lorsqu'un processus passe de l'état d'exécution à un état prêt ou d'un état d'attente à un état prêt.
- Planification non préemptive
La planification non préemptive permet au processus de se terminer avant de passer à la tâche suivante.
Voici un exemple de l'ancienne planification préemptive - si vous lancez une application logicielle telle qu'un éditeur de texte, le système d'exploitation assignera la tâche au processeur et allouera de l'espace disque, de la mémoire et d'autres ressources au programme ; le programme d'édition de texte est maintenant en cours d'exécution. Si vous décidez de lancer une deuxième application et qu'un nouveau processus est généré, diverses ressources nécessaires sont affectées au nouveau programme et l'éditeur de texte est maintenu dans un état d'attente ou prêt jusqu'à ce que le nouveau processus soit exécuté.