Escolar Documentos
Profissional Documentos
Cultura Documentos
emes Informatiques
Evaluation de performances
Objectif: Calculer les indices de performances dun syst`eme
informatique. Par exemple: debit, temps de reponse, taux de
perte, taux dutilisation . . .
Quand : en phase de conception et dexploitation pour :
Comment
evaluer les performances dun syst`
eme?
Les techniques utilisees pour levaluation de performances sont :
Les methodes analytiques : on modelise le syst`eme grace `a un
formalisme mathematique (reseaux de files dattentes, chanes de
Markov, . . . ) et on calcule les indices de performances par des
formules analytiques ou des methodes numeriques
La simulation : on reproduit levolution du syst`eme par un
programme informatique et on estime les indices de performances
`a partir des resultats observes
Les mesures : sur le syst`eme reel ou sur des prototypes
Les mesures :
- technique tr`es co
uteuse et nest pas toujours possible
Terminologie
Variables detat : ensemble de variables decrivant letat du syst`eme
`a un instant donne (ex. nombre de clients par file dattente,
nombre de connexions `a un site Web, . . . )
Espace detat : ensemble des valeurs que peuvent prendre les
variables detat
enement : un changement dans letat du syst`eme (ex. arrivee ou
Ev
departs de clients)
Syst`eme `
a evenements discrets : syst`eme `a espace detats discret
Caract
erisation stochastique des syst`
emes?
En general, on ne connat pas avec certitude les caracteristiques
des syst`emes etudies, par exemple:
instants darrivees des connexions sur un site Web
durees des connexions,. . .
= besoin de decrire laleatoire
caracteriser laleatoire est possible avec des distributions de
probabilites, mais il faut tester ladequation `a la realite
Dans ce cours, on se restreint aux mod`eles stochastiques pour des
syst`emes `a evenements discrets : mod`eles de syst`emes
informatiques et de reseaux
Contenu du module
Bref rappel de probabilites et statistiques
Simulation `a evenements discrets
Chanes de Markov
Files dattentes
Bibliographie
Raj Jain, The Art of Computer Systems Performance Analysis,
John Wiley & Sons, 1991
Bruno Baynat, Theorie des Files dAttente, Hermes-Lavoisier,
2000
Georges Fiche, Gerard Hebuterne, Trafic et performances des
reseaux des telecoms, Hermes-Lavoisier, 2003
William J. Stewart, Introdution to the Numerical Solution of
Markov Chains, Princeton University Press, 1994
Bloch, Greiner, Meer, Trivedi, Queueing Networks and Markov
Chains, Modeling and Performance Evaluation with Computer
Science Applications, John Wiley & Sons, 1998
9
10
Rappel de probabilit
es : exercice
La fonction de densite de la loi exponentielle de param`etre ( > 0)
est :
fEXP() (x) = ex , x > 0
1. Calculer la moyenne, la variance et la fonction de repartition de la
loi exponentielle.
2. Montrer la propriete sans memoire de la loi exponentielle :
P rob(X x + t|X > x) = P rob(X t)
11
Simulation `
a Ev
enements Discrets
Syst`emes consideres (Syst`emes `
a Evenements Discrets) :
T
aches dun simulateur `
a
ev
enements discrets
Gestion dun echeancier devenements : maintien dune liste
ordonnee devenements futurs en perpetuelle evolution
Mises `
a jour des variables detats `
a lexecution de chaque
evenement
Calculs statistiques : pour quantifier les indices de performances
(objectif de la simulation)
L
ech
eancier
Lecheancier contient lensemble devenements futurs. Chaque
evenement est represente par : sa date doccurrence, son type, un
pointeur vers le code `a executer `a cette date
Deux operations frequentes sur lecheancier :
Inserer un nouveau evenement
Algorithme g
en
eral dune simulation
1 Initialisations
3 Fin de Simulation
(Affichage des r
esultats statistiques)
15
Exemple
el
ementaire : simuler une file M/M/1/B
File dattente de taille B
Inter-Arrivees exponentielles (moyenne )
Services exponentielles (moyenne )
On veut estimer par simulation la distribution du nombre de clients
Crit`ere de fin de simulation : t = tmax
(t: temps courant de simulation, tmax : temps de fin de
simulation)
16
Pseudo Code
Event
record
date :
real;
type :
(Arrivees, Service);
end
17
Pseudo Code
1 Temps:=0; etat:=0; t:=0;
2 dt:=DelExp();
3 AddEvent(t+dt, Arrivees)
4 while t < tmax do begin
4.1 GetEvent(e); ot:=t; t:=e.date;
4.2 Temps[etat]:=Temps[etat]+t-ot;
18
Remarques :
Une analyse de la dynamique montre quil y a un ou deux
evenements dans lecheancier au cours de la simulation
Inutile de faire une structure complexe dans ce cas
Par contre, si on augmente le nombre de files, la taille de la
structure augmente
20
Plan dune
etude par simulation
1. Definir un mod`ele pour le syst`eme
2. Ecrire le simulateur (implementer le mod`ele)
3. Tester le simulateur
4. Choix des param`etres, Plan dexperiences
5. Analyse des resultats (eventuellement, recommencer en 4, en 2 ou
en 1...)
21
Ecrire un simulateur
Plusieurs possibilites :
Langage usuel : C, C++, Java, . . .
22
23
Introduction `
a QNAP
QNAP est un outil comprenant :
un langage de description de reseaux de files dattente (mots cles
24
ements de syntaxe
El
- Un commentaire est compris entre un & et la fin de ligne
- Les chanes de caract`eres sont de la forme "abcd"
- Les instructions se terminent par un point virgule ;
- Laffectation se fait par un deux points egal :=
- Les majuscules et minuscules sont significatives
- Les mots reserves sont en majuscules (Ex: ALL, AND, ANY, BEGIN, DO,
ELSE, END, FALSE, FOR, IF, IN, IS, NIL, NOT, OBJECT, OR, REF, STEP, THEN,
TRUE, UNTIL, WHILE, WITH, . . . )
- Pour les noms de variable, seuls les huit premiers caract`eres sont
significatifs, les tabulations et autres caract`eres de controle ne sont
pas autorises
25
Exemple de Programme
/DECLARE/
QUEUE S, A;
/STATION/
NAME = S;
TYPE = SOURCE;
SERVICE = EXP(1.0);
TRANSIT = A;
/STATION/
NAME = A;
TYPE = SERVER;
SERVICE = EXP(1.0);
TRANSIT = OUT;
/CONTROL/
TMAX = 1000;
/EXEC/
SIMUL;
/END/
27
La section /DECLARE/
On y declare des variables en donnant leur type et une eventuelle
initialisation. Les types du langage sont :
Les types scalaires : INTEGER, REAL, BOOLEAN et STRING
Le type tableau : les indices du tableau se declarent par a:b ou par
simplement a qui est alors interprete comme 1..a. Les elements du
29
Attributs
Les types QUEUE et CUSTOMER ont des attributs predefinis
Lacc`es `a un des attributs se fait par un point. Par exemple S.NB
est le nombre de clients dans la file S
On peut ajouter de nouveaux attributs :
/DECLARE/
CUSTOMER REAL InstArr;
CUSTOMER INTEGER Numero;
30
31
32
Le FLAG
Un FLAG permet de bloquer un ensemble de clients et de les
liberer tous en meme temps pour effectuer une synchronisation
Il a deux etats: bloquant et passant
SET (f) : Met le FLAG f dans letat passant
RESET (f) : Met le FLAG f dans letat bloquant
WAIT (f) : Un client qui rencontre cette instruction lors de son
service doit attendre que le FLAG soit dans letat passant
33
La section /STATION/
donne la description dun objet de type QUEUE avec les param`etres :
NAME, TYPE, SCHED, INIT, SERVICE, TRANSIT
Le param`etre NAME est le nom de lobjet de type QUEUE declare. Il
est obligatoire et doit etre le premier de la section STATION.
Le param`etre INIT permet dinitialiser le nombre de clients dans la
file. Il est facultatif (par defaut la file est vide)
Le param`etre TRANSIT indique la ou les files de destination pour le
client en fin de service.
Deux formulations possibles :
TRANSIT = liste de stations et probabilit
es (la derni`
ere peut
etre omise)
TRANSIT = liste de stations et entiers (QNAP calcule des proportions)
34
Le param`
etre TYPE
Il y a quatre types de base differents :
SOURCE : file qui gen`ere des clients
SERVER : file au sens usuel
SEMAPHORE et RESOURCE : cest une file `a jetons. Il ny a pas de
service
Un client nest pas route vers une file de ce type, mais peut faire P(S) pour
demander un jeton a
` S ou V(S) pour lib
erer un jeton qui retourne dans S
Laction P(S) est bloquante si il ny a pas de jeton. On attend le premier
jeton disponible. Ces actions seffectuent en g
en
eral dans la phase de
service dune autre file
pour le type RESOURCE un client ne peut pas faire un V dune ressource sur
laquelle il na pas fait P au prealable
Ce param`etre est facultatif, par defaut une station est de type SERVER
35
Le param`
etre MULTIPLE (n)
Pour les files de type :
SERVER, SEMAPHORE , RESOURCE, on peut avoir plusieurs serveurs :
MULTIPLE (n)
SERVER , SEMAPHORE, on peut avoir une infinite de serveur :
INFINITY
Exemples :
TYPE = SERVER;
& Un seul serveur
TYPE = SERVER, MULTIPLE(10); & 10 serveurs
TYPE = SERVER, INFINITY;
& Une infinite de serveurs
Ce param`etre est facultatif, par defaut une station a un seul serveur
36
Le param`
etre SCHED
Donne la discipline de service utilisee, par exemple :
FIFO : First In First Out
LIFO : Last In Last Out
PRIOR : Les clients sont classes en fonction de leur priorite relative
PS : Processor Sharing ; tous les clients sont servis simultanement
avec une vitesse divisee par le nombre de clients. Cette discipline
est incompatible avec la simulation
Ce param`etre est facultatif, par defaut la discipline de service est FIFO
37
Le param`
etre SERVICE
Si il est omis, les clients restent dans la file
Si il y a un service mais pas de duree, le service est de duree nulle
une sequence dinstructions encadrees par BEGIN et END ou une
seule instruction de consommation de temps
Instructions :
38
Exemple de SERVICE
SERVICE =
BEGIN
EXP(10.0);
NbreC1 := NbreC1 + 1;
V (TICKET) ;
F := NEW(CUSTOMER);
TRANSIT (F,B);
IF CUSTOMER.CCLASS = C1
THEN TRANSIT(A);
ELSE TRANSIT(B);
END;
&
&
&
&
&
&
&
&
&
La duree du service
Incrementation dune variable globale
Liberation dun semaphore
Creation dun nouveau client
Routage du nouveau client vers la file B
Test de la classe du client en service
Routage du client en service vers
la file A si sa classe est C1,
vers la file B sinon
39
La section /CONTROL/
permet dinitialiser certains param`etres de la methode de resolution
Exemple:
/CONTROL/
TMAX = Maxi;
OPTION = TRACE;
&
&
&
ACCURACY = ALL QUEUE;&
MARGINAL = A,10;
&
&
TSTART = 1000;
&
&
Duree de la simulation
Affiche une trace du deroulement
de la simulation
Calcul des intervalles de confiance
Permet dobtenir les probabilites
marginales de 1 a 10 clients dans A
Date a laquelle commencent
les mesures statistiques
40
R
esultats standards
*** SIMULATION ***
... TIME =
10000.00
****************************************************************
* NAME * SERVICE * BUSY PCT * CUST NB * RESPONSE * SERV NB *
****************************************************************
*
*
*
*
*
*
*
* S
* .9985
* 1.000
* 1.000
* .9985
*
10015*
*
*
*
*
*
*
*
* A
* 1.015
* .9965
* 102.5
* 102.3
*
9818*
*
*
*
*
*
*
*
****************************************************************
... END OF SIMULATION ...
42
43
G
en
erateurs de nombres al
eatoires : motivation
Une etape fondamentale dans le developpement dun simulateur
est davoir des procedures pour generer des valeurs aleatoires selon
une loi de probabilite donnee (ex: exponentielle ou normale)
Ceci se fait en deux etapes :
44
M
ethode de g
en
eration de nombres al
eatoires
Dispositif physique ou Algorithme?
Contrainte : on veut une generation rapide, des sequences
exactement reproductibles (par exemple pour debugger, ...)
= la methode couramment utilisee est un algorithme
Paradoxe : construction deterministe de laleatoire
(on parle en general de nombres Pseudo-aleatoires)
Solution : verifier les proprietes aleatoires du generateur par des
tests statistiques
45
Principe de Base
Utiliser une fonction f `a n arguments pour generer la prochaine valeur.
Les arguments sont les n valeurs precedentes de la serie
xn+k = f (xn+k1 , xn+k2 , . . . , xk )
Il faut n valeurs pour initialiser le processus (racines, graines,
semences, seed)
Comportement cyclique potentiel. Si on retombe sur une serie de n
valeurs dej`a calculees, alors la suite de la serie est la meme
La longueur du cycle depend de la fonction mais aussi des racines
46
Propri
et
es d
esir
ees pour les s
equences g
en
er
ees
avoir la plus grande longueur de cycle (periode) possible
reussir un test dadequation `a la distribution uniforme
reussir des tests varies :
47
Choix de la fonction f
La generation de nombres uniformes est une des fonctions les plus
utilisees dans un programme de simulation
= Attention `a lefficacite...
Employer des operateurs simples et rapides (arithmetique enti`ere,
decalage binaire)
Compromis entre la complexite et des proprietes statistiques `a
verifier
Remarque: Ce nest pas parce que ca a lair complique que cest
aleatoire....
48
Exemple : mauvais g
en
erateur
xn+1 = abs(sin(log(xn )))
Complexit
e : les fonctions Log et Sin sont beaucoup plus longs `a
calculer que des operateurs arithmetiques de base (+, modulo, . . . )
(100 tirages, x0 = 2)
Distributivit
e:
1
Distributivite
0.9
0.8
0.7
x(n+1)
0.6
0.5
0.4
0.3
0.2
0.1
0
0
0.1
0.2
0.3
0.4
0.5
x(n)
49
0.6
0.7
0.8
0.9
G
en
erateur LCG
Un des generateurs les plus utilisees est le generateur LCG (Linear
Congruential Generator)
La fonction f est lineaire et utilise une arithmetique modulo m :
xn = axn1 + b mod m
a et b sont positifs ou nuls
xn est un entier entre 0 et m 1
Propri
et
es des g
en
erateurs LCG
Le choix de a, b, m, et x0 affectent les proprietes du generateur
(periode, correlation, . . . )
La periode maximale est m
Le calcul du modulo est plus efficace pour m = 2k (simple decalage
`a droite de k bits)
Pour etudier les proprietes des LCG, on distingue les cas :
b 6= 0 : dans ce cas on parle de LCG mixte
51
LCG mixte (b 6= 0)
la periode maximale m est obtenue si et seulement si les trois
conditions suivantes sont satisfaites :
b et m sont premiers entre eux
chaque entier premier diviseur de m est aussi diviseur de a 1
si m est multiple de 4, a 1 doit etre multiple de 4
Exemple : les generateurs de type m = 2k , a = 4c + 1, et b impair ont
un cycle de longueur m
52
LCG multiplicatif
Deux familles interessantes :
1. m = 2k
2. m premier
m = 2k
Loperation modulo est un simple decalage binaire
La periode maximale est seulement m/4
La periode maximale est atteinte pour a de la forme 8i 3 ( i est
un entier positif ou nul) et pour une racine x0 impaire
53
m premier
Quand m est premier et x0 6= 0, tous les xn sont differents de 0
La periode maximale est m 1
La periode maximale est atteinte, si et seulement si, a est une
racine primitive de m
D
efinition : a est une racine primitive de m, si et seulement si,
an mod m 6= 1 pour n = 1, 2, . . . , m 2
Exemple: 3 est une racine primitive de 31, xn = 3xn1 mod 31 a une
periode maximale.
5 nest pas une racine primitive de 31 (53 mod 31 = 1)
54
Probl`
emes dimpl
ementation des g
en
erateurs LCG
1. Il faut toujours travailler sur de larithmetique enti`ere exacte et
non pas passer en reel et faire une troncature
2. Verifier que le type entier existe effectivement dans le langage et
quil y a une arithmetique exacte associee
3. il faut que loperation de multiplication a xn1 ne provoque pas
derreurs de debordement (depassement de lentier maximum).
Sinon, les proprietes du generateur ne sont pas garanties
55
M
ethode de Schrage
Pour eviter le probl`eme du depassement de lentier maximal.
a x mod m = g(x) + m h(x)
q
= (m div a)
(1)
= (m mod a)
(2)
= a (x mod q) r (x div q)
(3)
g(x)
h(x)
= (x div q) (a x div m)
(4)
M
ethode de Schrage : exemple
Considerons le generateur
xn = 75 xn1 mod (231 1)
a x peut atteindre `a peu pr`es 245
Debordement possible sur une arithmetique 32 bits.
Methode de Schrage:
a = 75 = 16807, m = 231 1 = 2147483647
On calcule q et r :
q = 12773, r = 2836
r < q et on peut eviter le calcul de a x
57
Quelques conseils
Utiliser un algorithme recent etudie par un specialiste
Ne jamais utiliser 0 comme racine, si le generateur est un LCG
multiplicatif, on reste coince `a 0
Ne jamais prendre de racines aleatoires. Deux risques : non
reproductibilite de la sequence et choix dune mauvaise racine
Exemple : pour le generateur xn = 9806xn1 mod (217 1), si
par hasard on choisit x0 = 37911, on reste coince `a cette valeur
58
59
Exercices
Exercice 1
1. Quelle est la periode du generateur : xn = (218 + 1)xn1 + 1 mod 235
2. Quelle est la periode maximale pour le generateur: xn = axn1 mod 24 .
Quel doit etre la valeur de a pour atteindre ce maximum. Y-a-t-il des
restrictions sur la valeur de la racine ?
Exercice 2 Implementer chacun des deux generateurs suivants avec et sans
la methode de Schrage :xn = 5xn1 mod 31, xn = 11xn1 mod 31
(x0 = 1). est ce que les sequences generees sont les memes? sinon, expliquez
pourquoi.
Exercice 3 Generer 48 nombres successifs `
a partir de la racine x0 = 1 pour
le generateur : xn = (13xn1 + 11) mod 216
Trouvez la periode du i`eme bit pour i de 1 `
a 5.
61
G
en
erer selon une distribution quelconque
A partir des generateurs de reels uniformes entre 0 et 1,
5 methodes complementaires :
transformation inverse
rejet
composition
convolution
caracterisation statistique
62
Transformation Inverse
Soit X une variable aleatoire et F sa fonction de repartition
U = F (X) est uniformement distribue entre 0 et 1
Il suffit donc de generer X selon F 1 (U ), c`ad, on genere u uniforme
entre 0 et 1 et on retourne F 1 (u)
63
1
ln(1 u)
ln(u)
64
65
Fonction de R
epartition
0
0 x < 256
1.0 1024 x
66
Inverse de la Fonction de R
epartition
256
F 1 (u) =
512
1024
0 < u 0.4
0.65 < u 1
67
P rob(X = k) = e
k!
Fi
0, 36787944
0, 73575888
0, 91969861
0, 98101184
0, 99634015
Fi
0, 99940581
0, 99991675
0, 99998975
0, 99999887
0, 99999989
69
Rejet
Hypoth`ese : il existe une densite g(x) et une constante c telle que
f (x) c g(x) pour toute valeur de x.
La methode consiste alors `a :
1. generer x de densite g(),
2. generer y uniforme sur [0, cg(x)],
3. si y f (x) rendre la valeur x, sinon revenir en 1.
Il a ete prouve que ce procede permet de generer une variable aleatoire
distribuee selon la densite f
71
Exemple : m
ethode du rejet
2.5
20*x*(1-x)**3
2.11
1.5
0.5
0
0
0.2
0.4
0.6
72
0.8
Remarques sur la m
ethode de rejet
g(x) doit etre une densite (g(x) est positive et
g(x) doit etre facile `a generer
g(x)dx = 1)
73
Exemple : M
ethode du Rejet
Exemple : Generer selon une loi Beta(2,4) dont la densite est
f (x) = 20x(1 x)3 avec x [0, 1].
Lorsque x est compris entre 0 et 1, la fonction f (x) est plus petite que
2.11.
Choix possible : c = 2.11 et g(x) = 1 (g : uniforme sur [0, 1]).
1. generer x uniforme sur [0, 1],
2. generer y uniforme sur [0, 2.11],
3. si y 20x(1 x)3 retourner la valeur de x, sinon revenir en 1.
74
Composition
Hypoth`ese : la fonction de repartition (ou la fonction de densite) est la
somme ponderee dautres fonctions de repartition (ou fonctions de
densite):
F (x) =
n
X
pi Fi (x) (f (x) =
i=1
n
X
pi fi (x))
i=1
Pn
i=1
pi = 1.
75
Exemple : M
ethode de Composition
La densite de la loi de Laplace definie sur R est : f (x) =
1 |x|/a
2a e
exp(-abs(x))/2
0.45
0.4
0.35
f(x)
0.3
0.25
0.2
0.15
0.1
0.05
0
-10
-5
0
x
10
Convolution
Hypoth`ese : la variable aleatoire X `a generer peut secrire sous la
forme de somme de n variables aleatoires plus faciles `a generer :
X = X1 + X 2 + . . . + X n
La methode consiste alors `a simplement generer les n valeurs xi et
retourner la somme
Exemples:
Une Binomiale B(n, p) est la somme de n Bernoulli de param`etre p
Une Erlang k est la somme de k Exponentielles de meme param`etre
Une 2 `a n degres de liberte est la somme des carrees de n
Normales centrees reduites
77
Caract
erisation statistique
Les caracteristiques specifiques de certaines distributions permettent
de les generer par des algorithmes particuliers
Exemple : Methode de Box et Muller pour generer une distribution
Normale N (, ) :
1. generer U1 et U2 uniformes et independantes
p
2. X1 = + cos(2 U1 ) 2ln(U2 ) et
p
X2 = + sin(2 U1 ) 2ln(U2 ) suivent une loi Normale
N (, ) et sont independantes
78
Exponentielle
Weibull
Pareto
Bernoulli
Binomiale
Geometrique
Poisson
79
Normale
(x)2
1
f (x) = e 22
2
avec x +.
81
Exponentielle
f (x) = ex ,
avec 0 x .
Weibull
bxb1 ( xa )b
f (x) =
e
ab
avec 0 x .
Pareto
aba
f (x) = a+1
x
avec x b, a, b > 0
Bernoulli
Distribution discr`ete la plus simple.
Une variable X de type Bernoulli B(p) prend deux valeurs seulement 0
et 1:
P rob(X = 0) = p, P rob(X = 1) = 1 p
utilisee pour modeliser deux alternatives, par exemple : syst`eme en
marche ou en panne, transmission avec succes ou non, . . .
simulation : generer u uniforme entre 0 et 1, si u p retourner 0,
sinon retourner 1
85
Binomiale
P rob(X = k) = Cnk pk (1 p)nk ,
k = 0, 1, . . . , n
86
G
eom
etrique
k = 0, 1, . . . ,
Loi de Poisson
P rob(X = k) = e
k!
k = 0, 1, . . . ,
88
Processus de Poisson
Un processus de Poisson (flux Poissonien) est un processus tel que
les differences entre deux instants successifs sont i.i.d de loi
exponentielle (Exp())
Lien avec Loi de Poisson : nombre darrivees durant un intervalle
de temps de longeur t suit une loi de Poisson de param`etre t
La superposition de plusieurs flux Poissoniens de param`etres i est
P
un flux Poissonien de param`etre =
i
Si un flux Poissonien de param`etre est dispatche en k flux avec
les probabilites (p1 , p2 , . . . , pk ) alors chaque flux i est aussi un flux
Poissonien de param`etre pi
89
Analyse op
erationnelle
Quelques lois simples sur des quantites mesurables, qui ne necessitent
pas des hypoth`eses probabilistes ou statistiques :
Loi de lutilisation
Loi du flux force
Loi de Little
Loi general du temps de reponse
Loi du temps de reponse interactive
90
Quantit
es op
erationnelles concern
ees
Pour une periode dobservation T et un composant i du syst`eme, on
peut mesurer les quantites :
Taux darrivees i : nombre darrivees sur le temps total T :
Ai
T
Ci
T
Bi
T
91
Loi de lutilisation
Par definition
Ui =
Ci
Bi
Bi
=
T
T
Ci
Ui = X i S i
Lutilisation est le produit du debit et du temps moyen de service
92
Ci
T
C0 Ci
T C0 ,
donc
Xi = XVi
93
Ui = XDi
Di est le temps de service dans le serveur i de toutes les taches
dun travail
Le goulot detranglement (bottleneck) est le serveur qui a la plus
grande valeur de Di et donc lutilisation la plus elevee
le nombre maximal de travaux executables dans le syst`eme est
obtenu lorsque le serveur en bottleneck a une utilisation de 1
94
Exemple
On consid`ere un syst`eme compose dun processeur et deux disques A
et B. on suppose que :
chaque programme necessite 5 secondes de temps CPU, 80 acc`es
sur le disque A et 100 acc`es sur le disque B
un acc`es disque sur A dure 50 ms, et sur B 30 ms
on mesure un debit de 15.7 acc`es par seconde sur le disque A
on veut determiner le bottleneck et calculer le debit et lutilisation
de la CPU et des disques?
95
Donn
ees initiales
DCP U = 5s
VA = 80
VB = 100
SA = 0.05s
SB = 0.03s
XA = 15.7
96
DA = SA VA = 4s
DB = SB VB = 3s
donc la CPU est le bottleneck
X=
XA
VA
Loi de Little
clients entrants
SYSTEME
clients sortants
N = R
ou
N = XR
98
99
Loi g
en
eral du temps de r
eponse
On consid`ere un syst`eme compose de M sous-syst`emes
u:
Par la loi de Little on a Qi = Xi Ri et Q = XR o`
R=
PM
i=1
Vi R i
Remarque: il est possible de montrer que cette loi est valide meme
sans lhypoth`ese de conservation de flux
100
Exercices
Exercice 1 Le debit dun syst`eme a ete observe etre egale `
a 5 clients par
seconde sur une periode dobservation de 10 minutes. Si le nombre moyen de
clients dans le syst`eme a ete egal `
a 4 durant cette periode, quel etait le
temps moyen de reponse?
Exercice 2 Durant une periode dobservation de 10 secondes, 40 requetes
ont ete traitees par un serveur. Chaque requete a necessite deux acc`es
disque. Le temps moyen de service sur le disque etait de 30ms. Quel a ete le
taux dutilisation du disque durant cette periode?
101
Chanes de Markov
Une chane est un processus `a valeurs dans un espace detats E
denombrable
On distingue :
102
CMTD homog`
ene
On note Pi,j (n) = P r(Xn+1 = j|Xn = i)
Une chane de Markov est homog`ene, si est seulement si, Pi,j (n)
est independant de la date n. Cette probalilite, note Pi,j , est la
probabilite de transition de i vers j
Par construction, la matrice P = (Pi,j )i,jE des probabilites de
transition verifie :
tous les elements de P sont positifs ou nuls
P
pour tout i, jE Pi,j = 1
103
Pi,j P r(Xn1 = i)
104
105
Transience ou R
ecurence
Si fj < 1 letat est transitoire.
Si fj = 1 letat est recurent :
De plus,
106
Structure de la chane
Definition : Un sous ensemble A detats est ferme si et seulement si
il ny a pas de transition entre cet ensemble et son complementaire
Definition : un etat absorbant est un sous ensemble ferme ne
comprenant quun seul element.
Une chane est irreductible si et seulement si il existe une suite de
transitions menant de i `a j pour tous les etats i et j.
107
Chanes irr
eductibles
Th
eor`
eme: Pour une chane de Markov irreductible, tous les
etats sont:
tous transitoires
ou tous recurents non nuls
ou tous recurents nuls
De plus, si un etat est periodique, alors tous les etats le sont avec
la meme periode.
Remarque: Pour une chane finie irreductible, tous les etats sont
recurents non nuls
108
= P
(5)
e = 1
o`
u e est un vecteur colonne dont tous les elements sont 1. De plus,
on a (j) = 1/Mj
109
110
CMTC homog`
enes
On sinteresse uniquement aux CMTC homog`enes :
P r(X(tn ) = j|X(tn1 ) = i) ne d
epend pas des instants tn1 et tn
mais seulement de la duree tn tn1
On definit alors la probabilite de transition de i `a j durant le temps t
Soit P (t) la matrice des transitions pi,j (t), on a (t) = (0)P (t)
G
en
erateur dune CTMC
On definit qi,j le taux de transition instantane de i `a j par :
qi,j
On pose qi,i =
pi,j (dt)
,
= limdt0
dt
(i 6= j)
112
Caract
eristiques dune CMTC
La classification des etats dune CMTC en etats transitoires,
recurrents nuls ou recurrents non nuls se fait de la meme facon que
pour les CMTD
La notion de periodicite nexiste pas pour les CMTC
Une CMTC est dite irreductible si chaque etat j est atteignable de
nimporte quel etat i i, j, i 6= j, t : pi,j (t) > 0
Si une CMTC est irreductible, alors tous les etats sont de meme
nature
Remarque : la methode de la chane incluse permet detudier les
caracteristiques dune CMTC `a partir de celles de la CMTD incluse
113
Q = 0
e = 1
o`
u e est un vecteur colonne dont tous les elements sont egaux `a 1
Equilibre stationnaire
En developpant lequation Q = 0 pour un i quelconque, on a:
X
j qj,i = 0
j
k qi,k
=0:
k6=i
j qj,i =
k6=i
i qi,k
n
X
(t)
P n , t 0
P (t) = et
n!
n=0
116
117
118
Equilibre stationnaire
pour n > 0 :
n [n + n ] = n1 n1 + n+1 n+1
pour n = 0
0 0 = 1 1
oubien
n [n 1{n>0} + n ] = n1 n1 1{n>0} + n+1 n+1
119
R
esolution
Lequation `a letat 0 permet dobtenir 1 en fonction de 0
0 0 = 1 1
Examinons maintenant lequation `a letat 1
1 [1 + 1 ] = 0 0 + 2 2
Apr`es simplification : 1 1 = 2 2
Par recurrence sur n :
n n = n+1 n+1
120
Soit:
n
Si on peut normaliser:
alors,
Qn1
i
= 0 Qi=0
n
i=1 i
Qn1
X
i
Qi=0
<
n
i=1 i
n=1
Qn1 #1
i
i=0
Qn
0 = 1 +
i=1 i
n=1
"
121
122
Fondamentaux de PageRank
PageRank calcule une valeur numerique pour chaque page Web.
Cette valeur mesure la pertinence ou limportance relative dune
page dans un ensemble de pages Web
une page Web est un texte caracterise par des liens vers dautres
pages
ainsi chaque page est pointee par un ensemble de pages et pointe
elle meme vers dautres pages. Soit (p) lensemble des pages qui
pointent sur p et d(q) le nombre de pages pointees par la page q
si une page source pointe vers k pages destinations, alors chacune
recoit 1/k de la pertinence de la source
si P e(p) est la pertinence de la page p, alors :
P
e(q)
P e(p) = q(p) Pd(q)
123
Mod
elisation par une chane de Markov
lespace detats est constitue par lensemble des pages Web
{p1 , p2 , . . . , pN }
les transitions entre etats sont les liens entre les pages Web
on peut alors definir la matrice de transitions H = Hi,j :
Hi,j = 1/Oi si pi a un lien vers pj et 0 sinon
Oi est le nombre de pages pointees par pi
La chane de Markov (Xn ) peut etre vue comme une personne qui
surfe sur le Web de facon aleatoire et qui peut se trouver `a letape
n `a une des pages Web
Les pages qui nont pas de liens vers dautres pages sont supposees
pointer vers lensemble des pages Web. Ceci permet deviter les
etats absorbants qui pourraient arreter le processus du surf
124
P e(pj ) =
pi (pj )
P e(pi ) X
=
P e(pi )Hi,j
Oi
i=1
125
Remarques :
En fait, la matrice de transition G utilisee dans PageRank (appelee
Matrice de Google) est leg`erement differente : G = H + (1 )U ,
o`
u:
H est la matrice de transition dej`a definie
U est une matrice dont toutes les valeurs sont egales `a 1/N
est un param`etre entre 0 et 1, souvent choisi egale `a 0.85
Lidee de cette modification est que dans 85% des cas, on surfe
selon la structure des liens du Web et dans 15% des cas on choisit
une nouvelle page de facon uniforme dans lensemble des pages
Pour plus de details sur PageRank et Google linformation est
largement disponible sur le Web (par exemple sur Wikipedia)
126
La file M/M/1
Arrivees Poisson, Services Exponentiels, 1 Serveur, Capacite infinie
pour garder les clients
On note le taux de service et le taux darrivees
Cest un processus de Naissance et de Mort avec les taux de
transition :
= i
i
i = i
128
CMTC associ
ee `
a une file M/M/1
Soit Nt le nombre de clients dans la file `a linstant t
Le processus (Nt )t0 `a espace discret {0, 1, 2, . . .} et `a temps
continu est une CMTC. Ceci est d
u au fait que les inter-arrivees et
les services sont exponentielles (sans memoire)
Si on consid`ere par exemple la file M/D/1, (Nt )t0 nest pas une
chaine de Markov: il faut connaitre de plus le temps passe dej`a
dans le service pour predire un depart
0
... ...
0
...
( = + )
Generateur : Q =
0
.
.
.
.
..
..
..
.. ..
129
n = 0 n , n 0
Condition de normalisation : e = 1 0
P
possible, ssi n=0 n < + < 1
= 1. Ceci est
n=0
Caract
eristiques dune M/M/1
La moyenne du nombre de clients E(N ) dans la file:
P
E(N ) = n=1 nn = 1
La probabilite que la file soit vide est (1 )
le taux dutilisation de la file U vaut donc
Variance V (N ) du nombre de clients dans la file:
P 2
2
2
V (N ) = E(N ) (E(N )) = i=1 i i (E(N ))2 =
(1)2
Caract
eristiques temporelles
En appliquant la formule de Little :
E(N )
E(NW )
=
=
=
=
1
(1)
(1)
100
1/(1-x)
90
80
70
60
50
40
30
20
10
0
0
0.2
0.4
0.6
0.8
133
Non Lin
earit
e
Le temps moyen de reponse (et dattente) est fortement non lineaire :
On consid`ere une file dont la duree de service moyenne est 144s
Le taux darrivee est 10 clients/h
Que vaut le temps moyen de reponse ?
le temps moyen de service est 0.04h
Donc le taux de service est 25 clients/h et la charge vaut 0.4
Et le temps de reponse vaut en seconde 144/(1 0.4) = 240s
Le taux darrivees augmente de 2 clients/h
La charge passe `a 0.48 et le delai passe `a 277s
Augmenter les arrivees de 20% augmente le delai de 17%
134
135
Compromis Usager/Op
erateur
Un operateur souhaite que son syst`eme soit utilise le plus possible
donc doit etre grand
Mais lorsque sapproche de 1, le temps dattente des usagers est
non borne
Demandes antagonistes : compromis....
136
Dimensionnement
Determiner la capacite du service pour garantir un delai voulu
pour un trafic (taux darrivee) donne
La capacite C est le debit du serveur =
Soit R le temps de reponse souhaite
R=
1
C
Donc, C = + 1/R
C assure la stabilite du syst`eme, le terme 1/R est le co
ut pour
obtenir les performances demandees sur un syst`eme simple donne
137
La file M/M/1
Caracteristiques Spatiales
Charge
= /
k = (1 )k
Utilisation
U =
E(N ) =
V (N ) =
(1)
(1)2
E(NW ) =
V (NW ) =
138
2
(1)
2 (1+2 )
(1)2
Caracteristiques Temporelles
Repartition du temps de reponse
Temps de reponse Moyen
F (x) = 1 ex()
E(R) =
1
()
1
()2
x()
V (R) =
F (x) = 1 e
E(W ) =
V (W ) =
139
(2)
()2
140
141
142
Mod`
ele dErlang C
m canaux
Arrivees Poisson, Services Exponentiels
Capacite de stockage inifini
On veut calculer la probabilite que les m canaux (serveurs)
soient occupes
Cest aussi la probabilite quun client entrant soit contraint
dattendre avant de commencer son service
Ce mod`ele correspond `a une file M/M/m
143
La file M/M/m
Cest un processus de Naissance et de Mort caracterise par:
i =
i = i
si i < m
i = m si i m
Formule dErlang C
En developpant, lequation dequilibre et la condition de normalisation,
la probabilite davoir k < m clients :
la probabilite davoir k m clients :
(m)k
0 k!
m m k
0 m!
0 =
1+
(m)
+
m!(1 )
145
m1
X
i=1
(m)
i!
!1
La file M/M/m
Caracteristiques Spatiales
Charge
Probabilite syst`eme vide
= /(m)
0 = 1 +
(m)m
m!(1)
Pm1
(m)k
si k < m 0 k!
m k
sinon 0 mm!
(m)m
= m!(1) 0
E(N ) = m + 1
V (N ) = m + (m +
Nombre moyen de
clients en attente
E(NW ) =
(1)
V (NW ) =
(1+)
(1)2
Variance du nombre
de clients en attente
146
i=1
(m)i
i!
1+
)
(1)2
1
La file M/M/m
Caracteristiques Temporelles
1
(1 + m(1)
)
(2)
1
(1
+
)
2
m2 (1)2
xm(1)
E(R) =
V (R) =
F (x) = 1 e
E(W ) =
V (W ) =
147
m(1)
(2)
2
m 2 (1)2
Mod`
ele dErlang pour les blocages dappel
m canaux
Arrivees Poisson, Service exponentiels
Si il ny a aucun canal libre, lappel est perdu (blocage dappel)
On veut calculer la probabilite de blocage dappels
Ce mod`ele correspond `a une file M/M/m/m
Remarque : le syst`eme est toujours stable puisque le nombre
detats est fini
148
i = i < m
m = 0
i
i = i
Puisque lespace detats est fini, la chaine est ergodique et les
probabilites sationnaires sont donnees par :
k =
m
X
i=0
i!i
!1
k
, 0km
k!k
149
Attention
La probabilite de perte est la probabilite quun client entrant
trouve le syst`eme plein
En general, la distribution aux instants darrivees nest pas
necessairement la distribution stationaire
(T (i) est le temps passe en i, T un temps
i = limT (i)/T
dobservation tr`es grand)
(X(i) est le nombre de fois o`
u on a trouve la
i = limX(i)/X
file `a letat i, X le nombre de visites)
Cependant, ici, grace aux arrivees suivant un processus de Poisson,
les deux distributions coincident
Cest la propriete PASTA: Poisson Arrivals See Time Averages
150
Formule dErlang B
La probabilite de perte vaut donc:
P rbP erte = m =
m
X
i=0
i!i
!1
m
m!m
151
La file M/M/m/B
Il y a B places et m serveurs (B m)
Le processus du nombre de clients est encore un processus de
naissance et de mort dont les taux sont :
i<B
i =
=0
B
si i m
i = i
= m si m < i B
i
152
0 n
n<m
n! n
n =
0 n
nm
nm
n
m! m
(m)m (1 B+1m )
+
1+
m!(1 )
m1
X
i=1
(m)i
i!
!1
Toutes les arrivees qui se produisent pendant que le buffer est dans
letat B sont perdues
Le taux darrivee reel est (1 B ) et le taux de perte est B
La formule de Little donne le temps moyens de sejour et dattente
E(R) =
E(NW )
E(N )
et E(W ) =
(1 B )
(1 B )
153
La file M/M/m/B
Charge
= /(m)
(m)k
si k m 0 k!
mm k
sinon 0 m!
B
E(N ) = i=1 ii
B
E(NW ) = i=m+1 (i
r = (1 B )
r /(m) = (1 B )
Taux de perte
E(R) =
E(W )
154
E(N )
(1B )
E(NW )
= (1
B)
m)i
La file M/M/
Arrivees Poisson de taux
Un infinite de serveurs identiques (service exponentiel de taux )
Pas de buffer dattente, un client qui arrive entre directement en
service
Sert `a modeliser des situations o`
u le nombre de serveurs est plus
grand que la demande
Remarque : la capacite de service etant illimitee le syst`eme est
toujours stable independemment des valeurs de et
155
Caract
eristiques
La file M/M/ est un processus de naissance et de mort avec les
taux :
= i
i
i = i i
0 = e
P
k=1
kk =
1
=
=
E(R) = E(N
156
157
158
= 4.0
= 0.65
m(1) )
= 24mn
159
160
R
epartition
On distribue les 5 terminaux en 5 places distinctes, avec 5 files
dattente separees et pas dinformations globales pour choisir.
On a donc 5 M/M/1
Le taux de service reste identique
Le taux darrivees est divisee par 5 (repartition equiprobable)
161
1/
1
= 60mn
162
Les r
eseaux de files dattente
Un Reseau de Files dAttente (RFA) est un ensemble de files simples
interconnectees. Il est caracterise par :
le processus darrivees des clients dans le syst`eme (ex. Poisson de
taux )
pour chaque file dattente individuelle :
le nombre de serveurs mi
la capacite de la file Ki (eventuellement infinie)
la discipline de service (FIFO, LIFO, etc, . . . , eventuellement
avec priorite preemptive/ non preemptive, . . . )
le routage des clients dans le syst`eme. On distingue plusieurs types
de routage dont :
163
164
R
eseaux monoclasses/ R
eseaux multiclasses
On distingue :
les reseaux monoclasses : parcourus par un seul type de clients
les reseaux multiclasses : o`
u circulent plusieurs classes de clients
avec des niveaux de priorite differents. Ces classes seront
caracterisees par :
des processus darrivees differents
des routages differents
des temps de service differents dans chaque file
165
R
eseaux ouverts/ R
eseaux ferm
es
Dans un reseau ouvert :
- on peut avoir des arrivees de lexterieur
- on peut avoir des departs vers lexterieur
- le nombre de clients dans le reseau est variable
1
p01
p23
p02
2
p24
4
p42
166
p40
p33
p31
1
p23
p41
2
p24
4
p42
167
(1)
3
(1)
1
(1)
p01
(1)
p23
(1)
p02
(1)
2
2
(1)
p24
(2)
2
(1)
4
4
(2)
4
Classe1 : ouverte
Classe2 : fermee
168
Notations
Dans la suite, on se restreint aux reseaux monoclasses.
- N : le nombre de files dans le reseau
- K : le nombre constant de clients pour un reseau ferme
- (k1 , k2 , . . . , kN ) : letat du reseau, ki etant le nombre de clients
PN
dans la file i ( i=1 ki = K pour un reseau ferme)
N
X
j pji
N
X
Vj pji
j=1
Vi = p0i +
j=1
N
X
j pji
N
X
Vj pji
j=1
Vi =
j=1
170
Mesures de performance
Calculer la distribution stationnaire jointe (k1 , k2 , . . . , kN ) est le
principal probl`eme pour les reseaux de files dattente. En effet, les
mesures de performance des files se deduisent `a partir de cette
distribution :
- la distribution stationnaire de la file i :
P
i (k) = ki =k (k1 , k2 , . . . , kN )
P
- lutilisation i de la file i : i = k=1 i (k) = 1 i (0) (pour un
reseau ferme i (k) = 0, k > K)
P
- le nombre moyen de clients dans la file i : Qi = k=1 ki (k)
3 p31
3 p31
0,0,2
1 p12
2,0,0
1 p13
1 p12
2 p21
1,0,1
1,1,0
1 p12
3 p31
1 p13
2 p21
2 p21
Les
(1)
(2)
(3)
0,2,0
0,1,1
1 p13
3 p31
3 p31
0,0,2
1 p12
2,0,0
1 p12
2 p21
1 p13
1,0,1
1,1,0
1 p12
0,2,0
3 p31
2 p21
1 p13
2 p21
0,1,1
1 p13
(4.2) (1, 1, 0)(1 p13 + 1 p12 ) = (0, 2, 0)2 p21 + (0, 1, 1)3 p31
(4.1)+ (4.2)=(4), on a aussi :
(5.1) (1, 0, 1)(1 p12 + 1 p13 ) = (0, 0, 2)3 p31 + (0, 1, 1)2 p21
(5.2) (1, 0, 1)3 p31 = (2, 0, 0)1 p13
(6.1) (0, 1, 1)2 p21 = (1, 0, 1)1 p12
(6.2) (0, 1, 1)3 p31 = (1, 1, 0)1 p13
La resolution est plus facile avec ces equations locales
175
176
Les r
eseaux de Jackson
- reseaux monoclasses ouverts
- arrivees Poissonniens de lexterieur vers les noeuds du reseau
- services exponentiellement distribues dans tous les noeuds
- la discipline de service est FIFO dans tous les noeuds
- routage probabiliste
- un seul serveur de taux i dans chaque noeud i
Th
eor`
eme : Sous la condition de stabilite i < i , i = 1, . . . , N , la
probabilite stationnaire du reseau poss`ede la forme produit suivante :
u i (ki ) est la probabilite stationnaire
(k1 , k2 , . . . , kN ) = N
i=1 i (ki ), o`
dune file M/M/1, soit i (ki ) = (1 i )ki i avec i = ii
177
Preuve
- Le processus X(t) = (k1 (t), . . . , kN (t)) est une CMTC
- Les equations de balance globale secrivent :
PN
(k1 , . . . , kN )( + i=1 i 1ki >0 )
PN
= i=1 (k1 , . . . , ki 1, . . . , kN ) p0i 1ki >0
PN
+ i=1 (k1 , . . . , ki + 1, . . . , kN )i pi0
PN PN
+ i=1 j=1 (k1 , . . . , kj + 1, . . . , ki 1, . . . , kN )j pji 1ki >0
N
X
i=1
i 1ki >0
N
N
N X
N
X
X
p0i 1ki >0 X
j j pji 1ki >0
=
+
i i pi0 +
i
i
i=1
i=1
i=1 j=1
(rappel : i = i i )
178
179
Remarques
- le theor`eme de Jackson est plus general, il inclut le cas :
des files avec des taux darrivees et de service dependant de
letat ki des clients dans la file i
des files multiserveurs sous la condition de stabilite i < mi i
(cas particulier du precedent cas en prenant
i (ki ) = inf(ki , mi )i )
- un reseau de Jackson se comporte comme un ensemble de files
M/M/1 considerees en isolation
- cependant, les flux darrivees `a linterieur du reseau ne sont pas
necessairement poissonniens (par exemple en cas de rebouclages),
do`
u limportance du theor`eme
180
Dautres r
eseaux `
a forme produit
- r
eseaux de Gordon et Newell : reseaux monoclasses fermes
- r
eseaux BCMP : etendent les resultats de Jackson et
Gordon/Newell aux reseaux de files dattente multiclasses pouvant
etre ouverts, fermes, mixtes en considerant des disciplines de
service differentes et des distributions de temps de service generales
181