IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Expert éminent sénior
    Avatar de Coriolan
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2016
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2016
    Messages : 701
    Points : 51 810
    Points
    51 810
    Par défaut Un bogue informatique avait contraint le Boeing 787 à être redémarré tous les 248 jours
    Un bogue informatique avait contraint le Boeing 787 à être redémarré tous les 248 jours
    pour éviter une interruption totale du système électrique

    De nos jours, toutes nos actions quotidiennes impliquent des programmeurs, du simple fait de passer un appel sur téléphone au pilotage des avions de ligne. C’est pourquoi on a vu pas mal de fois des gens tués dans des accidents de voiture à cause de bogues de logiciels alors que d’autres ont péri dans des crashs d’avions pour la même raison.

    Parfois même, des projets de grande envergure sont condamnés à l’échec à cause d’un simple dysfonctionnement informatique lié au codage, à l’image du tristement célèbre vol 501 du lanceur européen Ariane 5 qui a eu lieu le 4 juin 1996 et qui s’est soldé par un échec. Ou plus récemment la chute libre de l'atterrisseur Schiaparelli de l’ESA (Agence spatiale européenne) sur le sol de Mars à cause d’un bogue informatique.

    Vous l’aurez compris, même les grands projets coûtant parfois des milliards et des années de travail se trouvent voués à l’échec à cause de simples lignes de code. Mais qu’en est-il d’un avion de ligne moderne comme le Boeing 787 ?

    Nom : 130826162749-boeing-787-9-horizontal-large-gallery.jpg
Affichages : 21125
Taille : 129,7 Ko
    Boeing 787-9 Dreamliner

    En 2015, il a été découvert qu’un bogue informatique pouvait empêcher les pilotes de garder le contrôle du Boeing 787, possiblement en plein vol, a informé la Federal Aviation Administration (FAA) dans une directive destinée à toutes les compagnies aériennes utilisant cet avion.

    Le bogue qui n’est rien d’autre qu’un problème classique de débordement d’entier, est situé au niveau du contrôle des générateurs de l’avion. Le bogue rapporté par Boeing à la FAA est déclenché lorsque ces derniers sont laissés allumés durant 248 jours (8 mois). Le 787 a quatre de ces unités de contrôle des générateurs, qui allumées simultanément, peuvent s’arrêter en même temps et causer une interruption totale du système électrique.

    Cette situation a poussé l’agence américaine de l’aviation civile à émettre une directive d’aéronavigabilité : « Nous avons émis cette directive pour éviter la perte de tout le courant électrique, ce qui pourrait causer une perte du contrôle de l’avion, » a écrit la FAA. « Si les quatre unités de contrôle des générateurs (associées aux générateurs du moteur) venaient d’être allumées simultanément, après 248 jours d’allumage, tous les générateurs entreront en mode sécurité-défaut, causant une perte de tout le courant électrique, quelle que soit la phase de vol. ».

    Autrement dit, si l’échec du système électrique venait d’arriver durant une phase critique du vol comme le décollage ou l’atterrissage, ou bien lors d’une manœuvre en plein air, la perte du contrôle pourrait être catastrophique.

    À l’époque, la FAA a considéré cette situation comme étant critique et a promulgué une nouvelle règle immédiate pour remédier à cette situation. En même temps, Boeing avait promis de publier un correctif.

    « La directive résout un problème d’une condition qui a été observée dans un laboratoire. Des tests de simulation ont révélé que cette situation est possible dans des cas où l’énergie d’un avion est laissée allumée pendant plus de 8 mois continus. Aucun avion dans la flotte n’a connu une telle situation, » a informé un porte-parole de Boeing.

    Selon les propres registres de Boeing à l’époque, tous les avions 787 en service ont été arrêtés et redémarrés dans le cadre de leur maintenance. Boeing avait informé que les opérateurs vont continuer à redémarrer leurs avions de façon périodique pendant des intervalles de temps déterminés jusqu’à la disponibilité d’un correctif logiciel.

    La note de la FAA n’avait pas donné plus de détails sur ce bogue, mais il s’agirait d’un problème de débordement d’entier 32-bit déclenché après 2^31 centisecondes (248,55 jours) de fonctionnement continu. 2^31 étant le nombre de secondes dans 248 jours multipliés par 100 (un compteur en centièmes de seconde).

    Pour implémenter un tel compteur, deux options peuvent être suivies, soit augmenter le nombre de bits utilisés, ce qui empêche le débordement, ou bien travailler avec l’arithmétique multiprécision. Certains commentateurs ont suggéré qu’il y a ici un besoin de passer à une architecture 64 bits puisqu’elle permet d’utiliser plus de registres (généraux et XMM), un meilleur support pour PIC (position-independent code), et en général une meilleure performance des instructions syscall/sysret du système. Et dans ce cas, la période nécessaire pour le redémarrage de l'avion passerait de 248 jours à 3 milliards d'années !

    Nom : hard_reboot.png
Affichages : 16837
Taille : 20,4 Ko
    Redémarrer le Dreamliner en plein vol n'est pas une solution possible

    Un intéressant point rapporté par la FAA est qu’il faut presque une heure pour redémarrer les unités de contrôle des générateurs dans le 787, donc il n’y a pas un bouton de redémarrage comme un serveur par exemple.

    Ce bogue montre juste comment l’immersion de l’informatique dans l’ingénierie rend la conception des systèmes embarqués de plus en plus complexe. Ainsi, l’Airbus A380, un avion dont la complexité est comparable à celle du Dreamliner, compte plus de 100 millions de lignes de code.

    Source : federalregister - The Guardian

    Et vous ?

    Avez-vous déjà rencontré des bogues similaires ? Comment avez-vous entrepris de les corriger ?

    Voir aussi

    Selon ce développeur, la fausse alerte de missile à Hawaii est due à la conception logicielle, elle est de la faute des développeurs !
    Des programmeurs avouent avoir écrit du code non éthique et parfois illégal en raison des requêtes de plus en plus contraignantes de leurs employeurs
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Invité
    Invité(e)
    Par défaut
    Cf liste suivante, non exhaustive probablement

    https://en.wikipedia.org/wiki/List_of_software_bugs


    Dans cette liste, j'ai d'ailleurs retrouvé un bug que j'avais vu de mes propres yeux il y a quelques années sur le jeu PAC-MAN (c'est pas moi qui jouais, c'était un pote addict à ce jeu )

    http://www.donhodges.com/how_high_can_you_get2.htm

    Moins dangereux que le bazar survenu au Boeing 787 mais somme toute spectaculaire

    -VX

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    Graphic Programmer
    Inscrit en
    Mars 2006
    Messages
    1 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Graphic Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 545
    Points : 3 941
    Points
    3 941
    Par défaut
    comme pour tout type d'appareil homologué il ya deux type d’énergie. il perde électrique, il leur reste l'hydraulique par contre il vont avoir du mal mais c'est possible, ca a déjà été fait

  4. #4
    Expert confirmé Avatar de sergio_is_back
    Homme Profil pro
    Responsable informatique, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable informatique, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 084
    Points : 5 596
    Points
    5 596
    Par défaut
    Citation Envoyé par Aiekick Voir le message
    comme pour tout type d'appareil homologué il ya deux type d’énergie. il perde électrique, il leur reste l'hydraulique par contre il vont avoir du mal mais c'est possible, ca a déjà été fait
    Oui mais il n'y pas plus de commandes hydrauliques sur les appareils toutes les commandes sont maintenant électriques avec redondance...
    De plus l'hydraulique c'est pas magique, la pression est fournie par des pompes.... électriques... ou entrainée mécaniquement par les générateurs...

  5. #5
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 592
    Points : 18 498
    Points
    18 498
    Par défaut
    C'est pas trop grave, il y a un compteur de secondes et au bout de 231 il y a un débordement d'entier 32 bits.
    Redémarrer un système dans un avion ce n'est pas la fin du monde...
    248 jours c'est pas ultra fréquent...

    C'est beaucoup moins grave que ça :
    Vol 501 d'Ariane 5
    L'incident, dû à un dépassement d'entier dans les registres mémoire des calculateurs électroniques utilisés par le pilote automatique, a provoqué la panne du système de navigation de la fusée, causant de fait sa destruction ainsi que celle de la charge utile. Cette charge utile était constituée des quatre satellites de la mission Cluster, d'une valeur totale de 370 millions de dollars.
    ===
    Est-ce que sans passer par un système 64 bits il n'y aurait pas moyen de retarder le problème ?
    Si tu prends 2 entiers, t’incrémentes un deuxième compteur à chaque fois que le premier fait un tour et voilà.
    Et après ça doit faire dans les 231 * 231 secondes avant que la combinaison des 2 compteurs soit au max.
    Keith Flint 1969 - 2019

  6. #6
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 719
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 719
    Points : 15 105
    Points
    15 105
    Par défaut
    Citation Envoyé par Ryu2000 Voir le message
    C'est pas trop grave, il y a un compteur de secondes et au bout de 231 il y a un débordement d'entier 32 bits.
    Redémarrer un système dans un avion ce n'est pas la fin du monde...
    Non, il faut juste patienter une heure...
    Et si les 4 sont en carafe en même temps, tu te retrouves avec un fer à repasser de je sais pas combien de centaines de tonnes à 10 000 pieds, mais tout va bien, Ryu2000 est le pilote.
    Tu aurais pu faire l'effort de lire l'article en entier. Maintenant si tu ne comprends pas ce que tu lis, c'est un autre problème...


    Citation Envoyé par Ryu2000 Voir le message
    C'est beaucoup moins grave que ça :
    Vol 501 d'Ariane 5
    C'est vrai que la vie humaine n'a aucune valeur, je l'oublie toujours... Alors comparé à des satellites, elle ne fait pas le poids.


    Citation Envoyé par Ryu2000 Voir le message
    Est-ce que sans passer par un système 64 bits il n'y aurait pas moyen de retarder le problème ?
    Si tu prends 2 entiers, t’incrémente un deuxième compteur à chaque fois que le premier fait un tour et voilà.
    Ce qui revient à prendre un int64...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  7. #7
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 592
    Points : 18 498
    Points
    18 498
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Non, il faut juste patienter une heure...
    Ben ça va...
    J'imagine qu'on doit arriver à trouver une heure pendant laquelle l'appareil est en pause.

    Citation Envoyé par Jipété Voir le message
    Et si les 4 sont en carafe en même temps
    Pour que ça arrive il faudrait très mal gérer le truc et ne pas avoir de chance, parce que la probabilité est ultra faible.
    Les avions sont en maintenance hyper souvent, il y a bien moyen de faire un redémarrage à ce moment là.

    Arriver à caler 1 heure dans 248 jours ça ne doit pas être si compliqué que ça...

    Citation Envoyé par Jipété Voir le message
    C'est vrai que la vie humaine n'a aucune valeur, je l'oublie toujours...
    Il y a eu combien de morts à cause de ce compteur de seconde ?
    Ils savent que 8 mois après avoir redémarrer le système qu'il va falloir le redémarrer.
    C'est pas une fois en vol, qu'ils vont se rendre compte que le compteur va atteindre la limite.

    Citation Envoyé par Jipété Voir le message
    Ce qui revient à prendre un int64...
    Ouais mais t'as pas besoin de changer de processeur !
    En plus en changeant le matériel tu prends le risque de créer des bugs ailleurs.

    De toute façon en augmentant ce compteur, il va peut être y avoir un problème avec un autre compteur plus tard.

    Le problème c'est ça :
    Citation Envoyé par Coriolan Voir le message
    Un intéressant point rapporté par la FAA est qu’il faut presque une heure pour redémarrer les unités de contrôle des générateurs dans le 787, donc il n’y a pas un bouton de redémarrage comme un serveur par exemple.
    Il faut implémenter un processus de redémarrage simplifier.
    Après ça prendrait peut être que 5 minutes.

    Est-ce que vous laissez votre ordinateur allumé pendant 248 jours non stop ? (si votre PC est un serveur peut être... mais bon 1 redemarrage tout les 8 mois c'est pas abusé).
    Keith Flint 1969 - 2019

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 1
    Points : 4
    Points
    4
    Par défaut
    "un problème de débordement d’entier 32-bit déclenché après 231 centisecondes (248,55 jours)"
    Joli Bug !!
    Sachant qu'une centiseconde vaut 10−2 seconde , on en déduit que 231 cs vaut donc 2,31 secondes. Et non pas 248,55 jours.

  9. #9
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2009
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2009
    Messages : 416
    Points : 1 443
    Points
    1 443
    Par défaut
    À vrai dire, ce qui m'étonne le plus dans la news, c'est que des gens envisagent de laisser un avion allumé pendant 8 mois. Je croyais naïvement qu'ils étaient rebootés entre chaque vol

  10. #10
    Membre averti

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2013
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 41
    Points : 393
    Points
    393
    Par défaut
    Ce ne serait pas plutôt Boeing qui aurait ignoré une recommandation de son fournisseur de calculateur?
    Les modules de Control Command sur lesquels je travail sont sécurisés SIL2 à conditions d'être rebootés une fois par mois. Donc dans le doute on les reboot automatiquement touts les 7 jours. Sur des engins de chantier c'est pas trop gênant on arrive à trouver 30s d'inactivité sur une semaine.

    Même sur des systèmes aéronautiques SIL4 il doit y avoir des recommandations de ce genre.

  11. #11
    Membre expert

    Profil pro
    activité : oui
    Inscrit en
    Janvier 2014
    Messages
    1 260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : activité : oui

    Informations forums :
    Inscription : Janvier 2014
    Messages : 1 260
    Points : 3 402
    Points
    3 402
    Par défaut
    Citation Envoyé par domcars0 Voir le message
    "un problème de débordement d’entier 32-bit déclenché après 231 centisecondes (248,55 jours)"
    Joli Bug !!
    Sachant qu'une centiseconde vaut 10^−2 seconde , on en déduit que 231 cs vaut (...)
    le problème est orthographique, le mystère est résolu en lisant la phrase qui la suit : il manque simplement le chapeau circonflexe pour indiquer l'usage d'une puissance.
    " (...) 32-bit déclenché après 231 centisecondes (248,55 jours) de fonctionnement continu. 2^31 étant le nombre de secondes dans 248 jours multipliés par 100 (...) "
    2^31 valant: 2 147 483 648
    248,55 jours: 2 147 472 0 (*100 cs)
    Pensez à utiliser les pouces d’appréciation, pour participer à la visibilité de l'apport d'un propos, ou l'intérêt que vous y prêtez... qu'il soit positif ou négatif.

  12. #12
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Ryu2000 Voir le message
    Il faut implémenter un processus de redémarrage simplifier.
    Je propose CTRL+ALT+DEL.

    (oui moi aussi j'aime enfoncer les portes ouvertes)

  13. #13
    Expert confirmé Avatar de sergio_is_back
    Homme Profil pro
    Responsable informatique, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable informatique, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 084
    Points : 5 596
    Points
    5 596
    Par défaut
    Citation Envoyé par Ryu2000 Voir le message
    Est-ce que sans passer par un système 64 bits il n'y aurait pas moyen de retarder le problème ?
    Si tu prends 2 entiers, t’incrémentes un deuxième compteur à chaque fois que le premier fait un tour et voilà.
    Et après ça doit faire dans les 231 * 231 secondes avant que la combinaison des 2 compteurs soit au max.
    C'est comme ça que l'on fait sur les architectures 32 bits pour avoir des entiers 64 bits... C'est un artifice mais ça fonctionne
    L'entier 64 bits est composé en fait d'une paire d'entiers 32 bits

    Beaucoup de compilateurs 32 bits utilisent cet artifice pour gérer les entiers 64 bits sur architecture 64 bits (C, C++, Pascal, etc...) encore faut-il que l'entier soit correctement déclaré
    exemple UInt64 au lieu de UInt : Si on compile sur une plateforme 64 bits UInt sera sur 64 bits mais si on compile pour 32 bits alors UInt n'aura que 32 bits d’où l'importance de la déclaration

  14. #14
    Membre averti
    Homme Profil pro
    Ingénieur Développement Logiciel
    Inscrit en
    Septembre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur Développement Logiciel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 285
    Points : 421
    Points
    421
    Par défaut
    Ce bug a eu le mérite d'exister quand même (et sur un boing 787 quand même hein!!!)

  15. #15
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 592
    Points : 18 498
    Points
    18 498
    Par défaut
    Citation Envoyé par Le gris Voir le message
    Ce bug a eu le mérite d'exister
    Les dépassements d'entier dans les registres mémoire c'est classique comme bug.
    Tu ne penses pas atteindre 231. (2 147 483 647 c'est beaucoup)

    Pourtant tous les développeurs connaissent l'histoire du Vol 501 d'Ariane 5, donc à chaque fois qu'on créer une table dans une base de données et qu'elle contient un entier, on devrait se demander si il existe un scénario qui pourrait faire que la valeur dépasse la limite.
    Keith Flint 1969 - 2019

  16. #16
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 719
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 719
    Points : 15 105
    Points
    15 105
    Par défaut
    Citation Envoyé par Ryu2000 Voir le message
    Les dépassements d'entier dans les registres mémoire c'est classique comme bug.
    Ce n'est pas un bug, c'est le comportement normal de n'importe quel compteur, il suffit d'étudier le CD4029 et sa sortie "carry-out".

    Le bug, c'est de ne pas gérer la retenue.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  17. #17
    Expert confirmé Avatar de sergio_is_back
    Homme Profil pro
    Responsable informatique, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable informatique, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 084
    Points : 5 596
    Points
    5 596
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Ce n'est pas un bug, c'est le comportement normal de n'importe quel compteur, il suffit d'étudier le CD4029 et sa sortie "carry-out".

    Le bug, c'est de ne pas gérer la retenue.
    Oui tout à fait
    Même les registres processeurs fonctionnent comme ça lorsque tu fait INC AX sur un x86 si AX = $FFFF alors AX passe à la valeur $0000 et le Carry Flag est monté en même temps
    Idem sur les registres 32 bits et 64 bits d'ailleurs

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 167
    Points : 471
    Points
    471
    Par défaut
    Citation Envoyé par Ryu2000 Voir le message
    Est-ce que sans passer par un système 64 bits il n'y aurait pas moyen de retarder le problème ?
    Si tu prends 2 entiers, t’incrémentes un deuxième compteur à chaque fois que le premier fait un tour et voilà.
    Et après ça doit faire dans les 231 * 231 secondes avant que la combinaison des 2 compteurs soit au max.
    Ca ne résout pas vraiment le problème, ça ne fait que le reporter (un peu comme l'an 2000, en 1990 ). Et puis c'est une mécanique compliqué, alors qu'une remise à zéro après le dépassement d'une borne est tellement plus simple à coder et à tester.

  19. #19
    Expert confirmé Avatar de sergio_is_back
    Homme Profil pro
    Responsable informatique, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable informatique, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 084
    Points : 5 596
    Points
    5 596
    Par défaut
    Citation Envoyé par jpouly Voir le message
    Ca ne résout pas vraiment le problème, ça ne fait que le reporter (un peu comme l'an 2000, en 1990 ). Et puis c'est une mécanique compliqué, alors qu'une remise à zéro après le dépassement d'une borne est tellement plus simple à coder et à tester.
    Ça reporte de 2^31 * 248 jours : y'a des chance que nous serons tous ici décédés depuis belle lurette et le Boeing 787 aura rejoint le cimetière des avions lui-aussi depuis perpette...

    C'est compliqué d'incrémenter deux compteurs en cascade ?
    Faut arrêter l'informatique si c'est le cas...

  20. #20
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 592
    Points : 18 498
    Points
    18 498
    Par défaut
    Citation Envoyé par jpouly Voir le message
    Et puis c'est une mécanique compliqué, alors qu'une remise à zéro après le dépassement d'une borne est tellement plus simple à coder et à tester.
    Ça ne peut pas être aussi simple.
    Tu ne peux pas juste dire que si t'atteins l'entier maximal tu mets la variable à 0.
    Parce que par rapport à toutes les autres variables ça ne voudrait plus rien dire.
    Là il y a un truc d'état, comme dans la théorie des automates en informatique.

    Il faut un redémarrage pour réinitialiser le système correctement et le remettre dans un bon état.
    Changer une variable n'importe comment ça peut provoquer des problèmes. (y'en a qui ont essayé)

    Le plus efficace serait de mettre en place une procédure simple pour redémarrer le système rapidement.
    Keith Flint 1969 - 2019

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/06/2018, 09h13
  2. Réponses: 2
    Dernier message: 16/02/2010, 15h23
  3. [regex][string] replaceAll bogué ?
    Par 7eme dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 13/11/2003, 16h36
  4. Suppression de la contrainte unique
    Par mika dans le forum SQL
    Réponses: 3
    Dernier message: 20/02/2003, 17h56
  5. [VB6] Affichage d'image avec qlq contraintes
    Par youri dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo