Vous êtes sur la page 1sur 19

Systèmes d'exploitation

Mohammed Madiafi
Département Informatique, Réseaux et Télécoms
Ordonnancement
● Un ordinateur équipé d'un système d'exploitation à
temps partagé est capable d'exécuter plusieurs
processus de façon « quasi-simultanée ».
● La commutation des tâches, le passage d’une tâche à
une autre, est réalisée par un ordonnanceur au niveau
le plus bas du système.
● Cet ordonnanceur est activé par des interruptions
d’horloge, de disque, de terminaux.

2
Ordonnancement
● Objectif = utiliser efficacement les ressources de la
machine.
● Rôles de l’ordonnanceur
– détermine quelle tâche doit s'exécuter en priorité et
sur quel processeur
– gère l'ordre dans lequel les instructions de
différentes tâches sont exécutées
– est responsable de la commutation de contexte
● sauvegarde et restauration du contexte des tâches
(registres processeurs)
3
Ordonnancement

4
Type d'ordonnancement
● Coopératif : chaque processus doit suspendre de lui-
même son exécution pour permettre aux autres de
s’exécuter.
● Préemptif : l'ordonnanceur a la responsabilité de
l'interruption des tâches et du choix de la prochaine à
exécuter.

5
Critères d’Ordonnancement
● Utilisation du CPU
● Débit de processus qui terminent leur exécution par
unité de temps.
● Temps de rotation : le temps depuis le lancement du
processus jusqu’à sa terminaison (les attentes
incluses).
● Temps d’attente : temps d’un processus dans la file
d’attente des processus prêts.
● Temps de réponse : temps mis entre une requête
émise et la première réponse.

6
Critères d'optimisation
● Utilisation maximale du CPU
● Débit maximum
● Temps de rotation minimal
● Temps d’attente minimal

7
Algorithmes d'ordonnancement
● Premier arrivé, premier servi, FCFS

● Plus court servi, SJF

● Tourniquet, RR

8
Premier arrivé, premier servi, FCFS

● Temps moyen d’attente non-optimal,

● Mauvaise utilisation des ressources s’il y a apport


continu de processus aux cycles longs (v. effet
d’accumulation).

9
Exemple
Processus Temps demandé
P1 24
P2 3
P3 3
● Supposons que les processus arrivent dans l’ordre
suivant: P1 , P2 , P3 Le diagramme de Gantt correspondant
est:
P1 P2 P3

0 24 27 30

– Temps d‘attente de P1 = 0; P2 = 24; P3 = 27


– Temps d’attente moyen: (0 + 24 + 27)/3 = 17
10
Exemple
Processus Temps demandé
P1 24
P2 3
P3 3
● Supposons que les processus arrivent dans l’ordre
suivant: P2 , P3 , P1 , le diagramme de Gantt serait alors:

P2 P3 P1

0 3 6 30

– Temps d’attente de P1 = 6; P2 = 0; P3 = 3
– Temps d’attente moyen: (6 + 0 + 3)/3 = 3
11
Plus court servi, SJF
● Deux schémas:
– Non préemptif – dès que le CPU est donné à un
processus, ce dernier ne peut être interrompu avant
la fin de son temps CPU
– préemptif – si un nouveau processus débarque
avec un temps CPU plus petit que le reste du
temps CPU du processus courant, on commute
vers le nouveau processus. Ce schéma est connu
sous le nom de Shortest-Remaining-Time-First
(SRTF)
● SJF est optimal : il donne un temps moyen minimal
pour un ensemble de processus donnés.
12
Exemple
Processus Temps d'arrivée Temps demandé
P1 0 7
P2 2 4
P3 4 1
P4 5 4

● SJF (non préemptif)

P1 P3 P2 P4

0 3 7 8 12 16
● Temps moyen d’attente = (0 + 6 + 3 + 7)/4 = 4

13
Exemple
Processus Temps d'arrivée Temps demandé
P1 0 7
P2 2 4
P3 4 1
P4 5 4
● SJF (préemptif)

P1 P2 P3 P2 P4 P1

0 2 4 5 7 11 16
● Temps d’Attente Moyen = (9 + 1 + 0 +2)/4 = 3

14
Plus court servi, SJF
● Inconvénient:

– Difficulté de prévoir la durée du prochain cycle,

– Famine possible des processus ‘longs’ s’il y a


apport continu de processus aux cycles courts.

15
Tourniquet, RR
● Le temps processeur est divisé en intervalles de
temps appelés Quantum Q (de l'ordre de 10 à 100
ms), chaque processus s’exécutera exactement
pendant son quantum.
● Si n processus sont dans la file d’attente des
processus prêts et le quantum est q, alors chaque
processus reçoit 1/n du temps CPU en parties de q
unités. Aucun processus attend plus de (n-1)q.
● Le processeur sera réquisitionné jusqu’à ce que:
– Le processus élu ait épuisé son quantum,
– Le processus élu ait fini son exécution avant la fin
de son quantum,
– Le processus élu demande une entrée/sortie. 16
Exemple
Processus Temps demandé
P1 53
P2 17
P3 68
P4 24

● Le diagramme de Gantt pour Q=20:

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162

17
Quantum et Temps de Commutation
de Contexte
Temps CPU = 10 Quantum Commutation
de contexte

10 0

6 1

1 9

18
Ordonnancement avec Priorité
● Une priorité (nombre entier) est associée à chaque
processus.
● Le CPU est alloué au processus à la priorité la plus
grande (le plus petit entier  la plus grande priorité).
● SJF est un ordonnancement à priorité où la priorité
correspond au temps CPU.
● Problème  Famine – processus à faible priorité
peuvent ne jamais s’exécuter.
● Solution  Vieillissement – avec le temps, incrémenter
la priorité des processus en attente.
19

Vous aimerez peut-être aussi