[News] Dimmunix : exit les bugs
Modérateur : Modérateurs
- Michel
- Messages : 19968
- Inscription : 14/07/2004 - 14:48:20
- Activité : Ingénieur
- Localisation : Cote d'Azur
[News] Dimmunix : exit les bugs
Une nouvelle approche pour gérer les conflits entre logiciels a été développée par le Laboratoire de George Candea, à l’EPFL (Ecole Polytechnique Fédérale de Lausanne). La dernière version de Dimmunix, disponible en ligne, permet à un réseau d’ordinateurs de coopérer pour éviter les bugs. Le nouvel outil, développé par le Laboratoire des systèmes fiables, «Dimmunix», permet de contourner les bugs survenant dans les logiciels sans intervention du programmeur ni de l’uti...
Re: [News] Dimmunix : exit les bugs
Après avoir lu la description, Dimmunix ne "corrige" pas les bugs mais permet simplement d'éviter un type particulier de blocage : le deadlock. C'est un cas particulier de blocage d'application (ou de quelques threads d'une application) qui survient quand 2 threads s'attendent l'un l'autre. Dimmunix ne va pas vraiment altérer le fonctionnement de l'application, mais ordonner l'obtention de jeton sur mutex afin d'éviter que le blocage mutuel des 2 threads en question ne se reproduise. Le programme ne fait que demander ce jeton, il est attribué par l'OS pour les programmes en natif, la machine virtuelle pour les programmes en java.
C'est donc là que dimunix opère, il est capable de repérer un cas de lock (prise de jeton sur mutex) par un thread ayant déjà provoqué un deadlock, puis de "déméler" l'exécution en faisant patienter les autres threads sur leurs locks de sorte à ce que le plantage ne se reproduise pas.
Tout autre type de bug n'est absolument pas géré par Dimmunix (et les deadlock ne représentent absolument pas la majorité des bugs).
C'est donc là que dimunix opère, il est capable de repérer un cas de lock (prise de jeton sur mutex) par un thread ayant déjà provoqué un deadlock, puis de "déméler" l'exécution en faisant patienter les autres threads sur leurs locks de sorte à ce que le plantage ne se reproduise pas.
Tout autre type de bug n'est absolument pas géré par Dimmunix (et les deadlock ne représentent absolument pas la majorité des bugs).
-
- Messages : 7
- Inscription : 29/11/2009 - 13:09:50
- Activité : Ingénieur
Re: [News] Dimmunix : exit les bugs
Mais c'est énorme cette technologie!!!
En plus j'adhère totalement à la philosophie "contournement de bug". Souvent bien plus facile et bien plus rapide que corriger le dit bug.
Sans troller, va vraiment falloir qu'ils installent ça dans les OS( linux et windows en tête).
C'est des technos comme ça que je veux dans mes OS...
En plus j'adhère totalement à la philosophie "contournement de bug". Souvent bien plus facile et bien plus rapide que corriger le dit bug.
Sans troller, va vraiment falloir qu'ils installent ça dans les OS( linux et windows en tête).
C'est des technos comme ça que je veux dans mes OS...
Re: [News] Dimmunix : exit les bugs
moi aussi à lire l'article je trouve que ça fait envie, j'ai souvent plein d'applications ouvertes, et parfois ça plante, je me demande si ce logiciel permet d'accorder des priorités à tel ou tel programme, excuse moi BOUDIN, je n'ai pas bien suivi tes explications, car un peu techniques, bienvenu au passage.
Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.
Re: [News] Dimmunix : exit les bugs
Merci 
Pour simplifier, un programme peut se décomposer en plusieurs "threads". Un thread peut être vu comme une suite d'instruction. Chaque thread s'exécute en parallèle des autres threads. Donc le programme n'est pas une simple suite d'instructions mais plusieurs suites d'instructions qui se déroulent en parallèle.
Là où ça se complique un peu, c'est que les différents threads d'un programme peuvent avoir à opérer sur les mêmes données. Pour garder une cohérence, il faut donc pouvoir synchroniser ces threads. Prenons par exemple une suite d'opérations mathématiques basiques :
a = 5
a = a + 1
a = a * 3
Si l'on modifie l'ordre d'exécution des opérations doit être respecté pour que le résultat soit cohérent.
Dans le cadre d'un programme informatique, si un premier thread s'occupe de faire l'opération a = a + 1 puis un second thread s'occupe de faire a = a * 3, ceux-ci s'exécutant en parallèle, rien ne garantie que la multiplication se fera après l'addition.
C'est là qu'interviennent les mutex. Le rôle d'un mutex est de permettre de synchroniser les thread. Dans le cas présent, un mutex permettra au thread de multiplication d'attendre que le thread d'addition ai bien effectué le traitement, donc de garantir la cohérence du résultat.
L'un des risques, de cette méthode est qu'un thread attende une opération qui ne se termine jamais, ce qui arriverait dans l'exemple pour le thread de multiplication si le thread d'addition n'était jamais lancé (ce qui n'est pas censé arriver quand un programme est conçu à la perfection, mais ça...). On peut aussi avoir des cas plus complexes où le thread 1 attend le thread 2 qui lui-même attend le thread 3 qui lui-même attend le thread 1.
Cette situation s'appelle "deadlock".
Et c'est précisément cette situation qu'est capable d'éviter Dimmunix. Il intervient au niveau de ces mutex pour "affiner" la façon dont les threads se synchronisent en se basant sur l'analyse de situations passées dans lesquelles une situation avait aboutit à un deadlock.
Je tenais a préciser ça car la news me donnait l'impression d'un logiciel magique corrigeant les "bugs" (qui est un terme très large). Ca reste quelque-chose de très intéressant et sûrement un outil très puissant, autant pour fiabiliser un logiciel en exploitation qu'avoir des informations pour débuguer un logiciel, mais ça ne corrigera pas toutes les formes de plantage.

