corrige_td_ordonnancement

publicité
Architecture des Ordinateurs et Systèmes d'Exploitation
Ex 1. Algorithmes d'ordonnancement sans réquisition
1.a "Premier arrivé, premier servi" (FIFO)
Processus
Temps
n°
d'exécution
1
30
2
3
3
6
4
4
Les processus arrivent dans l'ordre 2, 3, 4, 1. Le diagramme de Gantt est :
3
P2
9
13
P3
P4
43
P1
et tme = 1/4 [ te(P2) + te(P3) + te (P4) + te(P1) ] = 1/4 (3+9+13+43) = 17
1.b "Plus court temps d'exécution d'abord" (PCTE)
Ordre PCTE = 2,4,3,1
3
P2
7
P4
13
P3
43
P1
et tme = 1/4 [ te(P2) + te(P4) + te (P3) + te(P1) ] = 1/4 (3+7+13+43) = 16,25
 Cet algorithme est optimal si les processus arrivent tous à t=0. Donnez un exemple où
l'algorithme n'est plus optimal.
Processus n°
Date de soumission
Temps d'exécution
1
0
5
2
0
6
3
6
2
En utilisant PCTE, à t=0, il faut choisir P1, à t=5 il reste juste P2 et ensuite on exécute P3
5
11 13
P1
P2
P3
et tme = 1/3 [ te(P1) + te(P2) + te(P3) ] = 1/3 (5+11+(13-6)) = 7,6
On voit bien que P3 a attendu un certain temps avant de s'exécuter, ce qui ne serait pas
arrivé si P2 avait été choisi en premier : P2, P3, P1 :
6
P2
8
P3
13
P1
et tme = 1/3 [ te(P2) + te(P3) + te(P1) ] = 1/3 (6+(8-6)+13) = 7 < 7,6 !
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
Temps d'exécution
soumission
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.
1
P1
3
5
P2
9
P4
16
P2
25
P1
P3
et tme = 1/4 [ te(P1) + te(P2) + te(P3) + te(P4) ] = 1/4 [ 16 + (9-1) + (25-2) + (5-3)] = 12,25
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
P1
4
P2
6
P3
8
P1
10
P4
12
P2
14
P3
16
P1
18
P2
20
P3
22
P1
24 25
P3
P3
et tme = 1/4 [ te(P1) + te(P2) + te(P3) + te(P4) ] = 1/4 [ 22 + (18-1) + (25-2) + (10-3)] =
17,25
2.b Tourniquet + priorités
Chaque processus reçoit un niveau de priorité. On construit autant de tourniquets que de
niveaux de difficulté.
 Donner(et comparer) le diagramme de Gantt et le tme en utilisant l'algorithme du
tourniquet (quantum=1) puis l'algorithme du tourniquet (priorités 60%, 30%, 10%) avec
priorité pour le problème suivant :
Processus n° Date de
Temps
soumission
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
Table d'allocation CPU :
0 X X
1
2
X X
X
X X
X
X
X
Ordre de passage : 1 5 3 1 5 6 1 1 7 2 1 1 3 1 6 3 4 6 3 6 2 3 3 2 2
et tme = 1/7 [ 14 + 25 + (23-1) + (17-1) + (5-1) + (20-2) + (9-2)] = 15,2
Téléchargement
Study collections