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.
- L'
-
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' /
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
Nous avons vu qu'il existait deux types d'ordonnancement différents :
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
- 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)
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⚓︎
- Processus dans un Système d'Exploitation, Renaud Lachaize, maître de conférences à l'Université Grenoble Alpes
- Utilité de la mémoire virtuelle, Renaud Lachaize
- Ordonnancement des Processus, Lilia Sfaxi, maître assistante à l'Institut National des Sciences Appliquées et de Technologie (INSAT) en Tunisie, et chercheuse au laboratoire LIPSIC
- Cours Systèmes d'Exploitation, Complet, Lilia Sfaxit
Références⚓︎
Notes⚓︎
-
Algorithmes d'Ordonnancement, wikipedia
, Scheduling Algorithms, wikipedia
↩
-
What is Burst Time, Arrival Time, Exit Time, .., by After Academy ↩
-
Wikipedia : Throughput
, Throughput
↩
-
Ordonnancement : Algorithme de Priorité/Earliest Deadline First (EDF) ↩
-
Ordonnancement de Processus, Pierre Antoine Champin, LIRIS, CNRS ↩