Pour simplifier, un programme peut se décomposer en plusieurs "threads". Un thread peut être vu comme une suite d'instruction. Chaque thread s'exécute en parallèle des autres threads. Donc le programme n'est pas une simple suite d'instructions mais plusieurs suites d'instructions qui se déroulent en parallèle.
Là où ça se complique un peu, c'est que les différents threads d'un programme peuvent avoir à opérer sur les mêmes données. Pour garder une cohérence, il faut donc pouvoir synchroniser ces threads. Prenons par exemple une suite d'opérations mathématiques basiques :
a = 5
a = a + 1
a = a * 3
Si l'on modifie l'ordre d'exécution des opérations doit être respecté pour que le résultat soit cohérent.
Dans le cadre d'un programme informatique, si un premier thread s'occupe de faire l'opération a = a + 1 puis un second thread s'occupe de faire a = a * 3, ceux-ci s'exécutant en parallèle, rien ne garantie que la multiplication se fera après l'addition.
C'est là qu'interviennent les mutex. Le rôle d'un mutex est de permettre de synchroniser les thread. Dans le cas présent, un mutex permettra au thread de multiplication d'attendre que le thread d'addition ai bien effectué le traitement, donc de garantir la cohérence du résultat.
L'un des risques, de cette méthode est qu'un thread attende une opération qui ne se termine jamais, ce qui arriverait dans l'exemple pour le thread de multiplication si le thread d'addition n'était jamais lancé (ce qui n'est pas censé arriver quand un programme est conçu à la perfection, mais ça...). On peut aussi avoir des cas plus complexes où le thread 1 attend le thread 2 qui lui-même attend le thread 3 qui lui-même attend le thread 1.
Cette situation s'appelle "deadlock".
Et c'est précisément cette situation qu'est capable d'éviter Dimmunix. Il intervient au niveau de ces mutex pour "affiner" la façon dont les threads se synchronisent en se basant sur l'analyse de situations passées dans lesquelles une situation avait aboutit à un deadlock.
Je tenais a préciser ça car la news me donnait l'impression d'un logiciel magique corrigeant les "bugs" (qui est un terme très large). Ca reste quelque-chose de très intéressant et sûrement un outil très puissant, autant pour fiabiliser un logiciel en exploitation qu'avoir des informations pour débuguer un logiciel, mais ça ne corrigera pas toutes les formes de plantage.
Re: [News] Dimmunix : exit les bugs
ok merci, c'est très bien expliqué!
Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.
-
- Messages : 225
- Inscription : 15/03/2009 - 23:43:43
- Activité : Etudiant
Re: [News] Dimmunix : exit les bugs
klinfran a écrit :je me demande si ce logiciel permet d'accorder des priorités à tel ou tel programme
Windows le permet déjà, et on trouve d'ailleurs le paramètre "priorité du processus" dans les options de certains programmes. (Winamp par exemple)
Mais effectivement c'est pas très répandu, et je sais pas si c'est vraiment bien géré.
Re: [News] Dimmunix : exit les bugs
Ca m'étonnerais fortement qu'il permette de modifier les priorités d'un programme, ce n'est pas un ordonnanceur. C'est le système d'exploitation qui remplit ce rôle.
Re: [News] Dimmunix : exit les bugs
Comme le décrit à juste titre "Boudin" (L-O Boudin!) cette technologie est destinée uniquement aux applications de types serveur ou calcul en parallèle. Voyez sur les forums informatiques comment de "pauvres" informaticiens peuvent s'arracher les cheveux avec des problèmes de sémaphores.
Certains vieux de vielle diraient que le mieux c'est encore d'écrire les programmes proprement et sans bugs.
... Certes oui ! Mais il est impossible de prévoir tout les cas pouvant entrainer une condition de course générant une erreur.
C'est très intelligent d'avoir réaliser Dimmunix, mais... Cela ne vas révolutionner l'informatique de monsieur tout le monde.
Hélas! Il y a encore bien des moyens de faire "planter" un logiciel...
Note pour les curieux: sous Unix, la commande nice est veille comme le monde informatique. Et l'on parle maintenant de cpu-affinity ainsi que de gestion fine de l'ordonnanceur.
Certains vieux de vielle diraient que le mieux c'est encore d'écrire les programmes proprement et sans bugs.

