Vous êtes sur la page 1sur 38

Chapitre 4: Ordonnancement de

processus

1ère LEEA/LTIC
2021/2022

1
Plan
 Problématique

 L’ordonnancement : définition, rôle

 Stratégies d’ordonnancement

 Conclusion

2 Cours systèmes d'exploitation 21/12/2021


Problématique

3 Cours systèmes d'exploitation 21/12/2021


Problématique
 File des processus prêts

 Deux problèmes :

 Le choix du processus dans la file d’attente des processus à exécuter


 Le temps d’allocation du processeur au processus choisi

 L’ordonnanceur doit faire face à ces deux problèmes

4 Cours systèmes d'exploitation 21/12/2021


L’ordonnancement
 L’ordonnancement des processus est la base d’un système
d’exploitation multiprogrammé

 Plusieurs processus peuvent être prêts simultanément à


s’exécuter

 Le choix du processus à exécuter revient à l’ordonnanceur


(scheduleur)

 La stratégie utilisée dans ce cadre s’appelle algorithme


d’ordonnancement

5 Cours systèmes d'exploitation 21/12/2021


Les critères d’ordonnancement
 Un bon algorithme d’ordonnancement doit être capable de
 S'assurer que chaque processus en attente d'exécution reçoive sa part
de temps processeur : équité
 Utiliser le temps du processeur à 100% (au maximum) : efficacité
Le système perd son efficacité si le processeur passe trop de temps à attendre
des E/S
 Minimiser le temps de réponse aux processus interactifs la vitesse de
réaction aux interventions extérieures : Les programmes d'avant-plan
doivent pour cela avoir priorité sur les tâches de fond. temps de
réponse
 Minimiser le temps moyen qu'un processus passe à attendre: temps
d’attente
 Maximiser le nombre de travaux effectués dans un intervalle de
temps : rendement

6 Cours systèmes d'exploitation 21/12/2021


L’ordonnancement
 Les décisions d’ordonnancement peuvent avoir lieu dans l’une
des quatre circonstances suivantes

 Un processus commute de l’état en exécution vers l’état en


attente (requête E/S)
 Un processus commute de l’état en exécution vers l’état prêt
(quantum de temps utilisé)
 Un processus commute de l’état en attente vers l’état prêt
(terminaison d’une E/S)
 Un processus se termine

7 Cours systèmes d'exploitation 21/12/2021


Stratégies d’ordonnancement

 Ordonnancement sans réquisition (Non préemptif)


 Laisser finir la tâche

 Ordonnancement avec réquisition (Préemptif)


 Interrompre la tâche

 Ordonnancement avec priorité

8 Cours systèmes d'exploitation 21/12/2021


Ordonnancement
sans réquisition

9 Cours systèmes d'exploitation 21/12/2021


L’ordonnancement sans réquisition
 Cette stratégie s’oppose à la stratégie avec
réquisition puisqu’elle consiste à laisser finir la
tâche

 Les algorithmes d’ordonnancement sans


réquisition ne sont pas adaptés à un système multi-
utilisateur

10 Cours systèmes d'exploitation 21/12/2021


Ordonnancement sans réquisition
 Un processus se termine

 Un processus attend une E/S

→ L’ordonnanceur doit choisir un autre processus

 Deux algorithmes
 Premier arrivé, premier servi
 Le plus court d’abord (SJF)

11 Cours systèmes d'exploitation 21/12/2021


Premier arrivé premier servi
 Le plus simple des algorithmes d’ordonnancement

 Il peut être mis en œuvre simplement grâce à une file


d’attente FIFO

 Quand un processus rentre dans la file d’attente des


processus prêts, son PCB est enchaîné en queue de la file

 Dès que l’CPU est libre, elle est allouée au processus en tête
de file

12 Cours systèmes d'exploitation 21/12/2021


 Temps d’attente moyen = Temps
(0 + 24 + 27)/3 = 17 ms
 Le temps d’attente pour
l’allocation du processeur au
processus n’est pas optimal

13 Cours systèmes d'exploitation 21/12/2021


Le plus court d’abord (Shortest job first
(SJF))
 Affecte le processeur au processus possédant le plus court
temps d'exécution.

 Si deux processus ont la même longueur de cycle alors


l’algorithme FCFS est utilisé

14 Cours systèmes d'exploitation 21/12/2021


Le plus court d’abord (SJF)
 Temps d’attente moyen =
Temps
(0 + 3 + 6)/3 = 3ms
3
 Cet algorithme est optimal mais
