Téléchargez l'application
Tom's Hardware sur l'App Store
Toute l'actu informatique de référence sur votre iPhone
Oui Non

Jolt sort vos programmes des boucles infinies

par - source: Ars Technica

La mort des bugs ?

Ne jamais voir son ordinateur planter, le rêve de tout utilisateur. Beaucoup d'efforts ont été déployés au fil des ans pour que ce rêve devienne réalité, comme récemment l'isolation des processus dans les navigateurs. Une nouvelle voie est explorée par des chercheurs du MIT qui ont conçu Jolt. Jolt surveille l'exécution de tout autre programme et le débloque si jamais il se lance dans une boucle infinie.

Jolt a vu le jour quand un de ces créateurs était bloqué dans la rédaction d'un document par Word qui plantait. A l'aide d'un outil de débuggage, l'homme a constaté que Word s'enfermait dans une boucle. En l'en faisant sortir manuellement, le chercheur a débloqué Word et a pu finir son travail.

Jolt fonctionne sur le même principe : il compare l'état du programme en mémoire au début de chaque itération d'une boucle. Si rien ne change, Jolt interrompt la boucle pour que le reste du programme s'exécute. Ce fonctionnement impose une grosse contrainte : il faut recompiler chaque programme pour ajouter des appels de fonction à chaque démarrage et fin de chaque boucle et pour indiquer à quel endroit l'exécution doit reprendre en cas de blocage. 

Mais une fois ceci fait, Jolt est efficace. Ses créateurs l'ont testé et dans 7 situations sur 8 Jolt a trouvé la boucle infinie et a décoincé le programme qui a fini son exécution de manière normale sauf pour la partie concernée par la boucle fautive. Dans 2 des 8 cas, le résultat fourni par Jolt était même identique au résultat d'une version patchée du programme. La surcharge de calcul due à Jolt variait entre 0,5 et 8,6 %. Les chercheurs travaillent dorénavant sur Bolt, un Jolt libéré de la contrainte de la recompilation. Et l'on se reprend à rêver.

Partager:
19
Commentaires
X
Valider

Commentaires
Ajouter un commentaire
soa 03/08/2011 16:32
Masquer
-3+

Citation :Ses créateurs l'ont testé et dans 8 situations sur 7 Jolt a trouvé la boucle infinie et a décoincé le programme


Lave plus blanc que blanc :D

samba75 03/08/2011 16:32
Masquer
-0+

8 situations sur 7, trop fort !!

SpadVIII 03/08/2011 16:49
Masquer
-2+

En plus si les plantages d'applies n'étaient dus qu'à des boucles infinies, ça serait simple...

Fuli10 03/08/2011 16:51
Masquer
-0+

Hélas, ce n'est pas avec ce genre de programme que l'on va améliorer la qualité global d'un produit.
Un programme qui plante impose aux développeurs de faire du support (mise à jour) le plus rapidement possible suivant la gravité, et donc de corriger le problème. Si un système tel que Jolt se retrouve intégré partout, on ne verra plus de problème sauf un message abscons (plantage 0x00101010) et les patchs mettront plus de temps à sortir, et le code sera globalement plus instable mais on s'en fiche... jusqu'au moment ou l'instabilité détruit le travail que l'on a produit (le document word), et ou le débogage sera d'autant plus difficile (c'est quel plantage qui a cassé le document ?).
Bref, Jolt ne sera utile qu'en cas de débogage, et encore...

matthieu lamelot 03/08/2011 17:10
Masquer
-3+

soa :
Lave plus blanc que blanc


samba75 :
8 situations sur 7, trop fort !!


Fait trop chaud pour travailler...

Kenelm 03/08/2011 17:30
Masquer
-2+

Y'a pas grand chose d'extraordinaire... c'est une super mauvaise idée, ça résout aucun problème, et surtout ça va pas forcément débloquer l'appli. En fait, ça peut même entraîner sa fermeture pure et simple. Voire pire : si une appli plante, c'est pas pour faire chier, c'est aussi parce qu'elle ne peut plus garantir son fonctionnement normal, et que pour éviter des actions aléatoires, on l'arrête.

J'ai encore vu ça y'a quelques minutes sur une appli que je développe. Elle plante pendant la sauvegarde, donc j'ai viré le truc qui plante à savoir une boucle infinie, histoire de continuer à bosser dessus. Bah résultat, au lieu de planter pendant la sauvegarde, ça la réussit sauf que ça écrit un fichier vide. Donc en gros si ça plante, on perd une partie du boulot, mais si ça continue, hé bah on perd tout...

