TD2 Principes des Syst`emes et R´eseaux
TD2 : Ordonnancement
1 Ordonnancement FIFO
`
At= 0, La file des processus prˆet contient les processus P1 (temps d’ex´ecution 4 min) et P2 (temps
d’ex´ecution 3min) dans cet ordre. `
At= 1 min, un nouveau processus P3 (ex´ecution 3 min) arrive et
finalement un processus P4 (ex´ecution 5 min) `a t= 3 min.
Le processus P2 fait une op´eration de lecture d’un fichier apr`es 1min 30s d’ex´ecution. Cette op´eration le
met en sommeil pendant 5s. Lorsqu’il se reveille, il est mis `a la fin de la liste des processus prˆets.
Question 1 : Simuler l’ex´ecution de ces processus si l’ordonnancement utilise l’algorithme FIFO. Vous
indiquerez (par un graphique ou un tableau) `a chaque instant le processus en cours d’ex´ecution et l’´etat
dans lequel se trouvent tous les processus.
Question 2 : Mˆeme question avec l’algorithme FIFO avec priorit´es suivantes : (P1, 4) (P2, 5) (P3, 5) (P4, 3).
Question 3 : Calculer dans chaque cas le temps d’attente moyen.
2 Ordonnancement circulaire
Question 4 : Simulez l’algorithme d’ordonnancement circulaire (tourniquet) avec les 3 processus suivants :
P1 (ex´ecution 25 ms), P2 (ex´ecution 30 ms) et P3 (ex´ecution 30 ms). Au d´epart, la liste des processus prˆets
est P1 P2 P3. Le quantum vaut 10ms, le temps de commutation 1 ms.
Pour chaque processus, vous indiquerez `a tout moment dans quel ´etat il se trouve (prˆet, en ex´ecution,
sommeil).
Question 5 : Mˆeme question avec les processus suivants :
P1 : ex´ecution 50ms ;
P2 : ex´ecution 15ms, puis sommeil pendant 25ms puis ex´ecution pendant 20ms ;
P3 : ex´ecution 50ms.
Au d´epart, la liste des processus prˆets est P1 P2 P3. Le quantum vaut 10ms, on n´egligera le temps de
commutation et on suppose que les processus r´eveill´es sont plac´es en d´ebut de la liste des processus prˆets.
Question 6 : Mˆeme question mais maintenant les processus r´eveill´es sont plac´es `a la fin de la liste des
processus prˆets.
3 Ordonnancement “optimal”
3 processus dont les temps d’ex´ecution sont de 5, 2 et 12 minutes doivent ˆetre lanc´es sur un syst`eme de
traitement par lots (non interractif et sans temps partag´e).
Question 7 : Dans quel ordre doivent-ils ˆetre lanc´es pour que le temps d’attente moyen soit minimum ?
Question 8 : D’une mani`ere g´en´erale, comment faut-il choisir le prochain processus (parmi les processus
prˆets) pour minimiser le temps d’attente moyen ?
Question 9 : Que se passe-t-il si un nouveau processus arrive `a t=3min avec un temps d’ex´ecution de 3min
et encore un autre `a t=8min (ex´ecution 3min).
L2 Informatique - 2015/2016 1 Emilie MORVANT
TD2 Principes des Syst`emes et R´eseaux
Question 10 : La question pr´ec´edente met en lumi`ere un gros d´efaut de cet algorithme, lequel `a votre avis ?
4 Temps d’attente
5 processus sont lanc´es pratiquement simultan´ement sur un ordinateur. Leurs temps d’ex´ecution sont
respectivement de 10, 6, 2, 4 et 8 minutes (dans l’ordre d’arriv´ee). Calculer le temps d’attente moyen pour
les algorithmes d’ordonnancement suivants :
FIFO ;
tourniquet (quantum 10ms)
FIFO avec priorit´es fixes (priorit´es respectives des processus : 3, 5, 2, 1, 4) ;
l’algorithme solution de l’exercice pr´ec´edent.
On n´egligera le temps de commutation.
5 Ordonnancement circulaire 2
Question 11 : Simulez l’algorithme d’ordonnancement circulaire (tourniquet) avec les 3 processus suivants :
P1 : ex´ecution 10ms, puis sommeil pendant 35ms puis ex´ecution pendant 15ms ;
P2 : ex´ecution 15ms, puis sommeil pendant 15ms puis ex´ecution pendant 8ms ;
P3 : ex´ecution 10ms, puis sommeil pendant 23ms puis ex´ecution pendant 15ms.
Au d´epart, la liste des processus prˆets est P1 P2 P3. Le quantum vaut 10ms, on n´egligera le temps de
commutation et on suppose que les processus r´eveill´es sont plac´es en d´ebut de la liste des processus prˆets.
Pour chaque processus, vous indiquerez `a tout moment dans quel ´etat il se trouve (prˆet, en ex´ecution,
sommeil).
Question 12 : Mˆeme chose, mais avec des priorit´es statiques.
Priorit´e de P2 = 2 = priorit´e de P3 et priorit´e de P1 = 1.
Question 13 : Calculez l’efficacit´e de l’ordonnancement dans chacun des deux cas. L’efficacit´e est le rapport
entre la somme des temps utilis´es par chacun des processus et le temps total.
6 Comparaison
On suppose qu’un processus de traitement a besoin de 5min 30s de temps processeur pour se terminer
(sans jamais faire d’E/S). Un processus d’E/S r´ep`ete 300 fois : 0.1s de temps processeur consomm´e suivi par
1s de sommeil en attente d’une E/S.
Question 14 : Calculer le temps n´ecessaire pour chacun des deux sc´enario suivants (temps partag´e, quantum
de 10ms) :
1. Deux processus de traitement sont lanc´es simultan´ement. Lorsqu’ils sont termin´es, deux processus d’E/S
sont lanc´es.
2. Un processus de traitement et un processus d’E/S sont lanc´es simultan´ement. Lorsqu’ils sont termin´es,
un autre processus de traitement et un autre processus d’E/S sont lanc´es.
7 Algorithme d’ordonnancement de linux
C’est un algorithme d’ordonnancement pour syst`eme `a temps partag´e. Ce qui veut dire que le processus
choisi par l’ordonnanceur pour ˆetre ex´ecut´e dispose au maximum d’un quantum de temps (10ms).
L2 Informatique - 2015/2016 2 Emilie MORVANT
TD2 Principes des Syst`emes et R´eseaux
Les processus sont r´epartis dans 2 listes : la liste des processus prˆets (not´ee LPP) et la liste des processus
en sommeil (not´ee LPS).
Les deux caract´eristiques suivantes de chaque processus psont utilis´ees pour l’ordonnancement :
le niveau de “nice” du processus (not´e p.nice). Le nice est un entier entre -20 et 19 (inclus).
le compteur (not´e p.compteur) : un entier d´ecr´ement´e de 1 `a chaque fois que le processus est choisi
par l’ordonnanceur pour ˆetre ex´ecut´e (cf. la derni`ere ligne de l’algorithme). Lorsqu’un processus est
cr´e´e, cette valeur est initialis´ee `a (20 p.nice)/4 + 1 (attention, c’est une division enti`ere).
L’algorithme d’ordonnancement est appel´e `a chaque fin de quantum par le SE pour choisir le nouveau
processus `a ex´ecuter parmi la liste LPP. Le nouveau processus `a executer est celui qui se trouve dans la
variable suivant `a la fin de l’algorithme ci-dessous.
Cet algorithme utilise une fonction goodness qui calcule une valeur de “goodness” pour chaque processus.
Cette fonction est donn´ee plus bas.
Algorithme d’ordonnancement
ebut :
c = -1000;
pour chaque processus p de la liste LPP faire {
poids = goodness(p);
si (poids > c) {
c = poids;
suivant = p;
}
}
if (c == 0) {
pour chaque processus p des listes LPP et LPS faire {
p.compteur = (p.compteur/2) + (20 - p.nice)/4 + 1; /* division enti`ere ! */
}
retourner au d´ebut de l’algorithme;
}
/* suivant contient maintenant le prochain processus `a ex´ecuter */
suivant.compteur = suivant.compteur - 1;
Fin
fonction goodness
entree : un processus p
sortie : la valeur de goodness pour ce processus
{
if (p.compteur != 0)
return (p.compteur + 20 - p.nice);
else
return 0;
}
Question 15 : `
A quelles valeurs les compteurs des processus suivant sont-ils initialis´es ?
un processus de nice 19 ;
un processus de nice 12 ;
L2 Informatique - 2015/2016 3 Emilie MORVANT
TD2 Principes des Syst`emes et R´eseaux
un processus de nice 0.
Question 16 : Question pr´eliminaire : expliquez en une phrase ce que fait la premi`ere boucle pour chaque
processus p de la liste LPP (en particulier que valent les variables cet suivant `a la fin de cette boucle ?)
Simuler l’ordonnancement pendant 10 quantums de temps pour les processus suivants :
3 processus prˆets : P1 (nice = 19), P2 (nice = 12), P3 (nice = 12) ;
1 processus en sommeil (et qui le reste pendant les 10 quantums) P4 (nice = 12).
Vous indiquerez la valeur de la goodness du compteur au d´ebut de chaque quantum (juste apr`es
avoir ex´ecut´e l’algorithme d’ordonnancement) et pour chacun des 4 processus. On n´eglige les temps de
commutation. Les valeurs initiales des compteurs sont celles calcul´ees dans la question pr´ec´edente.
Question 17 : Que va-t-il se passer pendant les quantums suivants (les processus prˆets sont les mˆemes et le
processus 4 reste en sommeil) ? Quelle va ˆetre la valeur maximale atteinte par le compteur du processus 4 ?
Question 18 : `
A quel moment la boucle pour chaque processus p des listes LPP et LPS est-elle
ex´ecut´ee ? `
A quoi sert elle ? `
A quoi sert le p.compteur/2 ?
Question 19 : Quelle valeur maximum peut atteindre le compteur d’un processus en fonction de son nice ?
(indication : consid´erer des processus en sommeil).
Question 20 : Quelle est la proportion du temps processeur utilis´ee par chacun des processus P1, P2 et P3
(en supposant qu’ils s’ex´ecutent pendant un temps suffisamment long) ?
Question 21 : Comment peut on calculer ces valeurs sans avoir `a faire la simulation compl`ete (Comme dans
la question 2). Faites le pour les 2 cas suivants (les processus ne sont jamais en sommeil) :
2 processus en nice 0, un processus en nice 19 ;
3 processus en nice 0, 2 processus en nice 12.
Question 22 : `
A quoi sert la valeur de nice ?
Question 23 : Peut-on avoir une situation de famine avec cet algorithme d’ordonnancement dans les deux
cas suivant et pourquoi ?
1. s’il n’y a pas de cr´eation de nouveaux processus ;
2. s’il y en a.
L2 Informatique - 2015/2016 4 Emilie MORVANT
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !