Aller au contenu

TNSI : Processus - Ordonnancement⚓︎

Quel rôle joue le Système d'Exploitation dans la gestion des Processus?

Le Rôle du Système d'Exploitation⚓︎

Le Système d'Exploitation, au travers de son noyau 🇫🇷 / kernel 🇬🇧, s'occupe de :

  • Décider quels processus doivent être lancés/créés. Plus précisément :

    • L'ordonnanceur 🇫🇷 / scheduler 🇬🇧 :
      • gère une file de processus Prêts, et
      • gère une file des processus Bloqués.
    • Le répartiteur 🇫🇷 / dispatcher 🇬🇧 alloue, quant à lui, un processeur à l'élu dans le cas d'une architecture multiprocesseur.
  • interrompre des processus, grâce à des mécanismes appelés interruptions. Lors d'une interruption, le processeur enregistre tout ou une partie de son état interne, généralement dans la pile système, et exécute ensuite une routine d'interruption, généralement en suivant les directives d'une table indiquant pour chaque type d'interruption, le sous-programme à exécuter.

  • supprimer des processus

Plusieurs processus peuvent se trouver en mémoire centrale en même temps.

Je retiens

Il revient au Système d'Exploitation de réserver de la mémoire pour les processus, de planifier leur exécution, de résoudre les problèmes éventuels entre eux (cf. interblocages/deadlocks, famines, etc..) et d'assurer les communications entre eux.

L'Ordonnanceur / Scheduler⚓︎

Scheduler / Ordonnanceur

L' Ordonnanceur 🇫🇷 / Scheduler 🇬🇧 est le module (lui-même un processus) du Système d'Exploitation qui se charge d'organiser l'exécution des processus à tour de rôle: il les ordonne, en leur octroyant un peu de temps d'accès/utilisation processeur (quantum de temps), en tenant compte des priorités, des débordements et des changements de contexte.

Quantum de Temps

Un Quantum de Temps est le plus petit temps d'exécution que l'OS peut attribuer à un processus. C'est une valeur qui change peu. Un processus peut se voir allouer de \(1\) à \(n\) quantum de temps successifs. Typiquement, un quantum de temps dure \(20\) à \(50\) ms (millisecondes) selon les OS et les algorithmes d'ordonnancement utilisés.

Nous avons vu qu'il existait deux types d'ordonnancement différents : préemptif, ou non préemptif. Les deux existent :

Ordonnancement Préemptif vs Non Préemptif

Selon que l'opération de préemption (réquisition) du processeur est autorisée ou non, l'ordonnancement est dit préemptif ou non préemptif :

  • si l'ordonnancement est préemptif, la transition de l'état élu vers l'état prêt est autorisée : un processus quitte le processeur si il a terminé son exécution , si il se bloque ou si le processeur est réquisitionné. Un processus préemptible peut être interrompu au profit d'un processus ou d'une interruption.
  • si l'ordonnancement est non préemptif, la transition de l'état élu vers l'état prêt est interdite : un processus quitte le processeur si il a terminé son exécution ou si il se bloque. Un processus préemptible peut être interrompu uniquement au profit d'une interruption. Le temps qui lui est accordé est plus long, et l'attente plus courte.

L'ordonnanceur7 :

  • gère une file des processus Prêts, qui est classée selon une Politique d'Ordonnancement qui assure que le processus en tête de file est le prochain processus à élire, au regard de la politique mise en oeuvre.
  • gère une file de processus Bloqués

Ces classements sont effectués par l' ordonnanceur et sont réactualisés à chaque fois qu'un processus est préempté ou qu'un processus est débloqué (ajout d'un nouvel élément prêt)

Ordonnanceur (préemptif) et Répartiteur, dans un Sytème Multiprocesseur

Le Répartiteur / Dispatcher⚓︎

C'est le répartiteur qui élit le processus en tête de file, c'est-à-dire qui lui alloue un processeur libre :

  • Dans un système multiprocesseur, c'est le répartiteur qui doit alors choisir quel processeur allouer.
  • Dans un système monoprocesseur, cette question ne se pose évidemment pas et souvent alors, ordonnanceur et répartiteur sont confondus.

Une fois élu par le répartiteur, le processus s'exécute dans un processeur.

  • S'il quitte le processeur, sur préemption, il réintègre la file des processus prêts
  • au contraire, s'il quitte le processeur sur un blocage, il intègre la file des processus bloqués.

Dans les deux cas, un nouveau processus est élu (la tête de file des processus prêts). Plus précisément, la file d'attente des processus bloqués est souvent organisée en files multiniveaux, chaque niveau correspondant à une attente d'un événement/ ressource particulier auquel peut être éventuellement associé une priorité. Dans le cas où des événements se produisent simultanément, cette priorité sert alors à déterminer quel événement doit être traité en premier.

Références et Notes⚓︎

Vidéos YouTube⚓︎

Références⚓︎

Notes⚓︎