École Polytechnique de Montréal Département de génie électrique

Slides:



Advertisements
Présentations similaires
Conférence « Compétences Informatiques » 10 avril 2006
Advertisements

PC / Traitement numérique / Contrôle Environnement logiciel
GEF 435 Principes des systèmes dexploitation Les systèmes dexploitation en général (Tanenbaum 1.1 et 1.3)
Module 5 : Implémentation de l'impression
© Copyright 2007 Arumtec. All rights reserved. Présentation Etude déligibilité
SYSTEMES DE CONTRÔLE – COMMANDE ET INFORMATIQUE DISTRIBUEE TEMPS REEL
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
Types des systèmes d’exploitation
Critère d’ordonnancement en temps réel Partie II
Chapitre 3: Système d’exploitation
DOCUMENTS DE FORMATION CODEX FAO/OMS SECTION DEUX COMPRENDRE LORGANISATION DU CODEX Module 2.8 Existe-t-il un format pour les normes du Codex ?
Présentation de l’Architecture Windows NT
Bienvenue dans le programme de formation rapide à NSIS Date : 20 novembre 2003 Intervenant : Julien VICTOR Interlocuteurs : Ingénieurs 2000 Informatique.
Joscelin OUDRY IR2000 année
PLAN du COURS Introduction Structure des Systèmes Informatiques
Introduction aux Systèmes d’Exploitation
Architecture de réseaux
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
Cours Présenté par …………..
1 B Système Enjeux et principes Cours DESS Nantes 04 Décembre 2002 Didier ESSAME.
Architecture de machines Principes généraux
Histoire des systèmes d’Exploitations
Interface Homme Machine IHM Pro
Informatique Quelques notions de base Guy Kerckhoven.
Simulateurs de réseaux Ns-3 et Ns-2.
Logiciel de Mobile Device Management
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Fonction Traiter Algorithmique et Programmation
Plan Évolution Système On Chip Difficultés de la testabilité des SOCs
le profil UML en temps réel MARTE
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 9 Filtre programmable nawk(1)
2-1 CIRCUITS ÉLECTRIQUES SIMPLES
Validation d’applications pour les Legos Mindstorms
DeltaPROD Suivi des interventions Gestion de configuration
Méthode des k plus proches voisins
5.1 URDL22005 Systèmes dexploitation Threads Vue dEnsemble Modèles de Multithreading Problèmes des Threads Pthreads Threads Windows XP Threads Linux Threads.
Synthèse d’activités Présentation.
@SSR – Installation des applications eduscol.education.fr/securite - février 2007 © Ministère de l'Éducation nationale, de l'Enseignement supérieur et.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 7 : Classes et fonctions paramétrables Département.
IGL301 - Spécification et vérification des exgiences 1 Chapitre 1 Introduction (ref : Bray chapitre 1)
IGL301 - Spécification et vérification des exgiences 1 Chapitre 2 Le processus dingénierie des exigences (ref : Bray chapitre 2)
Des indicateurs de performance pertinents et adéquats
Présentation du mémoire
Programmation concurrente
3 () CHAPITRE Les créances Le crédit est un excellent moyen daugmenter son chiffre daffaires, et il est très difficile pour une entreprise de léviter complètement.
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
IFT 6800 Atelier en Technologies d’information
TOLÉRANCEMENT GÉOMÉTRIQUE
Ordonnancement de tâches
Le diagramme de séquences
Critères de vérification de la maîtrise des processus ; Chaque établissement agréé qui procède à labattage du bétail doit effectuer des tests Il devra.
Réunion de collaboration du 9-10 Juillet 2008 J.L. Béney 1 Logiciel At  Client-Serveur Tcp/ip de la station autonome  Influence de l'architecture matérielle.
Réalisé par Mr CALVO du Lycée Bon Secours à PERPIGNAN
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
Cours Temps Réel [© tv 2003] Définition Caractéristiques
‘‘Open Data base Connectivity‘‘
1 La RTI 1.3NG du DoD et les systèmes supports Patrice Torguet IRIT.
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Les principes de la modélisation de systèmes
Qnx QNX est un système d'exploitation temps réel (dont l'objectif est de fonctionner dans un environnement contraint temporellement) adapté aux applications.
AFPA CRETEIL 1-1 Windows NT Environnement Windows NT Chapitre 1.
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
Haute Ecole de la Ville de Liège Département paramédical Département économique Département pédagogique Département technique rue Sohet, LIEGE.
INF8505: processeurs embarqués configurables
L’Audio sur PC Comparaison Numérique vs Analogique Comparaison Audio sur PC vs Hardware dédié (DSP) Rmq: beaucoup de simulitudes avec la vidéo, mais débit.
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL Sujets Concepts de processus/thread concurrents –Windows NT et la programmation temps réel –Synchronisation et.
SNMP Simple Network Management Protocol
Unité N°1: Système Informatique
Transcription de la présentation:

École Polytechnique de Montréal Département de génie électrique ELE3100 - Projets de génie électrique Robotique et informatique Cours no. 10: Informatique embarquée Coordonnateur: Réjean Plamondon, ing. Ph.D., professeur titulaire Département de génie électrique, section génie biomédical (A.429.16) Courriel: rejean.plamondon@polymtl.ca Chargé de cours et de laboratoire: Julien Beaudry, étudiant M.Sc.A. (A.321) Courriel: julien.beaudry@polymtl.ca Chargé de laboratoire: Moussa Djioua, étudiant Ph.D. (A.408) Courriel: moussa.djioua@polymtl.ca

ELE3100, Projets de génie électrique: informatique embarquée Plan du cours Systèmes temps-réel Systèmes d’exploitation temps-réel Performances des systèmes d’exploitation temps- réel Logiciel temps-réel embarqué Ordinateurs embarqués 2

ELE3100, Projets de génie électrique: informatique embarquée Systèmes temps-réel Distinction entre un système temps-réel et un système d’exploitation temps-réel: Un système temps-réel peut être vu comme l’application dans son ensemble, incluant les systèmes électromécaniques, électroniques et logiciels constituant l’application. Ce système permet de définir les performances temps-réel désirées. Le système d’exploitation temps-réel est une composante du système temps-réel et il offre les fonctionnalités nécessaires pour contrôler ce dernier. Il définit les performances temps-réel atteignables. 3

ELE3100, Projets de génie électrique: informatique embarquée Systèmes temps-réel Qu’est-ce qu’une contrainte temps-réel? Une contrainte temps-réel est une contrainte temporelle dictée par le système temps-réel. Un système temps-réel définira un ensemble de contraintes temporelles à respecter. Exemple: Le pilote automatique d’un avion de ligne doit entre autre mesurer l’état des capteurs du système (GPS, accéléromètres, gyroscopes, etc.) et effectuer les calculs nécessaires pour commander les actuateurs. Une première contrainte temporelle serait au niveau de la période de la boucle de contrôle. Une autre pourrait être au niveau de la précision de la mesure de la période d’échantillonnage des accéléromètres. 4

ELE3100, Projets de génie électrique: informatique embarquée Systèmes temps-réel Contrainte temps-réel souple .vs. contrainte temps-réel dure: Les expressions anglophones “soft real-time” et “hard real-time” sont couramment utilisées Une contrainte temps-réel souple constitue une exigence du système, mais elle peut ne pas être respectée à l’occasion sans trop perturber le système (la stabilité n’en serait pas affectée). Une contrainte temps-réel dure constitue une exigence du système qui se doit absolument d’être respectée (la stabilité du système pourrait être affectée si elle ne l’est pas). 5

ELE3100, Projets de génie électrique: informatique embarquée Systèmes temps-réel Système temps-réel souple .vs. système temps-réel dur: Un système temps-réel souple est strictement constitué de contraintes temps-réel souples. Un système temps-réel dur est strictement constitué de contraintes temps-réel dures. Un système temps-réel peut également être constitué de contraintes temps-réel souples et dures. 6

