Td_ordonnancement

publicité
Initiation SE
Objectifs :

Comparaison de quelques algorithmes d'ordonnancement des processus
Ex 1. Algorithmes d'ordonnancement sans réquisition
Un processus n'est traité qu'au moment où le précédent se termine.
1.a "Premier arrivé, premier servi" (FIFO)
Les processus sont traités dans leur ordre d'arrivée.
Exemple :
Processus
Temps
n°
d'exécution
1
30
2
3
3
6
4
4
Si les processus arrivent dans l'ordre 1, 2, 3, 4, l'évolution de l'utilisation du processeur au
cours du temps peut être représentée par un diagramme de Gantt :
30
P1
33
P2
39
P3
43
P4
Le temps moyen d'exécution (tme) se calcule alors ainsi :
tme = 1/4 [ te(P1) + te(P2) + te (P3) + te(P4) ] = 1/4 (30+33+39+43) = 36,25

Donner le diagramme de Gantt et le tme pour un ordre d'arrivée 2, 3, 4, 1.
1.b "Plus court temps d'exécution d'abord" (PCTE)
Le processus dont la phase de calcul est la plus courte est exécuté en premier, et ainsi de
suite.
Exemple:
Processus
Phase de calcul
n°
1
7
2
12
3
5
4
15
5
P3
12
P1
24
P2
39
P4
Le temps moyen d'exécution (tme) se calcule alors ainsi :
tme = 1/4 [ te(P1) + te(P2) + te (P3) + te(P4) ] = 1/4 (5+12+24+39) = 20


Donner le diagramme de Gantt et le tme en utilisant l'algorithme PCTE avec l'exemple 1.a
Cet algorithme est optimal si les processus arrivent tous à t=0. Donnez un exemple où
l'algorithme n'est plus optimal.
Ex 2. Algorithmes d'ordonnancement avec réquisition
2.a PTCE avec réquisition (PTCER)
Lorsque un processus arrive dans la file d'attente, on exécute celui qui se terminera le
plus vite (en remettant éventuellement en attente celui qui était entrain de s'exécuter)
Exemple :
Processus n°
Date de soumission
Temps
d'exécution

1
0
8
2
1
6
3
2
9
4
3
2
Donner le diagramme de Gantt et le tme pour le tableau ci-dessus.
2.a Le tourniquet
Chaque processus reçoit un temps de calcul (quantum) dans l'ordre des demandes. Tout
nouveau processus demandeur entre en fin de liste d'attente. Tout processus qui a épuisé
son quantum se retrouve aussi en fin de liste.

Donner le diagramme de Gantt et le tme en utilisant l'algorithme du tourniquet
(quantum=2) avec l'ex. 2a.
2.b Tourniquet + priorités
Chaque processus reçoit un niveau de priorité. On construit autant de tourniquets que de
niveaux de difficulté.
Une manière de gérer ces priorités consiste, par exemple, à allouer à chaque tourniquet
un pourcentage de temps CPU plus ou moins grand. Avec 4 niveaux (de 0, le plus
prioritaire, à 3) on peut répartir le temps CPU ainsi :




tourniquet 0 : 40 % du temps CPU
tourniquet 1 : 30 % du temps CPU
tourniquet 2 : 20 % du temps CPU
tourniquet 3 : 10 % du temps CPU
Cette répartition se retrouve dans la table d'allocation CPU suivante :
0 x
1
x
x
x
2
x
x
3
x
x
x
x



Lors des quantum 1, 4, 7 et 8 on exécute des processus du tourniquet 0 (s'ils existent, sinon
on passe au tourniquet 1, etc…)
Lors des quantum 2, 6, et 10 on exécute des processus du tourniquet 1 (…), etc…
Donner(et comparer) le diagramme de Gantt et le tme en utilisant l'algorithme du
tourniquet (quantum=2) puis l'algorithme du tourniquet (priorités 60%, 30%, 10%) avec
priorité pour le problème suivant :
Processus Date de
n°
soumission
Temps
Priorité
d'exécution
1
0
7
0
2
0
4
2
3
1
6
1
4
1
1
2
5
1
2
0
6
2
4
1
7
2
1
1
Téléchargement