c’est difficile de prévoir le temps 1
2

15 Cours systèmes d'exploitation 21/12/2021


Ordonnancement
avec réquisition

16 Cours systèmes d'exploitation 21/12/2021


L’ordonnancement avec réquisition
 Pour s’assurer qu’un processus ne prendra pas tout
le temps CPU, chaque ordinateur dispose d’une
horloge électronique qui génère une interruption
plusieurs fois par seconde

 A chaque interruption de l’horloge le noyau


reprend la main et décide si le processus doit
continuer ou donner la main

17 Cours systèmes d'exploitation 21/12/2021


L’ordonnancement avec réquisition
 Cette stratégie permettant de suspendre des
processus est appelé ordonnancement avec
réquisition

 Dans la stratégie avec réquisition, un processus


peut être interrompu à n’importe quel moment
pour laisser la place à un autre processus

18 Cours systèmes d'exploitation 21/12/2021


L’ordonnancement avec réquisition

 Le modèle de Tourniquet (RR)


 SRT - Shorted Remaining Time

19 Cours systèmes d'exploitation 21/12/2021


Le modèle Tourniquet (RR)
 L’un des algorithmes les plus anciens, les plus simples et les
plus fiables

 La file d’attente des processus prêts est traitée comme une


file FIFO (First In First Out)

 On définit une petite tranche de temps appelé Quantum

 Chaque processus est donc autorisé à s’exécuter pendant un


quantum de temps

20 Cours systèmes d'exploitation 21/12/2021


Le modèle Tourniquet (RR)
 Deux cas peuvent se produire

 Le processus utilise entièrement son Quantum de temps. Il est


donc placé en queue de file et on alloue le processeur au
processus en tête de file

 Le processus se termine ou est bloqué sur une E/S. Il est alors


placé dans une file d’attente adéquate et le processeur est alloué
au processus en tête de la file des processus prêts

21 Cours systèmes d'exploitation 21/12/2021


Le modèle Tourniquet (RR)
 Round Robin (circulaire)

22 Cours systèmes d'exploitation 21/12/2021


Le modèle Tourniquet (RR)
 Le principal problème de ce modèle est de fixer la
taille du quantum de temps

Exemple 1 : Quantum de temps trop court

 Quantum de temps 20ms


 Commutation de contexte 5ms
 25 % du temps est perdu
 Le dixième processus attend 9*25= 225 ms

 La perte de temps processeur est importante

 Mais le temps d’attente est réduit

23 Cours systèmes d'exploitation 21/12/2021


Le modèle Tourniquet (RR)
Exemple 1 : Quantum de temps trop court

24 Cours systèmes d'exploitation 21/12/2021


Le modèle Tourniquet (RR)
Exemple 2 : Quantum de temps trop long

 Quantum de temps 500ms


 Même temps pour la commutation de contexte 5ms
 Le temps perdu 1%
 Le dixième processus attend 9*505 soit plus 4,5s

 La perte de temps du processeur est réduite


 Mais le temps d’attente devient important

25 Cours systèmes d'exploitation 21/12/2021


Le modèle Tourniquet (RR)
Exemple 2 : Quantum de temps trop long

26 Cours systèmes d'exploitation 21/12/2021


Le modèle Tourniquet (RR)
 Il faut trouver un juste équilibre afin d’obtenir à la fin un
temps d’attente convenable et une perte de
temps processeur raisonnable

 Un quantum trop petit provoque trop de commutations


de processus et abaisse l'efficacité du processeur

 Un quantum trop élevé augmente le temps de réponse


des courtes commandes en mode interactif

27 Cours systèmes d'exploitation 21/12/2021


SRT - Shorted Remaining Time = l'algorithme du temps
restant le plus court
 C'est la version préemptive de l'algorithme SJF
 Chaque fois qu’un nouveau processus est introduit dans la file
des processus à ordonnancer, l’Ordonnanceur compare la
valeur estimée du temps de traitement restant à celle du
processus en cours d’ordonnancement. Si le temps de
traitement du nouveau processus est inférieur, le processus
en cours d’ordonnancement est préempte.
 Tout comme l’algorithme SJF, l’algorithme SRT favorise les
travaux courts : les travaux longs en revanche peuvent être
victimes de famine.

28 Cours systèmes d'exploitation 21/12/2021


Ordonnancement
avec priorité

29 Cours systèmes d'exploitation 21/12/2021


