Hiram
Pour comprendre le concept d'ordonnancement préemptif et non préemptif, il est nécessaire de mentionner les circonstances dans lesquelles les décisions d'ordonnancement CPU peuvent avoir lieu. Ces quatre circonstances sont indiquées ci-dessous.
(1) Lorsqu'un processus entre dans l'état d'attente à partir de l'état d'exécution.
(2) Lorsqu'un processus passe à l'état prêt à partir de l'état d'attente.
(3) Lorsqu'un processus passe à l'état prêt à partir de l'état en cours d'exécution.
(4) Lorsqu'un processus se termine.
Si nous prêtons attention à ces quatre circonstances, nous arrivons au point où un nouveau processus doit s'exécuter car il n'y a aucune chance d'ordonnancement dans les circonstances un et quatre, mais il existe un choix d'ordonnancement entre les circonstances deux et trois.
Un schéma d'ordonnancement est dit non préemptif s'il a lieu dans les circonstances un et quatre et un schéma d'ordonnancement est dit préemptif, s'il a lieu dans les circonstances 2 et 3. Solaris 2 et Windows 2000 où les deux systèmes programment des threads en utilisant la préemption, algorithmes de planification basés sur la priorité, y compris les supports pour les threads en temps réel.
La planification préventive a un inconvénient. Supposons que deux processus partagent des données. Un processus met à jour les données et il est préempté au milieu de son travail et le deuxième processus démarre. Le deuxième processus essaie de lire les données qui étaient mises à jour par le processus 1, mais le processus 1 a été préempté. Cela signifie que le processus 2 essaie d'accéder aux données qui sont dans un état incohérent.
Aube
Il existe quatre conditions dans lesquelles la planification de la CPU peut avoir lieu. Ce sont : 1. Lorsqu'un processus passe de l'état d'exécution à l'état d'attente 2. Lorsqu'un processus passe de l'état d'exécution à l'état prêt 3. Lorsqu'un processus passe de l'état d'attente à l'état prêt 4. Lorsqu'un le processus se termine Si seules les conditions 1 et 4 s'appliquent, la planification est dite non préemptive. Toutes les autres planifications sont préemptives. La préemption signifie essentiellement qu'un processus peut être retiré de force de la CPU même s'il ne veut pas libérer la CPU, c'est-à-dire qu'il est toujours en cours d'exécution mais un processus de priorité plus élevée a besoin du CPU.Une fois qu'un processus obtient CPU-, l'approche la plus simple est de permettre au processus de continuer à utiliser le CPU jusqu'à ce qu'il cède volontairement le CPU, par exemple en demandant un transfert IO.Les interruptions d'E/S peuvent voler le CPU de temps en temps. Après chaque interruption, le contrôle revient au processus qui s'exécutait lorsqu'il s'est produit. C'est ce qu'on appelle une approche non préventive. Dans un schéma préemptif, un processus en cours d'exécution peut être forcé de céder le CPU (revenant ainsi à la liste prête) par un événement externe plutôt que par sa propre action. Ces événements externes peuvent être de l'un ou des deux types suivants : • Un processus de priorité plus élevée entre dans le système depuis l'extérieur. • Un processus de priorité plus élevée qui était dans l'état d'attente devient prêt. Cela peut se produire à la suite d'une interruption d'E/S qui déplace un processus en attente vers la liste des prêts.un processus en cours d'exécution peut être forcé de céder le CPU (revenant ainsi à la liste prête) par un événement externe plutôt que par sa propre action. Ces événements externes peuvent être de l'un ou des deux types suivants : • Un processus de priorité plus élevée entre dans le système depuis l'extérieur. • Un processus de priorité plus élevée qui était à l'état d'attente devient prêt. Cela peut se produire à la suite d'une interruption d'E/S qui déplace un processus en attente vers la liste des prêts.un processus en cours d'exécution peut être forcé de céder le CPU (revenant ainsi à la liste prête) par un événement externe plutôt que par sa propre action. Ces événements externes peuvent être de l'un ou des deux types suivants : • Un processus de priorité plus élevée entre dans le système depuis l'extérieur. • Un processus de priorité plus élevée qui était à l'état d'attente devient prêt. Cela peut se produire à la suite d'une interruption d'E/S qui déplace un processus en attente vers la liste des prêts.Cela peut se produire à la suite d'une interruption d'E/S qui déplace un processus en attente vers la liste des prêts.Cela peut se produire à la suite d'une interruption d'E/S qui déplace un processus en attente vers la liste des prêts.
Jerel
La plupart des systèmes d'exploitation ont environ trois types distincts d'ordonnanceurs, c'est-à-dire à long terme, à moyen terme et à court terme. Un ordonnanceur à court terme peut être préemptif, ce qui implique qu'il est capable de supprimer de force des processus d'une unité centrale de traitement (CPU) chaque fois qu'il décide d'allouer cette CPU particulière à un autre travail. Il peut également être non préemptif, auquel cas le planificateur à court terme ne pourra pas forcer tous les processus de travail à quitter cette unité centrale de traitement particulière.
Un planificateur de tâches n'est rien d'autre qu'une application logicielle d'entreprise. Il est en charge de toutes les exécutions en arrière-plan sans surveillance qui sont communément appelées traitement par lots. Les planificateurs de travaux d'aujourd'hui fournissent généralement une interface utilisateur graphique ainsi qu'un point de contrôle unique qui peut être utilisé à la fois pour la définition et la surveillance des exécutions en arrière-plan dans un réseau d'ordinateurs.
Kailey
Les planificateurs de CPU sont chargés d'allouer le CPU aux processus qui sont dans la mémoire et sont prêts à être exécutés. L'ordonnancement propose deux schémas différents.
L'un est Préemptif et l'autre Non Préemptif. Dans le
schéma préemptif , si un processus est exécuté par le CPU et qu'un autre processus arrive qui a un temps de rafale CPU inférieur au temps restant pour le processus en cours, alors le processus déjà en cours est préempté (bloqué) et le nouveau processus est exécuté . Ce schéma est également appelé Shortest Remaining Time First (SRTF)
Dans le
schéma non préemptif , une fois que l'allocation du processus a été effectuée, le processus ne peut pas être bloqué au milieu.