Quand une ressource est partagée, 99,9% du temps, il n'y a pas de contention sur cette ressource
1/ je souhaiterai savoir d'où tu tire cette information
La probabilité est liée à plusieurs facteurs (je ne connais pas l'équation, cependant) :
la taille de la ressource critique, et donc le nombre d'instructions pour la lier et la modifier, et donc le temps CPU passé en section critique --> t_crit
le nombre d'instructions exécutés par chaque processus en dehors de la section critique, et donc le temps CPU plus le temps d'éviction (processus qui n'est pas élu pour tourner sur le CPU) passé en dehors de la section critique --> t_triv
le nombre de processus qui veulent accéder à la ressource critique --> nb_procs
le nombre de CPU utilisables --> nb_cpu
La probabilité évolue ainsi (à mon avis) :
augmente avec t_crit
augmente avec nb_procs
augmente avec nb_cpu
diminue avec t_triv
Dans la plupart des cas, le critère le plus important est t_triv, donc la probabilité de contention est faible, très faible. Par exemple pour deux processus qui exécutent l'un 100k et l'autre 50k instructions hors section critique, et partagent une section critique de 20 instructions, et qui tournent en permanence (toujours élus, sur deux processeurs) :
Pcrit(x) : probabilité que le processus x ne soit pas dans sa section critique.
Pcritsys : probabilité qu'aucun processus du système ne soit dans leur section critique.
50k instructions, ce n'est déjà pas beaucoup, quand tu vois le nombre d'instructions exécutées pour afficher une fenêtre à l'écran, par exemple.
Et les systèmes dans lesquels un très grand nombre de processus (>10) se battent pour la même ressource critique, est assez faible.
Alors oui, 99.9% est un nombre tiré de mon chapeau. C'est peut-être plus, peut-être moins ; mais assez proche de la réalité. Dans la plupart des cas, ça ne doit pas descendre beaucoup en dessous de 99%.
[^] # Re: A voir Re: Exemple de gain avec la mémoire transactionnelle ?
Posté par ymorin . En réponse à la dépêche Sortie de la version 4.7 du compilateur GCC. Évalué à 6. Dernière modification le 23 mars 2012 à 15:05.
La probabilité est liée à plusieurs facteurs (je ne connais pas l'équation, cependant) :
La probabilité évolue ainsi (à mon avis) :
Dans la plupart des cas, le critère le plus important est
t_triv, donc la probabilité de contention est faible, très faible. Par exemple pour deux processus qui exécutent l'un 100k et l'autre 50k instructions hors section critique, et partagent une section critique de 20 instructions, et qui tournent en permanence (toujours élus, sur deux processeurs) :Pcrit(x) : probabilité que le processus x ne soit pas dans sa section critique.
Pcritsys : probabilité qu'aucun processus du système ne soit dans leur section critique.
Pcrit(0) = 1 - (20/100000) = 0.9998 = 99.98%
Pcrit(1) = 1 - (20/50000) = 0.9996 = 99.96%
Pcritsys = Pcrit(0) * Pcrit(1) ~= 0.9994 = 99.94% (arrondi par défaut)
50k instructions, ce n'est déjà pas beaucoup, quand tu vois le nombre d'instructions exécutées pour afficher une fenêtre à l'écran, par exemple.
Et les systèmes dans lesquels un très grand nombre de processus (>10) se battent pour la même ressource critique, est assez faible.
Alors oui, 99.9% est un nombre tiré de mon chapeau. C'est peut-être plus, peut-être moins ; mais assez proche de la réalité. Dans la plupart des cas, ça ne doit pas descendre beaucoup en dessous de 99%.
Hop,
Moi.