WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Mécanisme multicritère de découverte de services dans les grilles de calcul

( Télécharger le fichier original )
par Marie Héléne Mballo
Université Cheikh Anta Diop de Dakar - Diplôme d'étude approfondie 2009
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

[Marie Hélène Wassa Mballo] Page 71

4.1.3 Les algorithmes de gestion de services

Concernant la gestion des services, nous définissons trois algorithmes qui sont : l'insertion, la recherche et la suppression. Ensuite nous étudions la complexité des différents algorithmes en considérant les paramètres suivants :

A : correspond au nombre de noeuds logiques du niveau 1 qui peut varier de 1 à nsyst

B : correspond au nombre de fils maximum que peut avoir un noeud du niveau 1, et ce paramètre varie de 1 à nlic . Comme nous l'avons écrit dans la partie 4.1.2, la licence ne peut être que deux types soit libre ou propriétaire, donc nlic=2.

C : représente le nombre de fils maximum que peut avoir un noeud du niveau 2. Ce nombre varie de 1 à nlang.

D : représente le nombre de fils que peut avoir un noeud du niveau 3. Cette variable est comprise entre 1 et nserv.

Dans notre mémoire nous allons calculer la complexité dans le pire des cas, c'est-à-dire nous allons considérer que les valeurs maximales des paramètres cités ci-dessus. Nous déterminons la complexité temporelle dans ce mémoire, puisque ce qui est le plus important dans un algorithme c'est d'exécuter des calculs dans des délais raisonnables.

4.1.3.1 Insertion d'un service

Un service hébergé par un serveur doit se trouver dans l'arbre de services, dont l'évolution dépend des arrivées et des départs des services.

Un noeud pair, voulant hébergeant un service, lance une requête xml d'insertion au niveau de son arbre. Cette requête prend comme paramètre le système d'exploitation, la licence, le langage, le nom du service, l'emplacement physique et la description.

Lors de ce processus d'insertion, une recherche est effectuée d'abord pour savoir si le noeud logique à insérer ne se trouve pas déjà dans l'arbre.

Dans notre algorithme, l'opération de création de noeuds est faite lorsque le noeud logique ne se trouve pas dans l'arbre. Cette opération utilise deux fonctions : CreerNoeud(v), ou v représente la valeur à insérer dans le noeud logique et CreerNoeudfils(v) qui permet la création des fils du nouveau noeud logique.

METHODE inserer

ENTREE A :arbre, syst :chaine, lic :chaine ,lang :chaine, nomserv :chaine, @IP :nombre, description :chaine

nfilsg :Noeud //noeud fils gauche du noeud courant nfrdt :Noeud //noeud frère droit du noeud courant nc :Noeud //nc est le noeud courant

nc(-A.racine

nc(-nfilsg

[Marie Hélène Wassa Mballo] Page 72

Tant que nc?null et nc.valeur?syst et nc.valeur<syst //parcours du niveau 1

nc(-nfrdrt //nc.valeur=valeur contenue dans le noeud courant

Fin tant que

Si nc=null ou nc.valeur>syst

CreerNoeud(syst) //création d'un noeud contenant la valeur du système

CreerNoeudfils(lic)//création du noeud fils contenant la licence

CreerNoeudfils(lang)//création du noeuf fils contenant le langage

CreerNoeudfils(nomserv,@IP,description)

Fin si

Si nc.valeur=syst

nc(-nfilsg

Tant que nc?null et nc.valeur?lic et nc.valeur<lic /parcours du niveau 2

nc(-nfrdrt

Fin tant que

Si nc=null ou nc.valeur>lic

CreerNoeud(lic)

CreerNoeudfils(lang)

CreerNoeudfils(nomserv,@IP,description)

Fin si

Si nc.valeur=lic

nc(-nfilsg

Tant que nc?null et nc.valeur?lang et nc.valeur<lang /parcours du niveau 3

nc(-nfrdrt

Fin tant que

Si nc=null ou nc.valeur>lang

CreerNoeud(lang)

CreerNoeudfils(nomserv,@IP,description)

Fin si

Si nc.valeur=lang

CreerNoeudfils(nomserv,@IP,description)

Fin si

Fin si

Fin si

Fin inserer

Etude de la complexité de l'algorithme d'insertion

[Marie Hélène Wassa Mballo] Page 73

[Marie Hélène Wassa Mballo] Page 74

Nous rappelons que les opérations de création de noeud dans l'arbre ont une complexité égale à 1. Pour déterminer la complexité, nous avons les éléments suivants :

· L'instruction 1 de l'algorithme d'insertion s'effectue en O(nsyst), puisque nous cherchons l'existence du système d'exploitation dans l'arbre avant de créer un nouveau noeud logique.

· L'instruction du bloc 4-9 de cet algorithme est une constante qui s'effectue en O(5), puisque nous faisons un test sur la valeur du noeud courant et ensuite un appel de quatre fois à l'opération de création d'un noeud logique. La complexité de ce bloc est inférieure à celle du bloc 10-34, donc nous ne comptabiliserons que cette dernière.

· L'instruction du bloc 10-34 regroupe plusieurs instructions, nous allons voir la complexité de chacune d'elles

o L'instruction 12 s'effectue en O(2) puisque une comparaison est faite entre les noeuds logiques du niveau 2 et la licence passée en paramètre

o L'instruction du bloc 15-19 se fait en O(4) puisque nous faisons appel trois fois à l'opération de création de noeuds. Cette instruction est inférieure au bloc d'instruction 20-32 donc nous considérons cette dernière.

o Le bloc 20-32 est composé de plusieurs instructions

· L'instruction 22 s'effectue en O(nlang) puisque nous parcourons les noeuds du niveau 3 pour voir si le type de langage à insérer n'existe pas déjà dans l'arbre de services.

· L'instruction du bloc 25-28 se fait en O(3) car nous ajoutons deux noeuds logiques et avant cet ajout un test Si est effectué.

· L'instruction du bloc 29-31 se fait en O(2) car un test Si est effectué suivi de la création d'un noeud logique.

o La complexité totale du bloc 20-32 est égale à la somme des complexités des différentes instructions qui la composent, ce qui donne donc : O(nlang)+O(3)+O(2)= O(nlang)

· La complexité du bloc 10-34 est égale à O(2)+O(nlang)= O(nlang)

· En résumé, en parcourant toutes les étapes de l'algorithme d'insertion nous voyons qu'il a une complexité dans l'ordre de :

O(nlang)+ O(nsyst)

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"En amour, en art, en politique, il faut nous arranger pour que notre légèreté pèse lourd dans la balance."   Sacha Guitry