• Aucun résultat trouvé

Cr´eation locale d’un fil d’ex´ecution

Dans le document The DART-Europe E-theses Portal (Page 95-99)

7.2 Fonctionnalit´es de base

7.2.1 Cr´eation locale d’un fil d’ex´ecution

La cr´eation d’un fil d’ex´ecution local (esclave) dans Athapascan-0b implique la cr´eation d’un fil d’ex´ecution par la biblioth`eque utilis´ee et l’association `a ce fil d’in-formations de gestion propres `a Athapascan-0b.

Afin de tracer les courbes pr´esent´ees plus loin, un programme cr´ee des fils d’ex´e-cution ex´ecutant chacun la fonction vide. La dur´ee de chaque cr´eation est mesur´ee par l’horloge `a haute r´esolution du SP1 et une courbe est trac´ee, donnant le temps de cr´ea-tion d’un fil en fonccr´ea-tion du nombre de fils d´ej`a pr´esents dans la tˆache. Le programme a ´et´e ex´ecut´e cent fois et les courbes pr´esent´ees sont la moyenne de ces ex´ecutions.

AIX 3.2

La figure 7.1 pr´esente les temps de cr´eation des processus l´egers pour le noyau de processus l´egers DCE et pour Athapascan-0b au dessus de AIX 3.2. La biblioth`eque DCE pr´esente deux particularit´es que l’on retrouve ensuite dans Athapascan-0b. La premi`ere est que le temps de cr´eation d’un processus l´eger n’est pas constant, et croˆıt avec le nombre de processus l´egers. Il n’y a pas de raisons techniques particuli`eres pour justifier un tel comportement, qu’on ne retrouve d’ailleurs pas sur d’autres syst`emes.

La deuxi`eme particularit´e est que la cr´eation de processus l´egers dans la biblioth`eque DCE poss`ede deux modes. En observant en d´etail la courbe des temps de cr´eation (la figure 7.2 pr´esente un extrait de la courbe DCE de la figure 7.1) on remarque qu’il y a deux modes de cr´eation des processus l´egers, un lent et un rapide. Environ un proces-sus sur trois est cr´e´e dans le mode lent. Ce comportement peut ˆetre expliqu´e par une politique d’allocation de ressources `a l’int´erieur de la biblioth`eque o`u les ressources sont allou´ees en une fois pour trois cr´eations de fils. Athapascan-0b utilisant la biblio-th`eque DCE pour ses processus l´egers, on y retrouve ces deux modes de cr´eation.

7.2. FONCTIONNALIT ´ES DE BASE 95

0 250 500 750 1000 1250 1500 1750 2000

0 100 200 300 400 500 600 700 800 900

Temps de création d’un fil (microsecondes)

Nombre de fils présents Athapascan−0b

DCE

FIG. 7.1 – Temps de cr´eation d’un processus l´eger DCE et Athapascan-0b sur AIX 3.2, fonction du nombre de processus l´egers d´ej`a pr´esents.

0 250 500

220 230 240 250 260 270 280 290

Temps de création d’un fil (microsecondes)

Nombre de fils présents

FIG. 7.2 – Deux modes de cr´eation d’un processus l´eger DCE sur AIX 3.2.

Le surcoˆut d’Athapascan-0b par rapport `a la biblioth`eque de processus l´egers est dˆu `a la gestion par Athapascan-0b d’informations relatives aux processus l´egers (in-formations sp´ecifiques `a chaque processus l´eger), au mode de passage de param`etres

`a ceux-ci ainsi qu’`a diverses op´erations de synchronisation. Comme dit section 6.3.1 page 86, il aurait ´et´e possible dans certains cas de r´eduire ce surcoˆut. Cette optimisation est techniquement simple et am´eliorerait la performance de la cr´eation d’un processus l´eger dans ces cas.

Ce qui n’est pas expliqu´e par la gestion que fait Athapascan-0b des processus l´e-gers est la l´eg`ere croissance du surcoˆut quand le nombre de processus l´el´e-gers aug-mente. L’implantation d’Athapascan-0b ne peut expliquer cette croissance (d’ailleurs sur AIX 4.2 on ne retrouve plus cette croissance du surcoˆut, voir titre suivant). Elle est

`a rapprocher de la croissance du temps de cr´eation d’un processus l´eger de la biblio-th`eque DCE. En effet, dans les actions que fait Athapascan-0b lors d’une cr´eation d’un esclave on trouve des appels `a la biblioth`eque DCE (utilisation de mutex pour prot´e-ger des acc`es `a des donn´ees partag´ees, cr´eation de zones sp´ecifiques `a un fil (thread-specific data) etc. . . ) et le coˆut de ces appels croˆıt avec le nombre de processus l´egers existant sur le nœud.

AIX 4.2

0 250 500 750 1000 1250 1500 1750 2000 2500 3000 3500 4000 5000 6000

0 100 200 300 400 500 600 700 800 900

Temps de création d’un fil (microsecondes)

Nombre de fils présents Athapascan−0b

Pthreads

FIG. 7.3 – Temps de cr´eation d’un processus l´eger Pthreads ou Athapascan-0b sur AIX 4.2, fonction du nombre de processus l´egers d´ej`a pr´esents.

7.2. FONCTIONNALIT ´ES DE BASE 97 La figure 7.3 pr´esente les temps de cr´eation de processus l´egers sur AIX 4.2. Le temps de cr´eation d’un processus l´eger AIX 4.2 est constant et ne d´epend pas du nombre de processus l´egers d´ej`a existants. On remarque alors que le temps de cr´ea-tion d’un processus l´eger d’Athapascan-0b ne d´epend pas du nombre de processus l´egers d´ej`a pr´esents dans le syst`eme et qu’il n’y a donc pas de croissance du surcoˆut (qui est de l’ordre de330 microsecondes, quand on compare le coˆut de cr´eation par AIX 4.2 au coˆut de cr´eation par Athapascan-0b, “hors perturbation”).

L’ordonnancement des processus l´egers sur AIX 4.2 est de type temps partag´e sans priorit´es, ce qui fait que tous les processus l´egers s’ex´ecutent (ou essayent de s’ex´ecuter s’ils sont bloqu´es) `a tour de rˆole. C’est l’explication avanc´ee pour justifier les perturbations de la courbe d’Athapascan-0b, o`u le d´emon d’Akernel et les d´emons d’Athapascan-0b s’ex´ecutent de temps en temps. On retrouve sur la courbe de temps de cr´eation des Pthreads de AIX 4.2 les mˆemes perturbations `a plus petite ´echelle. La figure 7.4 pr´esente les temps de cr´eation des processus l´egers Pthreads sur AIX 4.2. Ici la perturbation est moindre (attention, l’origine des axes est hors de la figure) qu’avec Athapascan-0b sˆurement du fait qu’il n’y a aucun processus l´eger prˆet `a s’ex´ecuter mis

`a part les processus l´egers cr´e´es pour ex´ecuter la fonction vide.

330 340 350 360 370 380 390 400

0 100 200 300 400 500 600 700 800 900

Temps de création d’un fil (microsecondes)

Nombre de fils présents

FIG. 7.4 – Perturbation du temps de cr´eation d’un processus l´eger Pthreads sur AIX 4.2.

Dans le document The DART-Europe E-theses Portal (Page 95-99)