Académique Documents
Professionnel Documents
Culture Documents
processus (Scheduling)
L'ordonnancement, ou scheduling, est un processus organisa5onnel
Abdelali.lasfar@est.um5.ac.ma
visant à op5miser la produc5on industrielle d'une entreprise
Abdelali.lasfar@est.um5.ac.ma
Abdelali.lasfar@est.um5.ac.ma
Cycle de vie d’un processus
Problématique
Abdelali.lasfar@est.um5.ac.ma
Objectifs de l’ordonnancement
Abdelali.lasfar@est.um5.ac.ma
4. Utiliser d’une manière équilibrée les ressources
5. Prendre en compte les priorités
Objectifs de l’ordonnancement
Abdelali.lasfar@est.um5.ac.ma
§ Combien de temps de processeur allouer au
processus choisi ?
Plan
1. Définitions
2. Les différents algorithmes d’ordonnancement.
2.1.Ordonnancement sans préemption
a. FCFS : First Come First served
Abdelali.lasfar@est.um5.ac.ma
b. SJF : Shortest Job First
2.2. Ordonnancement préemption
a. Round Robin (tourniquet)
Définition
Abdelali.lasfar@est.um5.ac.ma
exécuter, l’ordonnancement doit également se
soucier de faire un usage efficace du processeur,
car le passage d’un processus à l’autre est coûteux
en termes de temps de traitement
Abdelali.lasfar@est.um5.ac.ma
Challenges
objectifs d'un ordonnanceur
Abdelali.lasfar@est.um5.ac.ma
´Utiliser le processeur à 100%.
´Prendre en compte des priorités.
´Être prédictible.
États de processus et ordonnancement Quand
ordonnancer ?
´Lorsqu’un nouveau processus est créé, il faut se
décider s’il faut exécuter d’abord le processus parent
ou le processus enfant.
´Lorsqu’un processus se termine, un autre processus doit
être choisi parmi les processus prêts
Abdelali.lasfar@est.um5.ac.ma
´Lorsqu’un processus se bloque, un autre processus doit
être sélectionner pour être exécuter
´Lorsqu’une interruption d’E/S se produit, il faut prendre
une décision d’ordonnancement parmi les processus
qui étaient bloqué en attente d’E/S.
Interruption ?
Abdelali.lasfar@est.um5.ac.ma
Interruption Logicielle ?
´Interruption Logicielle :
´ Si le CPU détecte une erreur dans le traitement
d’une instruction (division par zéro par exemple)
´Arrêt de l’exécution pour exécuter une routine
particulière ISR (Interrupt Service Routine) par type
Abdelali.lasfar@est.um5.ac.ma
d’erreur rencontrer (débordement de mémoire,
division par zéro,...)
Interruption Matérielle (IRQ : Interrupt Request)?
Abdelali.lasfar@est.um5.ac.ma
´Éviter au CPU d’attendre un délai
supplémentaire (boucler) pour que les
données soient émises par le périphérique
(technique de polling ou questionnement)
Interruption Matérielle (IRQ : Interrupt Request)?
Abdelali.lasfar@est.um5.ac.ma
périphérique.
´Déclenche l’ordonnancement entre les
processus bloqué en l’attente de l’E/S en
question
Interruption et Ordonnancement
Abdelali.lasfar@est.um5.ac.ma
est déclenchée par une horloge (souvent 100
ou 1 000 Hz), et l'ordonnanceur est alors mis en
action.
´ 1Hz = 1 cycle par seconde
Les algorithmes
Abdelali.lasfar@est.um5.ac.ma
d’ordonnancement
Classification des algorithmes
d'ordonnancement
Abdelali.lasfar@est.um5.ac.ma
Algorithmes d'ordonnancement non préemptif
Abdelali.lasfar@est.um5.ac.ma
´Aucune décision d’ordonnancement n’intervient
pendant les interruptions d’horloge
Algorithmes d'ordonnancement préemptif
Abdelali.lasfar@est.um5.ac.ma
exécuter
Ordonnancements non
préemptifs
Abdelali.lasfar@est.um5.ac.ma
Ordonnanceurs non préemptifs Métriques
Temps de séjour =
temps de terminaison – temps d’entrée
Abdelali.lasfar@est.um5.ac.ma
Temps d’attente =
temps de séjours – temps d’exécution
Ordonnanceurs non préemptifs
Abdelali.lasfar@est.um5.ac.ma
´ou le plus court d'abord (Shortest Job First SJF )
Il lui alloue le processeur jusqu'à ce qu'il se termine ou
qu'il se bloque (en attente d'un évènement).
´→ Il n'y a pas de réquisition
Premier arrivé premier servi (FCFS)
First-Come, First-Served (FCFS)
Abdelali.lasfar@est.um5.ac.ma
arrivent tous au temps 0.
Premier arrivé premier servi (FCFS)
First-Come, First-Served (FCFS)
Abdelali.lasfar@est.um5.ac.ma
P1 P2 P3
0 24 27 30
P2 P3 P1
Abdelali.lasfar@est.um5.ac.ma
0 3 6 30
´Temps d’attente de P1 = 6; P2 = 0; P3 = 3
´Temps d’attente moyen: (6 + 0 + 3)/3 = 3
´Meilleur résultat que le cas précédent
Exercice (FCFS)
´Dans un système monoprocesseur,
on suppose la situation illustrée Processus Date Durée
dans le tableau suivant : d’arrivée d’exécution
´Dessinez le diagramme de Gantt
pour l’algorithme FCFS P1 0 3
Abdelali.lasfar@est.um5.ac.ma
P2 2 6
´Calculez pour chaque processus
P3 4 4
§ Temps de séjour
P4 6 5
§ Temps d’attente P5 8 2
Exercice (FCFS)
´Dessinez le diagramme de Gant
pour l’algorithme FCFS
Abdelali.lasfar@est.um5.ac.ma
Exercice (FCFS)
´Calculez pour chaque processus
§ Temps de séjour
§ Temps d’attente
Processus Temps de Temps
séjour d’attente
Abdelali.lasfar@est.um5.ac.ma
CPU
P1 3-0=3 0
P2 9-2=7 3-2=1
P3 13-4=9 9-4=5
P4 18-6=12 13-6=7
P5 20-8=12 18-8=10
Premier arrivé premier servi (FCFS)
First-Come, First-Served (FCFS)
Abdelali.lasfar@est.um5.ac.ma
Exemple de SJF Non-Préemptif
´ L’ordonnanceur choisit, parmi le lot de processus à
exécuter, le plus court (plus petit temps d’exécution).
Abdelali.lasfar@est.um5.ac.ma
Exemple de SJF Non-Préemptif
Abdelali.lasfar@est.um5.ac.ma
Exemple de SJF Non-Préemptif
Abdelali.lasfar@est.um5.ac.ma
P1 attends 3ms, P3 9ms, P2 16ms et P4 0ms. Le
temps moyen d’attente est (3+16+9+0)/4 = 7ms
Ordonnanceurs non préemptifs Métriques
Temps de séjour =
temps de terminaison – temps d’entrée
Abdelali.lasfar@est.um5.ac.ma
Temps d’attente =
temps de séjours – temps d’exécution
Exercice 2
Abdelali.lasfar@est.um5.ac.ma
suivants: D 2 6
E 1 7
Exercice 1
Abdelali.lasfar@est.um5.ac.ma
´Premier arrivé premier servi (FCFS)
´Le plus court d'abord (SJF)
Correction
Abdelali.lasfar@est.um5.ac.ma
de temps.
q Ensuite B s’exécute pendant 4 unités de temps.
qAu temps 4, 6, et 7 les processus C, D et E arrivent mais B a
encore 2 unités de temps.
qUne fois que B a terminé, C, D et E entrent au système dans
l'ordre
Exemple de SJF Non-Préemptif
Processus Tps d’Arrivée Tps CPU
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
´ SJF (non préemptif)
Abdelali.lasfar@est.um5.ac.ma
P1 P3 P2 P4
0 3 7 8 12 16
Abdelali.lasfar@est.um5.ac.ma
P1 P2 P3 P2 P4 P1
0 2 4 5 7 11 16
Abdelali.lasfar@est.um5.ac.ma
temps CPU suivant
´ 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
Abdelali.lasfar@est.um5.ac.ma
Ordonnancements
préemptifs
Ordonnanceurs préemptifs
Abdelali.lasfar@est.um5.ac.ma
´Le processeur passe donc d’un processus à un autre
en exécutant chaque processus pendant quelques
dizaines ou centaines de millisecondes.
Ordonnanceurs préemptifs
Abdelali.lasfar@est.um5.ac.ma
´Le processeur, à un instant donné, n’exécute
réellement qu’un seul processus, mais pendant une
seconde, le processeur peut exécuter plusieurs
processus et donne ainsi l’impression de parallélisme
(pseudo-parallélisme).
Ordonnancement circulaire
Abdelali.lasfar@est.um5.ac.ma
attente d’exécution
Ordonnancement circulaire
Abdelali.lasfar@est.um5.ac.ma
immédiatement alloué à un autre processus
(celui en tête de file).
§ Si le processus ne se termine pas au bout de
son quantum, son exécution est suspendue.
Ordonnancement circulaire
Abdelali.lasfar@est.um5.ac.ma
§ Les processus qui arrivent ou qui passent
de l’état bloqué à l’état prêt sont insérés
en queue de file.
Ordonnancement circulaire
Abdelali.lasfar@est.um5.ac.ma
réponse des courtes commandes en mode
interactif.
§ Un quantum entre 20 et 50 ms est souvent un
compromis raisonnable .
Exemple de RR avec Q = 20
Abdelali.lasfar@est.um5.ac.ma
´ Typiquement, une moyenne de temps de rotation plus grande que
SJF, mais un meilleur temps de réponse
Exercice
Soient deux processus A et B prêts tels Processus Date Durée
que A est arrivé en premier suivi de B, d’arrivée d’exécution
2 unités de temps après.
Le temps de commutation est A 0 15
supposé nul. B 2 4
Abdelali.lasfar@est.um5.ac.ma
moyen de séjour, le temps d’attente, le temps moyen d’attente, et le
nombre de changements de contexte pour :
1. SJF
2. Round robin (quantum = 10 unités de temps)
3. Round robin (quantum = 3 unités de temps)
Abdelali.lasfar@est.um5.ac.ma
Correction
Abdelali.lasfar@est.um5.ac.ma
Correction
Abdelali.lasfar@est.um5.ac.ma
Correction
Abdelali.lasfar@est.um5.ac.ma
Correction