Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parCleménce Herault Modifié depuis plus de 9 années
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 ^^
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.