ELE3100, Projets de génie électrique: informatique embarquée Systèmes d’exploitation temps-réel Définition d’un système d’exploitation temps-réel: Il peut être défini comme étant un système d’exploitation capable de respecter un ensemble d’exigences fonctionnelles (comme tout système d’exploitation, temps- réel ou non), mais également un ensemble d’exigences temporelles. NOTE: contrairement à ce que l’on pourrait croire, un système d’exploitation temps-réel n’est pas nécessairement plus rapide, mais il se doit surtout d’être prédictible. 7

ELE3100, Projets de génie électrique: informatique embarquée Systèmes d’exploitation temps-réel Principaux systèmes d’exploitation temps-réel: QNX*, VxWorks*, LynxOS*, Linux (avec RTAI ou RT-Linux), IRIX, Digital UNIX, Windows CE/XP Embedded, et il en existe d’autres! *: ces systèmes d’exploitation peuvent être dits temps-réel purs, c’est-à-dire qu’ils sont conçus à la base pour des systèmes temps-réel. Les autres sont des variantes de systèmes d’exploitation non temps-réel. 8

ELE3100, Projets de génie électrique: informatique embarquée Systèmes d’exploitation temps-réel Références sur les systèmes d’exploitation temps-réel: Linux, RTAI: http://www.rtai.org/ Linux, RTLinux: http://www.fsmlabs.com/ QNX: http://www.qnx.com/ VxWorks: http://www.windriver.com/ LynxOS: http://www.lynuxworks.com/ Windows Embedded: http://msdn.microsoft.com/embedded/default.aspx 9

ELE3100, Projets de génie électrique: informatique embarquée Systèmes d’exploitation temps-réel Qu’est-ce que POSIX? POSIX est l’acronyme de Portable Operating System Interface et est un groupe de standards défini par l’IEEE . Son objectif est de définir une interface et un environnement standardisé, basé sur les spécifications du système UNIX, dans le but d’offrir une portabilité à la base du système. Ainsi, tout programme utilisant les standards POSIX devrait normalement s’exécuter correctement sous tout système d’exploitation supportant ces standards. C’est pourquoi la librairie MICROB utilise ces standards pour les OS qui les supportent. 10

ELE3100, Projets de génie électrique: informatique embarquée Systèmes d’exploitation temps-réel Qu’est-ce que POSIX.4? Le standard POSIX.4, qui est un reproupement des standards POSIX.1, POSIX.1b et POSIX.1c, définit un ensemble de fonctions permettant à un OS d’offrir les principales fonctionnalités d’un OS temps-réel. Bill O. Gallmeister, POSIX.4: Programming for the Real World, O’Reilly, 1995. 11

ELE3100, Projets de génie électrique: informatique embarquée Systèmes d’exploitation temps-réel Quelques fonctions POSIX couramment utilisées: Horloges et minuteries : clock_gettime(), clock_getres(), timer_settime() Réponse aux interruptions: kill(), sigaction(), sigfillset() Mécanismes d’ordonnancement: sched_yield(), sched_setparam() Gestion de la mémoire: malloc(), mmap(), free() Gestion des tâches et processus: fork(), exec(), wait(), Pthreads Communication inter-processus: shm_open, mmap(), mq_open(), mq_receive() Gestion des entrées/sorties: open(), read(), write(), close() 12

ELE3100, Projets de génie électrique: informatique embarquée Systèmes d’exploitation temps-réel Critères permettant d’évaluer un système d’exploitation temps-réel selon les différentes caractéristiques (POSIX.4 chapitre 7) : Capacité (nombre maximal d’opérations en un temps donné) Temps de réaction (rapidité du système à réagir aux événements) Déterminisme (mesure indiquant la fiabilité de la réaction du système aux événements) 13

ELE3100, Projets de génie électrique: informatique embarquée Systèmes d’exploitation temps-réel Comparaison des minuteries pour quelques systèmes d’exploitation: Windows (Windows 2000): * fonction GetTickCount(): résolution de 10ms minuterie Multimedia (winmm.lib): résolution de 2ms Linux (RedHat 7.x): * fonction gettimeofday(): résolution de 10ms possibilité d’amélioration et respect du standard POSIX avec RT-Linux ou RTAI possibilité d’utiliser les ticks CPU pour plus de précision 14