L’algorithme avec priorité
simple
 L'attribution de priorité à chaque processus.
 L'Ordonnanceur lance le processus prêt de priorité la plus
élevée. En cas de priorités égales on utilise l’algorithme FIFO.
 Algorithme avec ou sans réquisition
 Inconvénient

 L'ordonnancement avec priorité sans réquisition peut


engendrer un problème de famine puisque les processus
de faible priorité risquent d'attendre indéfiniment.
 Solution : technique du « vieillissement » (augmentation
progressive de la priorité des processus en attente) ou
bien la réquisition

30 21/12/2021
L’ordonnancement avec priorité
statique : File d’attente à multi niveaux
 L'algorithme round robin permet une répartition équitable du
processeur

 Cependant il n'est pas intéressant si certains processus sont plus


importants ou urgents que d'autres

 L'ordonnanceur à priorité attribue à chaque processus une


priorité

 Processus système plus prioritaires que processus interactifs


 Processus interactifs plus prioritaires que processus peu interactifs

31 Cours systèmes d'exploitation 21/12/2021


L’ordonnancement avec priorité
statique : File d’attente à multi niveaux
 Les processus de même priorité sont regroupés dans une file

 Il y a autant de files qu'il y a de niveaux de priorité : des


files d’attente à multi niveaux

 Découpage de la file d’attente des processus prêts en plusieurs


files (processus système, interactifs, arrière-plan etc.)
 Processus système plus prioritaires que processus interactifs
 Processus interactifs plus prioritaires que processus peu interactifs

 Chaque file d’attente possède son propre algorithme


d’ordonnancement (ex.Tourniquet ou FCFS)

32 Cours systèmes d'exploitation 21/12/2021


L’ordonnancement avec priorité
statique : File d’attente à multi niveaux
 Chaque file d’attente est absolument prioritaire par rapport à la file immédiatement
inférieure

 On risque d’avoir des processus de priorité élevée s'exécuter indéfiniment


 Pour qu’un processus de la file puisse s’exécuter il faut que tous les
processus des files plus prioritaires soient vides

→ Solution possible :

 Assigner une tranche de temps à chaque file


 OU…
Priorité dynamique

33 Cours systèmes d'exploitation 21/12/2021


Priorités dynamiques
Exemple
4
 Un processus rentre dans la file 4, il
dispose donc d’un quantum de
temps de 4ms 3

 Si au bout de ce temps, son 2


exécution n’est pas terminée, il
passe au queue de la file
1
immédiatement inférieure

34 Cours systèmes d'exploitation 21/12/2021


Priorités dynamiques

 Cet algorithme donne une priorité haute aux processus


effectuant beaucoup d’E/S

 Les processus les plus longs sont affectées aux files les plus basses

35 Cours systèmes d'exploitation 21/12/2021


Priorités dynamiques
 Pour définir ce type d’algorithmes, nous avons besoin des
paramètres suivants :
 Le nombre de files d’attente
 L’algorithme d’ordonnancement pour chaque file
 La méthode utilisée pour passer un processus à une file
supérieure
 La méthode utilisée pour passer un processus à une file
inférieure
 La méthode déterminant dans quel file doit rentrer un
processus utiliser

36 Cours systèmes d'exploitation 21/12/2021


Conclusion
 L’ordonnanceur doit faire face à deux problèmes
 Le choix du processus dans la file d’attente des processus à exécuter
 Le temps d’allocation du processeur au processus choisi
 Algorithme ou stratégies d’ordonnancement
 Sans réquisition : laisser finir
 Premier arrivé premier servie (FCFS)
 temps d’attente non optimal
 Le plus court d’abord (SJF)
 temps d’attente optimal
 Difficile de prévoir le temps
 Ordonnancement avec priorité simple

37 Cours systèmes d'exploitation 21/12/2021


Conclusion
 Avec réquisition : interrompre les processus en cours d’exécution
 Le modèle de Tourniquet (RR)
 Répartition équitable du processeur
 Problème : fixer la taille du quantum de temps
 SRT (shorted remaing time)
 Problème de famine
 L’ordonnancement avec priorité statique
 Attribuer à chaque processus une priorité
 Utilisation de files d’attente multi-niveaux
 Les processus de la même file possède la même priorité
 Chaque file possède son propre algorithme d’ordonnancement
 Problème : risque d’avoir des processus de priorité élevée s'exécuter
indéfiniment
 Priorités dynamiques

38 Cours systèmes d'exploitation 21/12/2021

Vous aimerez peut-être aussi