Dans la planification non préemptive, une fois qu'un processus commence son exécution, il ne peut pas être préempté par un autre processus avant de terminer son exécution ou de libérer volontairement le processeur.
Voici comment fonctionnent les algorithmes non préemptifs :
1. Sélection du processus :
- Le planificateur sélectionne le prochain processus à exécuter en fonction de politiques de planification telles que le premier arrivé, premier servi (FCFS), le travail le plus court en premier (SJF) ou tout autre algorithme de planification.
2. Exécution non-interruptible :
- Une fois qu'un processus commence à s'exécuter, il ne peut pas être interrompu par un autre processus. Cela signifie que le processus sélectionné continuera à s'exécuter jusqu'à ce qu'il termine son exécution ou abandonne volontairement le processeur (par exemple, en effectuant une opération d'E/S).
3. Aucune préemption :
- Pendant l'exécution du processus en cours, aucun autre processus ne peut lui retirer le processeur. Cela garantit que les processus se terminent sans être interrompus par des processus plus prioritaires.
4. Achèvement :
- Le processus continue d'exécuter ses instructions jusqu'à ce qu'il termine son exécution ou atteigne un état où il est bloqué (en attente d'E/S ou d'une ressource). Une fois le processus terminé, le processeur est disponible pour planifier le processus suivant.
Les algorithmes de planification non préemptifs sont plus simples à mettre en œuvre que les algorithmes préemptifs car ils ne nécessitent pas de changements de contexte fréquents. Cependant, ils peuvent conduire à une efficacité moindre du système et à des performances sous-optimales, car les processus plus prioritaires peuvent devoir attendre que des processus moins prioritaires terminent leur exécution.
Voici des exemples d'algorithmes de planification non préemptifs :
- Premier arrivé, premier servi (FCFS) : Les processus sont exécutés dans l'ordre dans lequel ils arrivent, sans tenir compte de leur priorité ou des besoins en ressources.
- Shortest Job First (SJF) sans préemption : Cet algorithme sélectionne le processus avec le temps d'exécution estimé le plus court pour l'exécution suivante. Cependant, une fois que l'exécution du processus commence, il ne peut pas être préempté par un autre processus, même si ce dernier arrive plus tard avec un temps d'exécution estimé plus court.
|