Différence entre la planification préemptive et non préemptive dans les systèmes d'exploitation

Ordonnancement du processeur (ou Planification de la CPU) détermine quels processus sont affectés à la CPU et supprimés de celle-ci, en fonction de modèles de planification tels que Préemptif et Planification non préemptive (aussi connu sous le nom Calendrier des coopératives).

Les systèmes plus anciens pouvaient fonctionner en mode autonome simple, mais avec le besoin croissant de systèmes réactifs et flexibles, ainsi que de la virtualisation, la gestion multitraitement efficace permet de répondre rapidement à toutes les demandes de traitement de tâches..

Les unités de planification sont souvent appelées tâche et c'est le travail du planificateur d'exécuter et de gérer ces tâches chaque fois que nécessaire; le planificateur sélectionne la tâche à supprimer et à affecter à la CPU pour traitement, en fonction du modèle de planification utilisé.

Comment le planificateur sait-il quelles tâches sont prioritaires??

Le planificateur doit exécuter un processus de sélection juste et efficace, tenant compte des demandes de traitement variables et dynamiques, et tirant le meilleur parti des cycles de la CPU..

Les tâches peuvent avoir deux états pendant le traitement:

  1. Dans un CPU Burst où la CPU effectue des calculs pour traiter la tâche (la période d'une rafale de CPU varie d'une tâche à l'autre et d'un programme à l'autre).
  2. Dans un Burst d'entrée / sortie (I / O) attendre que les données soient reçues ou envoyées par le système.

Lorsque le processeur est inactif, le planificateur lit le File d'attente prête, et sélectionne la prochaine tâche à exécuter. Ensuite, c'est le Répartiteur cela donne à la tâche sélectionnée le contrôle de la CPU, il faut donc qu'elle soit rapide! Tout temps pris par le Dispatcher est appelé Latence d'expédition.

Il existe différentes structures et paramètres personnalisés pour définir la File d'attente prête, ainsi que plusieurs méthodes pouvant être utilisées pour gérer les complexités du processus de planification.

Généralement, il s’agit d’optimiser et de maximiser l’utilisation de la CPU, le débit, etc..

Le planificateur doit prendre une décision au cours de l’une des étapes suivantes:

  1. Quand la tâche change d'un Fonctionnement à un État d'attente (par exemple, attendre pendant une requête d'E / S).
  2. Quand la tâche change de Fonctionnement à Prêt (par exemple répondre à une interruption).
  3. Quand la tâche change de Attendre à Prêt (par exemple une demande d'E / S est complétée).
  4. Quand le Tâche

Une nouvelle tâche doit être sélectionnée si les étapes 1 ou 4 surviennent pour garantir une utilisation optimale de la CPU. Si les étapes 2 et 3 sont également exécutées, la tâche peut continuer à s'exécuter ou si une nouvelle tâche est sélectionnée..

Après avoir compris comment une tâche est traitée, examinons deux modèles de planification traitant des interruptions de la CPU..

Les deux ont des fonctionnalités similaires avec des tâches, états de tâches, files d'attente et priorités (statiques ou dynamiques):

  • Planification non préemptive est le moment où une tâche s'exécute jusqu'à ce qu'elle s'arrête (volontairement) ou se termine. La planification non préemptive de Windows® était antérieure à Windows 3.x, après quoi elle est passée à Preemptive à partir de Windows 95..
  • Planification Préemptive est l'endroit où une tâche peut être suspendue de force par une interruption de la CPU, contrairement à Non-Preemptive où la tâche est exécutée jusqu'à ce qu'elle libère le contrôle de la CPU.

Planification non préemptive

Les tâches d'un système non préemptif seront exécutées jusqu'à leur achèvement..

Le planificateur vérifie ensuite l’état de toutes les tâches et planifie la tâche suivante avec la priorité la plus élevée. Prêt Etat.

Avec la planification non préemptive, une fois qu'une tâche est affectée à la CPU, elle ne peut pas être supprimée, même si des tâches courtes doivent attendre que des tâches plus longues soient terminées..

La gestion de la planification de toutes les tâches est «juste» et les temps de réponse sont prévisibles, car les tâches hautement prioritaires ne peuvent pas déplacer les tâches en attente plus loin dans la file d'attente..

Le planificateur veille à ce que chaque tâche reçoive sa part du processeur, évitant ainsi tout délai avec n'importe quelle tâche. La "quantité de temps" allouée à la CPU peut ne pas être nécessairement égale, car elle dépend du temps que la tâche prend pour terminer..

Planification Préemptive

Ce modèle de planification permet d'interrompre des tâches - contrairement à la planification non préemptive qui a une approche «d'exécution à terme»..

Les interruptions, qui peuvent être lancées à partir d'appels externes, invoquent le planificateur pour suspendre une tâche en cours d'exécution afin de gérer une autre tâche de priorité plus élevée - afin que le contrôle de la CPU puisse être préempté..

La tâche la plus prioritaire dans un Prêt l'état est exécuté, permettant une réponse rapide aux événements en temps réel.

Certains des inconvénients de la planification préemptive impliquent l’augmentation des frais généraux liés aux ressources lors de l’utilisation d’interruptions. Des problèmes peuvent survenir lors du partage de données, car l’une peut être interrompue lors de la mise à jour de structures de données partagées et peut affecter négativement l’intégrité des données..

D'autre part, il est pratique de pouvoir suspendre une tâche pour en gérer une autre qui pourrait être critique.

En résumé

De nombreux écarts et dépendances dans différentes stratégies peuvent être définis, tels que l’utilisation d’un «Politique du tournoi à la ronde [i]» où chaque tâche (avec une priorité égale) s'exécute une fois, puis est placée à la fin de la file d'attente pour le cycle suivant.

Les autres politiques comprennent Premier entré, premier sorti, Le plus court-emploi-premier, Shortest-Job-Next, Temps restant le plus court, etc.

L'analyse des données historiques peut fournir des informations sur des aspects, tels que la vitesse à laquelle les nouvelles tâches arrivent, la CPU et les rafales d'E / S, etc., de sorte que les distributions de probabilité puissent calculer les caractéristiques des temps d'attente des tâches, fournissant ainsi aux administrateurs des données pertinentes pour définir des modèles de planification..