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

C++ Discussion :

scripting temps réel


Sujet :

C++

  1. #21
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    J'avais pas vu. Ok je note ça.

  2. #22
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Citation Envoyé par capitN.flam Voir le message
    L'allocation dynamique n'est pas déterministe
    Merci, je sais, je n'ai pas dit le contraire. Mon argument était que :
    - Un tri, en O(n log n) en moyenne, peut dégénérer en O(n²), c'est à dire être si long qu'on puisse considérer qu'il est comme non déterministe (ou alors, la gestion de la mémoire le devient aussi, il suffit de parcourir toute la mémoire après tout).
    - Tous les algos d'analyse d'image que je connais sont non déterministes.
    - Les algorithmes d'optimisation sont non déterministes
    - ...

    Tout ça pour dire que si l'on se prive de l'allocation dynamique pour ça, on se prive d'énormément d'autres choses. Si c'est admissible dans certains cas, ça ne l'est pas dans d'autres. A tel point que certains fonctions d'un logiciel ne pourraient pas être remplies.

    Citation Envoyé par capitN.flam Voir le message
    c'est pour cela que l'on ne l'utilise pas en temps réel ou tout du moins on évite au maximum.
    Je peux te citer tout un tas de systèmes temps réel où l'allocation dynamique est pourtant largement utilisée, et sans complexes. Par exemple un logiciel de prédiction météorologique (système temps réel, puisque s'il met pour prédire le temps de lendemain plus d'une journée, il ne remplis plus sa fonction) ne s'en prive pas.

    Un simulateur de vol, de conduite,... en utilise tant qu'il veut sur certains aspects (simulation des véhicules externes, gestion événementielle du scripting d'une session), avec une parcimonie relative sur d'autres (dynamique du véhicule, stratégie de contrôle de la plate-forme à vérins,..), et peu ou pas sur d'autres (interface avec certaisn capteurs, intégration HIL (hardware in the loop) d'électronique existant dans les vrais véhicules (par exemeple un calculateur ABS).

    Citation Envoyé par capitN.flam Voir le message
    Pour info je suis en spécialisation GISTR (Génie Informatique des Systemes Temps Réel) à l'EPITA.
    Je n'aime pas trop l'utilisation d'arguments d'autorité, surtout quand elle est relative et que mon but est de démonter le point de vue dominant. Je suis près à entendre de vrais arguments.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #23
    screetch
    Invité(e)
    Par défaut
    il existe beaucoup d'algorithmes sur les images en O(n) (n nombre de pixels, soit m x p) malgré tout, nottament les calculs de squelettes ou la determination des formes, des calculs de distance (sur des images en niveau de gris)

    sinon pour etre franc, JolyLoic, en tant qu'exterieur au temps reel ( mois d'etude a peine sur ce sujet, a peine touche du doigt) je suis interesse par savoir ton experience dans ce sujet, ca aide a justifier tes dires. parce que pour moi, quand tu dis

    Par exemple un logiciel de prédiction météorologique (système temps réel, puisque s'il met pour prédire le temps de lendemain plus d'une journée, il ne remplis plus sa fonction) ne s'en prive pas.
    ca n'a aucune valeur si tu ne dis pas

    "j'ai travaillé sur un logiciel de prediction meteorologique ici ou la", la ca ressemble a des paroles en l'air. je ne dis pas que c'est faux, que tu pipeautes ou quoi, mais vu que deux avis divergent et que l'un traine dedans, si tu n'avances pas une experience mais juste des phrases dites en l'air, ca a moins de valeur pour moi.

  4. #24
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Merci, je sais, je n'ai pas dit le contraire. Mon argument était que :
    - Un tri, en O(n log n) en moyenne, peut dégénérer en O(n²), c'est à dire être si long qu'on puisse considérer qu'il est comme non déterministe (ou alors, la gestion de la mémoire le devient aussi, il suffit de parcourir toute la mémoire après tout).
    - Tous les algos d'analyse d'image que je connais sont non déterministes.
    - Les algorithmes d'optimisation sont non déterministes
    - ...

    Tout ça pour dire que si l'on se prive de l'allocation dynamique pour ça, on se prive d'énormément d'autres choses. Si c'est admissible dans certains cas, ça ne l'est pas dans d'autres. A tel point que certains fonctions d'un logiciel ne pourraient pas être remplies.



    Je peux te citer tout un tas de systèmes temps réel où l'allocation dynamique est pourtant largement utilisée, et sans complexes. Par exemple un logiciel de prédiction météorologique (système temps réel, puisque s'il met pour prédire le temps de lendemain plus d'une journée, il ne remplis plus sa fonction) ne s'en prive pas.

    Un simulateur de vol, de conduite,... en utilise tant qu'il veut sur certains aspects (simulation des véhicules externes, gestion événementielle du scripting d'une session), avec une parcimonie relative sur d'autres (dynamique du véhicule, stratégie de contrôle de la plate-forme à vérins,..), et peu ou pas sur d'autres (interface avec certaisn capteurs, intégration HIL (hardware in the loop) d'électronique existant dans les vrais véhicules (par exemeple un calculateur ABS).



    Je n'aime pas trop l'utilisation d'arguments d'autorité, surtout quand elle est relative et que mon but est de démonter le point de vue dominant. Je suis près à entendre de vrais arguments.

    En disant que je suis en GISTR je voulais simplement dire que c'était mon domaine d'activité. Loin de moi l'idée d'être une autorité en la matière.

    Pour en revenir au non déterministe, un tri même s'il dégénère en O(n^42) (valeur volontairement abérente) finira et au final on aura les bonnes valeurs aux bons endroits. Dans le cas d'une allocation dynamique efectivement dans le pire des cas on fera un parcours de toute la mémoire mais on peut sortir du malloc (ou new) en n'ayant pas alloué de mémoire, malloc peut retourné NULL et new lève une exception, dans ce cas là que fais tu avec ton système?
    Effectivement dans certain cas on utilise l'allocation dynamique mais c'est sur des systèmes qui ne sont pas critique.

    Nous n'avons peut être pas la même définition de temps réel. Pour moi c'est un système qui est temps réel (hardware + software), apparement pour toi ce peut n'être q'un logiciel (ton exemple pour la météorologie).
    Siu ce n'est qu'un logiciel rien n'empeche de rajouter des ressources pour ton exemple un processeur un peu plus puissant pour que le calcul revienne en dessous de la barre de la journée. Dans le cas d'un système complet on ne peut pas changer le matériel si simplement car il y a souvent des contraintes: place, poids, résistance aux chocs, à la chaleur, ...

  5. #25
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Citation Envoyé par screetch Voir le message
    sinon pour etre franc, JolyLoic, en tant qu'exterieur au temps reel ( mois d'etude a peine sur ce sujet, a peine touche du doigt) je suis interesse par savoir ton experience dans ce sujet, ca aide a justifier tes dires.
    J'ai travaillé pendant 8/9 ans sur un simulateur de conduite. C'était du temps réel "soft" (un louper de pas de temps n'avait pas de conséquences graves, il fallait juste que ce soit un évènement pas trop courant), sachant qu'on s'appuyait souvent sur du matériel (plate-forme à vérins, volant à retour d'affort...) qui incluait déjà un certain niveau de logiciel (souvent en temps réel plus "hard", lui) et qui prenait déjà en compte ses propres aspects de sécurité.

    Pour la météorologie, je n'ai pas d'expérience directe, mais ai discuté avec un gars qui faisait sa thèse là dessus (sur but était comment réintroduire dans l'algo de prédiction les nouvelles observation qui ont pu être faites depuis le début du calcul), et je peux t'assurer que ses problématiques étaient à 100 lieux d'une minimisation des allocations mémoire...
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  6. #26
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Citation Envoyé par capitN.flam Voir le message
    Dans le cas d'une allocation dynamique efectivement dans le pire des cas on fera un parcours de toute la mémoire mais on peut sortir du malloc (ou new) en n'ayant pas alloué de mémoire, malloc peut retourné NULL et new lève une exception, dans ce cas là que fais tu avec ton système?
    Je reporte l'erreur aux couches appropriées du système, qui elles n'ont pas besoin d'allocation mémoire, en leur laissant décider quoi faire. Ca peut aller de faire exploser Ariane à rebooter automatiquement le système à basculer vers une stratégie survivaliste minimale, à...

    Ce qui me semble important, plus que l'allocation mémoire, est l'indépendance entre couche de façon à ce qu'une erreur haut niveau ne vienne pas mettre en cause le bas niveau.


    Citation Envoyé par capitN.flam Voir le message
    Effectivement dans certain cas on utilise l'allocation dynamique mais c'est sur des systèmes qui ne sont pas critique.

    Nous n'avons peut être pas la même définition de temps réel. Pour moi c'est un système qui est temps réel (hardware + software), apparement pour toi ce peut n'être q'un logiciel (ton exemple pour la météorologie).
    Justement, je pense que j'ai une vision plus large de ce qu'est un système temps réel. Prenons une voiture, un des systèmes temps réel où la sécurité compte beaucoup les plus utilisés actuellement. Et bien, dans ce système, certains aspects se moquent totalement du déterminisme (la navigation, par exemple, et tout ce qui est habitacle en général (d'ailleurs des langages comme Java y sont de plus en plus présent)), certains aspects y font bien plus attention (les calculateurs ABS ou ESP, les directions assistées électriques...(1)). Et de toute façon, tout est prévu (pour l'instant du moins, mais ça risque(2) de changer, ce n'est par exemple plus le cas dans l'aéronautique) pour qu'en cas de défaillance complète de l'électronique, la mécanique reste suffisamment stable pour assurer la sécurité des personnes.

    Citation Envoyé par capitN.flam Voir le message
    Siu ce n'est qu'un logiciel rien n'empeche de rajouter des ressources pour ton exemple un processeur un peu plus puissant pour que le calcul revienne en dessous de la barre de la journée.
    En l'occurrence, pour la météo, ce n'est généralement pas possible, le bottleneck étant dans la possibilité de distribuer les algorithmes sur n processeurs (n se comptant en milliers), et je crois aussi dans le débit de communication entre les différents processeurs. S'il suffisait d'acheter un millier d'ordinateurs en plus pour avoir les résultats plus vite, les ingénieurs de météofrance seraient au chômage...

    Citation Envoyé par capitN.flam Voir le message
    Dans le cas d'un système complet on ne peut pas changer le matériel si simplement car il y a souvent des contraintes: place, poids, résistance aux chocs, à la chaleur, ...
    Et prix...

    Mais de toute façon, changer un matériel a un impact sur les performances, pas sur le déterminisme.


    (1) D'ailleurs, chose amusante, quand on lit la définition du protocole CAN, utilisé pour communiquer entre les différents éléments d'une voiture, un peu comme de l'USB pour l'informatique, mais vendu comme déterministe et temps réel, on se rend compte qu'en fait il n'est pas déterministe...

    (2) Voire c'est en train de changer, je ne bosse plus chez un constructeur automobile, et n'ai donc pas suivi.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. [AJAX] Script ajax, affichage en temps réel, IE8
    Par Saduina dans le forum AJAX
    Réponses: 1
    Dernier message: 26/12/2013, 15h22
  2. Script temps réel
    Par djaminebiz dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 22/05/2013, 11h20
  3. voir un script en temps réel
    Par cesar333 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/08/2011, 10h44
  4. developpement script d'ecoute TCP sur asterisk temp réel
    Par mahdibourbita dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 02/05/2011, 07h54
  5. Réponses: 10
    Dernier message: 14/07/2009, 18h39

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