Sinon y'a déjà des tas de gens qui mettent en place des procédés de ce genre. On lance un thread, on suit son exécution, et si on voit que ça prend trop de temps, qu'il fournit pas le travail qu'il est sensé fournir... on l'arrête. Ou on se sert du watchdog. Mais quoi qu'il en soit, c'est pas magique un programme, on peut pas se permettre de faire des choses comme ça.

V@rgace 03/08/2011 18:24
Masquer
-2+

matthieu lamelot :
Fait trop chaud pour travailler...



Tu veux un pulco citron ? :)

soundsystem 03/08/2011 19:34
Masquer
-0+

Ca marcherait sur des pilotes de cartes graphiques par exemples? Car la mienne à la facheuse tendance à s'enfermer dans des boucles infinies et W7 (ou VPU Recover sous XP) le redémarre sans cesse.

madmike41 03/08/2011 20:02
Masquer
-0+

Sa me rappele " Norton CrashGuard " qui empechait les programems de planter masi qui lui fesait GELER completement Windows :P ... une vraie daube

http://www.symantec.com/about/news [...] 9960930_01

1815 03/08/2011 20:40
Masquer
-1+

et le mot "norton" ne t'avait pas mis la puce à l'oreille?

wince 03/08/2011 21:22
Masquer
-0+

c etais pas trop pourri norton a l epoque !!!

anonymous 03/08/2011 22:00
Masquer
-0+

7 situations sur 8 Jolt

anonymous 03/08/2011 22:14
Masquer
-0+

sous x11 il y avait une grosse boucle infinie (while (1)) afin d'attendre/traiter les événements claviers/souris. Jolt risque fort de porter préjudice à bien des "vraies" boucles infinies !

spae0899 03/08/2011 22:35
Masquer
-0+

Beurk... Une courtilière sur la langue, tu parles d'un beug ! [:spae0899:19]

Chklang 04/08/2011 06:47
Masquer
-0+

zaxxon123 > sources?

philou_06450 04/08/2011 07:14
Masquer
-0+

Ils feraient mieux de réfléchir à une méthodologie pour justement éviter ce genre de bogues, et non patcher en dynamique du code inconnu...Je vois bien le résultat sur un A320 qui entre dans une boucle infinie !!!

anonymous 04/08/2011 09:33
Masquer
-0+

N'étant pas un programmeur (quelques scripts VBA par ci/par là).
Je me demande si les programmeurs ne font ils pas moins d'effort ?
Il fut un temps où les PC étaient limités en mémoire 640Ko RAM et en espace disque, ils devait faire des prouesses techniques/imaginations/... pour que leurs programmes tournent bien.
Maintenant, le programme tourne pas ou tourne moins bien => acheter + de RAM ou acheter un disque plus grand ou acheter un CPU/GPU plus puissant ou tout à la fois

oldies 04/08/2011 10:37
Masquer
-0+

@brutus--OS > il y a malheureusement beaucoup de développeurs qui pensent qu'avec les derniers matériels ou dernières versions de dotNet/Java, on n'a plus à ce préoccuper des perfs...

Cela fait plus de 14 ans, que je travaille en informatique, la performance est toujours une problématique pour beaucoup d'applications. Certains architectes ou développeurs "pondent" des m.rd.es immondes (et en sont fiers) et laissent les équipes d'exploitation dans une situation où l'application est trop lente ou prend trop de ressources systèmes. Résultat, c'est les utilisateurs qui trinquent..

Sinon, le développement est une activité difficile dans le sens où malgré les plus grandes précautions, il y a toujours des bugs. Et juste un peu mot pour la fin, la qualité d'un logiciel (dont la fiabilité et la performance) n'arrive jamais par hasard. Il faut qu'il y ait une volonté et du budget pour améliorer significativement la qualité d'un logiciel quelqu'il soit.

Kenelm 04/08/2011 16:52
Masquer
-0+

Quand on voit qu'aujourd'hui faut un PC de compet' pour surfer sur le ouaibe et afficher des pages dont la complexité et la réactivité dépassent même pas un jeu sur SNES, on se rend qu'il y a effectivement un problème de perfs aujourd'hui... :D

Publicité

Les offres du moment

Newsletters


OK