ELE3100, Projets de génie électrique: informatique embarquée Systèmes d’exploitation temps-réel Comparaison des minuteries des systèmes d’exploitation utilisés au laboratoire: QNX (Neutrino 6.2): * fonction clock_gettime(): résolution de 10ms par défaut, peut être diminuée jusqu’à l’ordre du 0.1ms (par la fonction ClockPeriod()) possibilité d’utiliser les ticks CPU pour plus de précision *: méthode employée dans la librairie MICROB 15

ELE3100, Projets de génie électrique: informatique embarquée Logiciel temps réel embarqué: principaux éléments Éléments logiciels fréquemment utilisés dans diverses architectures logicielles de robotique mobile: Boucles temporelles Communications inter-processus Interfaces avec périphériques (pilotes) Généralement, ces éléments seront implantés sur un ordinateur embarqué muni d’un système d’exploitation temps-réel et d’une combinaison de divers langages de programmation (C/C++, assembleur). 16

ELE3100, Projets de génie électrique: informatique embarquée Logiciel temps réel embarqué: principaux éléments Boucles temporelles (POSIX.4 chapitre 3) Plusieurs possibilités d’implantation (un ou plusieurs processus, un ou plusieurs « threads ») Utilisation d’une période prédéterminée (ex.: classe Engine de MICROB) ou boucle contrôlée par d’autre paramètres (ex.: classe Thread de MICROB) 17

ELE3100, Projets de génie électrique: informatique embarquée Logiciel temps réel embarqué: principaux éléments Boucles temporelles: exemple de logiciel « multithread » 18

ELE3100, Projets de génie électrique: informatique embarquée Logiciel temps réel embarqué: principaux éléments Boucles temporelles: exemple de logiciel « singlethread » 19

ELE3100, Projets de génie électrique: informatique embarquée Logiciel temps réel embarqué: principaux éléments Communications inter-processus Partage de données entre processus sur un même ordinateur (POSIX.4 chapitre 4): messages, mémoire partagée (ex.: classe Shmem de MICROB) Communications entre processus distribués: communication socket par protocole UDP ou TCP/IP (plus fréquent) (ex. classes Client et Server de MICROB) 20

ELE3100, Projets de génie électrique: informatique embarquée Ordinateurs embarqués: principales caractéristiques Caractéristiques recherchées d’un ordinateur embarqué: Puissance de calcul suffisante Entrées/sorties suffisantes: pour cartes et périphériques désirés Périphériques intégrés: doit intégrer quelques périphériques usuels (contrôleurs graphique, réseau, etc.) Robustesse: doit résister à un environnement parfois hostile Consommation électrique limitée Volume occupé restreint: doit s’intégrer à la structure mécanique Les caractéristiques recherchées peuvent varier considérablement en fonction de l’application. 21

ELE3100, Projets de génie électrique: informatique embarquée Ordinateurs embarqués: quelques exemples Format Half-Size SBC: 18 x 12 cm Exemple: VIPer 830 (Kontron), http://www.kontron.com/products/pdproductdetail.cfm?keyProduct=31518 22

ELE3100, Projets de génie électrique: informatique embarquée Ordinateurs embarqués: quelques exemples Format EBX: 20.3 x 14.8 cm 23 Exemple: MSEBX855 (Digital-Logic), http://www.digitallogic.com/english/products/datasheets/ms_ebx855.asp?id=MSEBX855

ELE3100, Projets de génie électrique: informatique embarquée Ordinateurs embarqués: quelques exemples Format PC/104: 9.2 x 9.7 cm 24 Exemple: Jaguar (Versalogic), http://www.versalogic.com/Products/DS.asp?ProductID=143

ELE3100, Projets de génie électrique: informatique embarquée Ordinateurs embarqués: quelques exemples Les standards PC/104 et PC/104+ sont couramment utilisés sur les ordinateurs embarqués. Pour obtenir les spécifications de ces standards ainsi qu’une liste de fabricants, consulter: Consortium PC/104: http://www.pc104.org 25