Système d'exploitation - Planification des processus

Définition

La planification de processus est l'activité du gestionnaire de processus qui gère la suppression du processus en cours de la CPU et la sélection d'un autre processus sur la base d'une stratégie particulière.

La planification des processus est une partie essentielle d'un système d'exploitation multiprogrammation. Ces systèmes d'exploitation permettent à plus d'un processus d'être chargé dans la mémoire exécutable à la fois et le processus chargé partage la CPU en utilisant le multiplexage temporel.

Files d'attente de planification de processus

Le système d'exploitation gère tous les PCB dans les files d'attente de planification de processus. Le système d'exploitation maintient une file d'attente distincte pour chacun des états de processus et les PCB de tous les processus dans le même état d'exécution sont placés dans la même file d'attente. Lorsque l'état d'un processus est modifié, son PCB est dissocié de sa file d'attente actuelle et déplacé vers sa nouvelle file d'attente d'état.

Le système d'exploitation gère les files d'attente de planification de processus importantes suivantes:

  • Job queue - Cette file d'attente conserve tous les processus du système.

  • Ready queue- Cette file d'attente conserve un ensemble de tous les processus résidant dans la mémoire principale, prêts et en attente d'exécution. Un nouveau processus est toujours placé dans cette file d'attente.

  • Device queues - Les processus bloqués en raison de l'indisponibilité d'un périphérique d'E / S constituent cette file d'attente.

Le système d'exploitation peut utiliser différentes politiques pour gérer chaque file d'attente (FIFO, Round Robin, Priority, etc.). Le planificateur du système d'exploitation détermine comment déplacer les processus entre les files d'attente prêtes et exécutées qui ne peuvent avoir qu'une entrée par cœur de processeur sur le système; dans le diagramme ci-dessus, il a été fusionné avec le CPU.

Modèle de processus à deux états

Le modèle de processus à deux états fait référence aux états en cours d'exécution et non en cours d'exécution qui sont décrits ci-dessous -

SN État et description
1

Running

Lorsqu'un nouveau processus est créé, il entre dans le système comme dans l'état en cours d'exécution.

2

Not Running

Les processus qui ne sont pas en cours d'exécution sont mis en file d'attente, attendant leur tour pour s'exécuter. Chaque entrée de la file d'attente est un pointeur vers un processus particulier. La file d'attente est implémentée à l'aide de la liste liée. L'utilisation du répartiteur est la suivante. Lorsqu'un processus est interrompu, ce processus est transféré dans la file d'attente. Si le processus est terminé ou abandonné, le processus est ignoré. Dans les deux cas, le répartiteur sélectionne ensuite un processus dans la file d'attente à exécuter.

Planificateurs

Les ordonnanceurs sont des logiciels système spéciaux qui gèrent la planification des processus de diverses manières. Leur tâche principale est de sélectionner les travaux à soumettre dans le système et de décider du processus à exécuter. Les planificateurs sont de trois types -

  • Planificateur à long terme
  • Planificateur à court terme
  • Planificateur à moyen terme

Planificateur à long terme

Il est également appelé un job scheduler. Un planificateur à long terme détermine quels programmes sont admis dans le système pour traitement. Il sélectionne les processus de la file d'attente et les charge en mémoire pour exécution. Processus charge dans la mémoire pour la planification du processeur.

L'objectif principal du planificateur de travaux est de fournir un mélange équilibré de travaux, tels que les E / S liées et le processeur. Il contrôle également le degré de multiprogrammation. Si le degré de multiprogrammation est stable, alors le taux moyen de création de processus doit être égal au taux de départ moyen des processus quittant le système.

Sur certains systèmes, le planificateur à long terme peut ne pas être disponible ou minimal. Les systèmes d'exploitation à temps partagé n'ont pas de planificateur à long terme. Lorsqu'un processus change l'état de nouveau à prêt, alors il y a utilisation du planificateur à long terme.

Planificateur à court terme

Il est également appelé comme CPU scheduler. Son objectif principal est d'augmenter les performances du système conformément à l'ensemble de critères choisi. Il s'agit du passage de l'état prêt à l'état d'exécution du processus. Le planificateur de CPU sélectionne un processus parmi les processus prêts à être exécutés et alloue le CPU à l'un d'entre eux.

Les planificateurs à court terme, également appelés répartiteurs, décident du processus à exécuter ensuite. Les planificateurs à court terme sont plus rapides que les planificateurs à long terme.

Planificateur à moyen terme

La planification à moyen terme fait partie de swapping. Il supprime les processus de la mémoire. Cela réduit le degré de multiprogrammation. L'ordonnanceur à moyen terme est en charge de gérer les out-process échangés.

Un processus en cours d'exécution peut être suspendu s'il fait une demande d'E / S. Un processus suspendu ne peut pas progresser vers l'achèvement. Dans cette condition, pour supprimer le processus de la mémoire et libérer de l'espace pour d'autres processus, le processus suspendu est déplacé vers le stockage secondaire. Ce processus s'appelleswapping, et on dit que le processus est échangé ou déployé. Un échange peut être nécessaire pour améliorer le mélange de processus.

Comparaison entre Scheduler

SN Planificateur à long terme Planificateur à court terme Planificateur à moyen terme
1 C'est un planificateur de travaux C'est un ordonnanceur CPU C'est un planificateur de permutation de processus.
2 La vitesse est inférieure à celle du planificateur à court terme La vitesse est la plus rapide parmi les deux autres La vitesse se situe entre le planificateur à court et à long terme.
3 Il contrôle le degré de multiprogrammation Il offre moins de contrôle sur le degré de multiprogrammation Cela réduit le degré de multiprogrammation.
4 Il est presque absent ou minimal dans le système de partage de temps Il est également minimal dans le système de partage de temps Cela fait partie des systèmes de partage du temps.
5 Il sélectionne les processus du pool et les charge en mémoire pour exécution Il sélectionne les processus qui sont prêts à s'exécuter Il peut réintroduire le processus en mémoire et l'exécution peut être poursuivie.

Changement de contexte

Un changement de contexte est le mécanisme permettant de stocker et de restaurer l'état ou le contexte d'une CPU dans le bloc de contrôle de processus afin qu'une exécution de processus puisse être reprise à partir du même point ultérieurement. En utilisant cette technique, un sélecteur de contexte permet à plusieurs processus de partager un seul processeur. La commutation de contexte est une partie essentielle des fonctionnalités d'un système d'exploitation multitâche.

Lorsque le planificateur fait passer la CPU de l'exécution d'un processus à un autre, l'état du processus en cours d'exécution est stocké dans le bloc de contrôle de processus. Après cela, l'état du processus à exécuter ensuite est chargé à partir de son propre PCB et utilisé pour définir le PC, les registres, etc. À ce stade, le deuxième processus peut commencer à s'exécuter.

Les commutateurs de contexte sont gourmands en calcul car l'état du registre et de la mémoire doit être sauvegardé et restauré. Pour éviter la quantité de temps de changement de contexte, certains systèmes matériels utilisent deux ou plusieurs ensembles de registres de processeur. Lorsque le processus est commuté, les informations suivantes sont stockées pour une utilisation ultérieure.

  • Compteur de programme
  • Informations de planification
  • Valeur du registre de base et limite
  • Registre actuellement utilisé
  • État changé
  • Informations sur l'état des E / S
  • Information comptable