La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – Theoris.

Présentations similaires


Présentation au sujet: "22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – Theoris."— Transcription de la présentation:

1

2 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris

3 33 But de la session: Comprendre pourquoi et comment l’OS Windows Embedded CE 6.0 peut être utilisé sur des systèmes temps réel Expliquer à partir des mécanismes internes de l’OS Illustrer sur des exemples et démos

4 44 Origines du problème Besoin = Entrées & Sorties à des instants strictement connus (intervalle d’erreur prédéfini) Etat des lieux des CPU Automate Séquentiel & Programmable Pas de gestion interne du temps Temps d’accès à la mémoire & aux périphériques Complexité croissante des besoins !! Quelques mythes Un système temps réel est rapide Le matériel répond à tous les besoins

5 55 Gestion du déterminisme Au niveau matériel Utilisation des Interruptions Intégration d’un circuit horloge Garantie des temps d’accès à la mémoire Contrôleurs de périphériques et de bus Au niveau logiciel Maîtrise des chemins d’exécution Connaissance des situations de « pire cas » temporel Dans les tâches applicatives Dans le système (Runtimes – Noyau - Pilotes)

6 66 OS et déterminisme - 1 Ce qui est de la responsabilité de l’OS Temps de réponse sur interruption Précision du TICK (Timers & Watchdogs) Stabilité des mécanismes internes (KCall, TLB) Stabilité des fonctions exposées (CSW, Synchronisation) Stabilité de la planification des tâches Ce qui est de la responsabilité de l’OS Temps de réponse sur interruption Précision du TICK (Timers & Watchdogs) Stabilité des mécanismes internes (KCall, TLB) Stabilité des fonctions exposées (CSW, Synchronisation) Stabilité de la planification des tâches

7 77 OS et déterminisme - 2 Ce qui n’est pas de la responsabilité de l’OS Contention des interruptions Contention d’accès aux BUS Comportement interne des pilotes de périphériques Ainsi que TOUT le logiciel applicatif !! Ce qui n’est pas de la responsabilité de l’OS Contention des interruptions Contention d’accès aux BUS Comportement interne des pilotes de périphériques Ainsi que TOUT le logiciel applicatif !!

8 88 CE & Déterminisme Stabilité de la planification des tâches Précision du TICK Stabilité des mécanismes internes Temps de réponse sur interruption

9 99 Architecture CE I/OI/OObjectStoreObjectStoreKernelKernelGWESGWESCEShellCEShell OAL & Pilotes API système Application Thread

10 10 Ordonnancement Modèle Multi-Thread Préemptif à 256 niveaux Priorités fixes Round-robin à la demande Quantum paramétrable par thread Gestion de l’inversion de priorité Page 10

11 11 Synchronisation Synchronisation Win32 Mutex Sémaphore Evénement Optimisation intra-processus Section critique Dépendant du hardware Interlocked Page 11

12 12 États d’un thread Release Wait ENATTENTEENATTENTE Resume PRÊTPRÊT COURANTCOURANT Élection Préemption ACTIF Suspend Un seul thread à la fois !! SUSPENDUSUSPENDU EN ATTENTE +SUSPENDU +SUSPENDU Resume Suspend

13 13 Page 13 Outillage Kernel Tracker Montre l’interaction entre les processus, les threads et les interruptions Liste les Interruptions Echecs TLB Inversion de priorité Etat des threads Appels système

14 14 Mesure Windows CE - 1 Création de 2 threads de haute priorité SemaphoreSemaphore MutexMutex Threads haute priorité Course au Sémaphore Course au Mutex

15 15 Mesure Windows CE - 2 SemaphoreSemaphore Course au Sémaphore MutexMutex Course au Mutex

16 16 Mesure Windows CE - 3 Wait+Release+CSW  18 µs SemaphoreSemaphore

17 17 TICK système TICK fixé à 1ms L’interruption TICK peut causer un changement de contexte de thread (CSW) Le noyau choisit CSW ou NOP Le thread PRÊT de plus haute priorité doit tourner Le thread courant continue s’il n’y a pas de concurrence et qu’il n’a pas épuisé son quantum Sleep(N) va avoir une échéance entre N et (N+1) ms

18 18 Mécanismes internes Pilotes de périphériques en mode KERNEL Tous les threads du pilote en mode KERNEL Appels à KCOREDLL.DLL Accès direct aux paramètres Appel par table de vecteurs Mémoire virtuelle Page Pooler à déclenchement paramétrable Optimisation des appels non interruptible du noyau (Kcall)

19 19 Gestion des interruptions KernelKernel OAL API système Interrupt Service Routine Interrupt Service Thread Interrupt Service Thread

20 20 Page 20 Chemin de prise en compte d’IT

21 21 Latence d’interruption Au niveau de l’ISR IT non autorisée Temps du noyau pour appeler l’ISR Au niveau de l’IST Temps de changement de contexte Section bloquantes du Noyau (Kcall) Délai TLB

22 22 Contraintes temps réel Application Maîtrise des priorités de threads Maitrise de l’exécution non préemptible (run to completion) Utiliser les objets de synchronisation Gérer l’inversion de priorité Pilote Maîtrise du délai d’IT Niveau de priorité de l’IST

23 23 L’engin

24 24 Aucun composant actif ! Port Parallèle Port Parallèle Capteurs IR Soufflerie ETX ® -DC Intel ® Atom ™ N270 1.6 GHz - 512ko L2 cache DDR2 SODIMM 521Mo

25 25 Interface Port Parallèle Capteurs IR Turbine Servo-Moteur & Clapet de carburateur Architecture matérielle

26 26 Pilote Aucun composant actif ! Port Parallèle Port Parallèle Capteurs IR Soufflerie Thread Temps réel Thread Temps réel Application.NET API système IOControl I/OI/O PWM

27 27 Démo …

28 28 Système Gestion d’un cycle Temps Réel Application graphique en C# Driver Modèle Stream Driver Gestion centralisée du port parallèle: problématique de concurrence d’accès Contrainte d’utilisation du temps CPU: synchronisation de la commande et de la détection Points clés

29 29 Temps réel Performance temps réel 0,5 ms 1 ms 10 ms 5 ms 20 ms 100 ms 100 µs 1000 µs Variation Cycle

30 30 Projet industriel robotique InputdeviceInputdevice

31 31 Architecture du logiciel Temps réel Interface robot CANI/OEtc. source pcode display SRL generator SRL compiler SRR engine

32 32 Processus & Threads watchdogwatchdog CallackCallack PanelinputPanelinput Drivers WindowsmessagesWindowsmessages AutomatonAutomaton CAN NVRAM UI panel Application

33 33 Machine à affranchir Contrainte temps réel sur la cadence de traitement Mesure du pli (dimension, poids) Calcul de tarif et validation de débit Construction de l’image du timbre Commande de l’affranchissement

34 34 Sessions « Systèmes embarqués » LUNDI 11h-12h : MOB111 Systèmes Embarqués à la sauce Microsoft: Démos, démos, démos 13h-14h : MOB310 Silverlight pour Windows Embedded : monitoring du brassage de la bière en interfaces riches ! 16h-17h : MOB109 Serveurs pour applications embarqués : ils sont de retour… 17h30-18h30 : MOB207 Multitouch et nouvelles expériences dans les systèmes embarqués : scénarios et exemples MARDI 11h-12h : MOB306 Microsoft au calibre industriel: temps réel dur pour des applications critiques 13h-14h : MOB104 Des capteurs aux serveurs en passant par la cuisine : Windows Embedded dans la maison 16h-17h : MOB203 Construisez votre OS avec les briques de Windows 7 : l'exemple avec un système multimédia pour la maison 17h30-18h30 : MOB301.NET, Electronique et OpenSource : développement sur FPGA avec le.NET MicroFramework

35 35 Quelques liens pour aller plus loin… Le site Windows Embedded en Français: http://www.windowsembedded.fr Le blog de Pierre Cauchois – resp. du parcours Embedded: http://blogs.msdn.com/pierreca Concours « Je vois des Windows Partout » http://msdn.microsoft.com/fr-fr/windowsembedded/msdn.windows.partout.aspx

36 36 Retrouvez-nous dehors… Stand D34 – Windows Embedded Des experts pour répondre à toutes vos questions Un beau bar, de belles démos et une bonne ambiance ^^


Télécharger ppt "22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – Theoris."

Présentations similaires


Annonces Google