Bonjour à tous
Une question certainement bête...Mais est il possible de faire de la programmation "temps réel" à la manière d'OS comme RTX, 0S9 sur .net en C#
Merci pour votre aide
Jerome
Bonjour à tous
Une question certainement bête...Mais est il possible de faire de la programmation "temps réel" à la manière d'OS comme RTX, 0S9 sur .net en C#
Merci pour votre aide
Jerome
Je ne suis pas un spécialiste, mais je crois que pour faire du temps réel il faut un OS temps réel. Windows n'étant pas un OS temps réel tu ne pourras pas en faire en C#.
Bonjour
A la base je serais de ton avis, mais y'a quelques années (environ 10), lors d'une présentation par Microsoft on m'avait parlé de temps réel mou (j'adore ce terme)... Je me disais peut etre que sur le framework.net certaines fonctionnalité permettaient, par exemple en multithread et prioritisez certains appels de méthodes, et piloter dynamiquement chaque thread....
salut
Faire du vrai temps réel contraint sous windows, tu oublies
Maintenant, on peut faire un certain nombres d'applications sous windows
et meme des applications "plutot" temps réels.
Pour info, j'ai developpé des simulateurs pour l'armée tournant sous windows avec des "timers" à 40 ms...
Maintenant, sous windows, au dessous de la ms, tu n'as rien de garanti
Pour info, les timers System (base sur les performances Counter - en nombre
limité sur certaines version de windows) permettent d'avoir ce type d'approche
LE seul "hic" avec windows, c'est que ce n'est pas toi qui maitrise le basculement entre les différentes taches que tu vas créer.
Ainsi, tu n'as pas le loisir (dans les versions windows de base) de dire qu'une
tache utilise 10 ms de processeurs et ensuite rend la main, qu'elle est fini ou pas.. dans un OS temps réel, ta tache serait mis en pause, le contexte sauvegardé, etc... Sous windows, le contexte sera bien sur sauvegardé, par contre, tu n'as pas de moyen de garantir que t'as tache va "obtenir" 10 ms de CPU sans etre interrompue...
Apres, une "eventuelle" piste pourrait etre de définir toi meme ton "scheduler" ou ton sequenceur, au lancement, lui donner une priorité evelée au niveau de windows. cela ne te garanti pas d'avoir tout le temps CPU, mais obligera windows a t'allouer plus de temps qu'aux autres
Cela dit, fut un temps ou il existait des versions modifiés de windows pour que cela soit "orienté" plus temps réel...
Maintenant, je me repete, faire du temps reel ultra contraint avec windows, c'est possible, mais fortement risqué.. surtout qu'ensuite, qui dit temps reel, dit souvent "embarqué". donc, disque dur, etc..
Maintenant, si la problématique est d'avoir quelque chose de temps reel sous windows sur un PC bureau ou portable.. sans de grosses contraintes liés à ton environnement et que tu peux eventuellement resoudre avec des techniques PC (exmple: disque raid, etc...), alors oui, faire du temps réel en C # peux etre faisable...
Maintenant, mon expérience en temps réel sous windows se résume à des simulateurs pour l'armée avec un delta de réaction de 10 ms maxi... et une architecture non pas "multi tache" à la RTC, ou VRTX mais une archi windows bien pensée
The Monz, Toulouse
The Monz, Toulouse
Expertise dans la logistique et le développement pour
plateforme .Net (Windows, Windows CE, Android)
Merci beaucoup, c'est ce genre de réponse que j'attendais...
Pour l'embarqué je préfère largement Linux qui dans ce domaine offre un choix incroyable... Même si je regrette pour ce genre de dév SDOS et les PC104 à base de 486...(pas prise de tête)....
respect pour ta réalisation...t'es modeste avec le "bien pensée"...Ce genre de truc nécessite beaucoup de chausse-pieds.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager