ordonnancement uniprocesseur - Mathieu Delalandre`s Home Page

Transcription

ordonnancement uniprocesseur - Mathieu Delalandre`s Home Page
TD systèmes d’exploitation
ORDONNANCEMENT UNIPROCESSEUR
Il est recommandé d’utiliser un tableur pour réaliser les différents calculs. On rappelle que les
supports sont disponibles à http://mathieu.delalandre.free.fr/teachings/operating1.html
1. Paramètre des processus et exécution
Soit le diagramme d’occupation du processeur suivant, décrivant l’exécution du processus P.
Les créneaux hauts correspondent aux cycles actifs (i.e. ou P est exécuté par le CPU).
Considérant une date de réveil w0 = 1, indiquez les paramètres: capacité du processus, date de
démarrage, date de fin, temps d’attente et temps de réponse. Donnez également sur
l’intervalle de temps considéré (i.e. pour tout t) les valeurs de la capacité résiduelle C(t), du
temps d’exécution T(t), du temps CPU ouvert E(t) et du temps d’attente WT(t). Indiquez
finalement les différents « CPU Burst » sur ce chronogramme d’exécution en précisant leur
nombre, positions, et durées. On considéra ici tout changement de contexte comme due à des
interruptions ordonnanceur.
2. Algorithmes à base de priorités et optimaux
2.1. Algorithmes à priorités statiques / non-préemptifs
Soit le tableau de tâches suivant:
A
B
C
D
E
r0
0
0
0
0
0
C
60
100
40
20
80
P
3
2
4
1
5
Donnez les diagrammes d’occupation du processeur pour les algorithmes d’ordonnancement
FCFS, SJF non-préemptif (i.e. SPN) et « Priority Scheduling » non-préemptif. Dans le cas du
FCFS, on considéra les id processus (A à E) comme ordre des processus dans la queue
d’exploitation. Indiquez les temps d’attente de chacune des tâches et le temps d’attente moyen
pour chacun des algorithmes.
2.2. Algorithmes à priorités statiques / préemptifs
Soit le tableau de tâches suivant:
A
B
C
r0
0
3
4
C
4
6
3
P
4
3
2
D
E
8
9
5
2
5
1
Donnez le diagramme d’occupation du processeur pour l’algorithme d’ordonnancement
« Priority Scheduling » préemptif sur l’intervalle t [0-20]. Indiquez les temps d’attente de
chacune des tâches et le temps d’attente moyen.
2.3. Algorithmes à priorités dynamiques / non-préemptifs
Soit le tableau de tâches suivant:
r0
0
2
1
6
3
A
B
C
D
E
C
4
2
6
2
3
Donner le diagramme d’occupation du processeur pour l’algorithme d’ordonnancement
HRRN sur l’intervalle t [0-17]. Indiquez les temps d’attente de chacune des tâches et le temps
d’attente moyen sur l’intervalle considéré.
2.4. Algorithmes à priorités dynamiques / préemptifs
A partir du tableau de tâche donné précédemment en 2.2., donnez le diagramme d’occupation
du processeur pour l’algorithme d’ordonnancement SJF préemptif (i.e SRT) sur l’intervalle t
[0-20]. En cas d’égalité du critère d’ordonnancement, vous départagerez en appliquant la
règle suivante: le processus en cours garde la main. Indiquez les temps d’attente de chacune
des tâches et le temps d’attente moyen.
Soit le tableau de tâches suivant:
A
B
C
D
r0
0
3
4
8
C
∝
∝
∝
∝
P
3
5
4
2
Donner le diagramme d’occupation du processeur pour l’algorithme d’ordonnancement
« Dynamic Priority Scheduling » sur l’intervalle t [0-20]. Indiquez les temps d’attente de
chacune des tâches et le temps d’attente moyen sur l’intervalle considéré.
2.5. Prédiction temporelle
On considère deux processus A, B au sein d’un système interactif, ou l’ordonnancement des
tâches est géré par technique de prédiction temporelle via l’algorithme SRT (Shortest
Remaining Time). Soit le tableau suivant des durées d’exécution CPU (i.e. burst time)
relevées entre chaque changement de contexte pour A, B.
Burst
A
B
0 1 2 3
15 21 26 24
21 15 13 26
Définissez les résultats de prédiction temporelle pour ces deux processus, sur les « burst » 0 à
3, considérant les paramètres suivants: T0 = 17 pour A, T0 = 18 pour B et α = 0.3 pour A, B.
Considérant ensuite le tableau d’événements suivant, ou chaque événement correspond à une
(ou des) transition(s) de processus de l’état « blocked » vers « ready/running » (i.e. le (ou
les) processus concerné(s) quitte(nt) la queue de blocage vers la queue d’exploitation),
définissez la séquence d’exécution en précisant les informations suivantes: états des queues
de blocage et d’exploitation, processus en cours d’exécution, valeur(s) de prédiction des
processus en état « ready/running ». Pour l’établissement de cette séquence vous appliquerez
la règle suivante: à chaque événement, les processus sont concurrents pour l’accès CPU (e.g.
si B relâché, A est en cours d’exécution et vice-et-versa).
1
Evénements B
2
A
3
B
4 5 6
A A, B A
7
B
3. Algorithmes de gestion de temps partagé
3.1. Cas sans combinaison de priorités
Soit le tableau de tâches suivant:
A
B
C
D
r0
0
0
0
0
C
170
80
50
200
Donnez le diagramme d’occupation du processeur pour l’algorithme d’ordonnancement
« Round Robin » avec un quantum q = 40. On considéra ici l’ordre initial du tourniquet
comme A>B>C>D. Indiquez les temps d’attente de chacune des tâches et le temps d’attente
moyen.
Soit le tableau de tâches suivant:
A
B
C
D
r0
2
0
3
6
C
4
4
1
2
Donnez le diagramme d’occupation du processeur pour l’algorithme d’ordonnancement
« Guaranteed scheduling » sur l’intervalle t = [0-11]. En cas d’égalité du critère
d’ordonnancement, vous départagerez en appliquant la règle suivante: les id des processus
départagent avec A>B>C>D. Indiquez les temps d’attente de chacune des tâches et le temps
d’attente moyen.
3.2. Cas avec combinaison de priorités
Soit le tableau de tâches suivant:
A
r0
0
C
∝
g
1
P
30
B
C
D
0
0
0
∝
∝
∝
2
1
1
45
30
30
Donnez le diagramme d’occupation du processeur pour l’algorithme d’ordonnancement
« Fair-share scheduling », considérant un quantum q = 40 pour une durée de 7 intervalles t =
[0-280]. Pour cet ordonnancement, on considéra des poids égaux pour les groupes 1 et 2, w1=
w2=0.5. Au sein du groupe 1, à priorités égales vous ordonnancerez les tâches selon leur id
avec A>C>D. En cas d’égalité du critère d’ordonnancement entre tâches des groupes 1 et 2,
vous départagerez en appliquant la règle suivante: le plus petit GCPU(t) départage. Indiquez
les temps d’attente de chacune des tâches et le temps d’attente moyen.
Soit le tableau de tâches suivant:
A
B
C
D
r0
44
22
0
76
C
40
96
36
28
On considère le cas d’un ordonnancement de type « Multilevel feedback queue scheduling »,
tel que le quantum de « feedback » soit défini en 24+i, avec i le niveau de la queue
d’exploitation. Ce quantum est ici est relevé de la valeur 24 de manière à optimiser les
performances globales du système et réduire les changements de contexte intempestifs. On
adapte ainsi les valeurs de quantum aux capacités observées des processus.
Donnez le diagramme d’occupation du processeur sur l’intervalle t = [0-200]. Vous pourrez
dans un premier temps préciser les valeurs d’exécution maximums sur chacun des niveaux, et
le nombre de niveaux nécessaires pour dérouler cet exemple. Indiquez ensuite sur l’intervalle
t = [0-200] les processus en court d’exécution sur chaque cycle, les durées des cycles
d’exécution entre chaque préemption et les états des queues d’exploitation sur chacun des
niveaux à chacun de ces cycles.