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

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

Planification du processeur (ou Planification du processeur) détermine à quels processus sont attribués et retirés du CPU, en fonction de modèles de planification tels que Préemptif et Planification non préemptionnelle (aussi connu sous le nom Planification coopérative).

Les systèmes plus anciens pourraient fonctionner dans des modes autonomes simples, mais avec le besoin croissant de systèmes réactifs et flexibles, ainsi que de la virtualisation, la gestion de multi-processus multiples fournit efficacement une réponse rapide à toutes les demandes de traitement des 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 attribuée au CPU pour le traitement, selon le modèle de planification utilisé.

Comment le planificateur sait-il quelles tâches sont la priorité?

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

Les tâches peuvent être dans deux États pendant le traitement:

  1. Dans un Rafale de processeur Lorsque le CPU effectue des calculs pour traiter la tâche (la période pour une rafale de CPU varie d'une tâche à l'autre, et du programme à un programme).
  2. Dans un Entrée / sortie (E / S) Bol En attendant que les données soient reçues ou envoyées du système.

Lorsque le processeur est inactif, le planificateur lit le File d'attente prête, et sélectionne la tâche suivante à exécuter.  Ensuite, c'est le Répartiteur Cela donne le contrôle de la tâche sélectionné du CPU, il doit donc être rapide!  Tout temps repris par le répartiteur est connu comme Latence de répartition.

Il existe différentes structures et paramètres personnalisés pour définir le File d'attente prête, ainsi que plusieurs méthodes qui peuvent ê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 du processeur, le débit, etc.

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

  1. Lorsque la tâche change par En cours à un État d'attente (par exemple, en attente lors d'une demande d'E / S).
  2. Lorsque la tâche change de En cours pour Prêt (par exemple en répondant à une interruption).
  3. Lorsque la tâche change de En attendant pour Prêt (par exemple, une demande d'E / S est terminée).
  4. Quand le Tâche

Une nouvelle tâche doit être sélectionnée si les étapes 1 ou 4 s'assurent pour garantir une utilisation complète du CPU, et à la fois 2 et 3, la tâche peut continuer à fonctionner ou une nouvelle est sélectionnée.

Après avoir compris comment une tâche est traitée, examinons deux modèles de planification qui traitent des interruptions du processeur.

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

  • Planification non préemptionnelle c'est quand une tâche s'exécute jusqu'à ce qu'elle s'arrête (volontairement) ou finit. Windows® avait une planification non préemptive jusqu'à Windows 3.x, après quoi il a changé pour préemptif de Windows 95.
  • Planification préemptive est là qu'une tâche peut être suspendue de force par une interruption du processeur, contrairement à la non-préemption où la tâche s'exécute jusqu'à ce qu'elle libère le contrôle du processeur.

Planification non préemptionnelle

Les tâches d'un système non préemptif fonctionneront jusqu'à terminer.

Le planificateur vérifie ensuite tous les états de tâches et planifie la tâche de priorité la plus élevée suivante avec un Prêt État.

Avec une planification non préemptive, une fois qu'une tâche a sa mission au CPU, elle ne peut être enlevée, même si les tâches courtes doivent attendre des tâches plus longues pour terminer.

La gestion de la planification à toutes les tâches est «juste» et les temps de réponse sont prévisibles car les tâches de grande priorité ne peuvent pas augmenter les tâches d'attente plus loin dans la file d'attente.

Le planificateur garantit que chaque tâche obtient sa part du CPU, en évitant tout délai avec toute tâche.  Le «temps» alloué au CPU ne peut pas nécessairement être égal, car cela dépend de la durée de la tâche pour terminer.

Planification préemptive

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

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

La tâche la plus élevée 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 à planification préemptive impliquent l'augmentation des frais généraux sur les ressources lors de l'utilisation d'interruptions et de problèmes peuvent survenir avec deux tâches partageant des données, car on peut être interrompu lors de la mise à jour des structures de données partagées, et pourrait affecter négativement l'intégrité des données.

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

En résumé

De nombreuses variances et dépendances dans différentes politiques peuvent être définies, comme l'utilisation d'un «Politique de la ronde [i]» où chaque tâche (avec une priorité égale) fonctionne une fois, puis placée à la fin de la file d'attente, pour le cycle suivant.

D'autres politiques incluent Premier entré, premier sorti, Le plus court-premier, Le plus court-travail, Le plus court temps restant, etc.

L'analyse des données historiques peut fournir des informations sur les aspects, comme la vitesse à laquelle les nouvelles tâches arrivent, les éclats du processeur et des E / S, etc. afin que les distributions de probabilité puissent calculer les caractéristiques des temps d'attente des tâches, arminant ainsi les administrateurs avec des données pertinentes pour définir des modèles de planification.