... Certes oui ! Mais il est impossible de prévoir tout les cas pouvant entrainer une condition de course générant une erreur.
C'est très intelligent d'avoir réaliser Dimmunix, mais... Cela ne vas révolutionner l'informatique de monsieur tout le monde.
Hélas! Il y a encore bien des moyens de faire "planter" un logiciel...

Note pour les curieux: sous Unix, la commande nice est veille comme le monde informatique. Et l'on parle maintenant de cpu-affinity ainsi que de gestion fine de l'ordonnanceur.
L'esprit c'est comme un parachute: s'il reste fermé, on s'écrase. -Franck Vincent Zappa-
- cisou9
- Messages : 10103
- Inscription : 12/03/2006 - 15:43:01
- Activité : Retraité
- Localisation : Pertuis en Lubéron
- Contact :
Re: [News] Dimmunix : exit les bugs

Certains vieux de vielle diraient que le mieux c'est encore d'écrire les programmes proprement et sans bugs.
Eh oui les vieux comme moi il y a quarante ans j'ai fais pas mal de programmation et j'avais quasiment pas de bugs.

Un homme est heureux tant qu'il décide de l'être et nul ne peux l'en empêcher.
Alexandre Soljenitsyne.
Alexandre Soljenitsyne.
-
- Messages : 1283
- Inscription : 13/10/2008 - 18:39:29
- Activité : Etudiant
- Localisation : Grenoble
Re: [News] Dimmunix : exit les bugs
C'était peut être pas la même complexité aussi non?
"Vivre simplement pour que d'autres, simplement, puissent vivre"