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

Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003.

Présentations similaires


Présentation au sujet: "Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003."— Transcription de la présentation:

1 Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003

2 Arnaud Constancin 2/29 Sommaire : Tini (Tiny Internet Interface) Principe des systèmes dexploitation THINK Is Not a Kernel Des concepts à la pratique : Think/Tini Demo !

3 TINI : Tini Internet Interface Présentation Mémoire : Caractéristiques Applications industrielles

4 Arnaud Constancin 4/29 Tini : Présentation Moins de 100 euros OS propriétaire + JVM Micro-contrôleur DS80C390 Controleur intégrés : Ethernet Série (x2) CAN I2c 1-Wire

5 Arnaud Constancin 5/29 Mémoire : caractéristiques Adressage 24 bits (4Mo) Rom : 512 ko Ram 1024 ko Periphérical segment Data segment Code segment

6 Arnaud Constancin 6/29 Applications industrielles Accès aux bus de terrains Contrôle distant de capteurs et dactionneurs Collecte de données Domotique etc…

7 Principes des systèmes dexploitations Présentation Les ressources Les differents types de noyaux Spécificité de lembarqué

8 Arnaud Constancin 8/29 Les Systèmes dexploitation Rôle Abstractions de la machine Partage des ressources matérielles Services Accès aux ressources Notion de noyau Couche essentielle dun système Gestion et partage des ressources

9 Arnaud Constancin 9/29 Les ressources matérielles Processeur UAL, UC, Contexte (Registres) Exceptions et évènements Mode dexécution (superviseur / utilisateur) Mémoire et MMU Contrôleurs de Périphériques i/o Série, USB,PCI, AGP, Fire-Wire, WIFI, IDE, etc…

10 Arnaud Constancin 10/29 Ressources systèmes Abstraction des ressources matérielles Fils dexécution (Thread) Mémoire virtuelle --> Processus Fichiers, sockets, etc… But : répartition des ressources

11 Arnaud Constancin 11/29 Les concepts de noyaux (1/5) Noyau à domaine de protection unique DOS, PalmOS Efficace Aucune sécurité matériel appli service

12 Arnaud Constancin 12/29 Les concepts de noyaux (2/5) Noyau monolithiques 1eres générations de Linux et dAIX… Performant et relativement sécurisé. Peu extensible, maintenance délicate. matériel appli service Noyau monolithique

13 Arnaud Constancin 13/29 micronoyau Les concepts de noyaux (3/5) Micronoyaux Mach(BSD, MacOSX), GNU-HURD Très sécurisé Peu performant (Génération actuelles optimisées) matériel appli service

14 Arnaud Constancin 14/29 Les concepts de noyaux (4/5) Noyau extensible Linux, AIX, Solaris… Chargement dynamique de code Manque de sécurité micronoyau matériel appli service

15 Arnaud Constancin 15/29 Les concepts de noyaux (5/5) Exonoyau Performance Extensible Perte de contrôle des ressources par le noyau micronoyau matériel appli service

16 Arnaud Constancin 16/29 Spécificité de lembarqué Processeurs Simples Pas de MMU Pas de mode dexécution Ressources restreintes Mémoire vitesse

17 THINK Is Not a Kernel Présentation et Définitions Canevas logiciel Fonctionnement global

18 Arnaud Constancin 18/29 THINK : présentation THink Is Not a Kernel Architecture pour Exo-Noyaux Préoccupation : Extensibilité / Flexibilité / Adaptabilité / Modularité Efficacité / Performance Et tout et tout... Projet Open Source : ObjectWeb.org

19 Arnaud Constancin 19/29 THINK : Définitions Composants Réifient les ressources matérielles Possèdent une Interface (ou plusieurs) Associés à un nom Utilisent les services dun canevas pour communiquer entre eux (liaison) Liaisons Flexibles Canal de communication inter-composant Locales / distantes Assemblage de composants (1 ou plusieurs)

20 Arnaud Constancin 20/29 THINK : Canevas logiciel Canevas Logiciel Naming Context Trader (Courtier) Binding factory (Usine de liaisons) NanoNoyau L'essentiel pour booter !

21 Arnaud Constancin 21/29 Fonctionnement Globale Matériel Nano noyau : réifie la machine sans abstraction Composant A Composant B Composant C Implémente une ou plusieurs interfaces Exporte ses Interfaces --> Nom Se lient utilise Usine à liaisons Contexte de nommage Canevas logiciel Courtier (Trader) Demande une interface

22 Des concepts à la pratique avec Think/Tini Prototype Codage Démo !!

23 Arnaud Constancin 23/29 Think/Tini : Le prototype ! Nano noyau Boot et interruption Canevas de base de THINK Trader / Naming Context / Binding Factory Pilotes de périphériques Leds / Afficheur LCD / Port série Application : Interpréteur de commande sur port série

24 Arnaud Constancin 24/29 Think/Tini : Dépendances This shell is provided for components debugging purpose.

25 Arnaud Constancin 25/29 Think/Tini : Composition Shell on serial port test !

26 Arnaud Constancin 26/29 Think/Tini : Interface Décrites en Java puis converties en C meth Référence Dinterface Descripteur dinterface m1 m2 m3 Structure de méthode de linterface data Variable statiques

27 Arnaud Constancin 27/29 Think/Tini : Interface package appli; public interface shell { voidstart(); } typedef struct { struct Mappli_shell *meth; void *selfdata; } Rappli_shell; /* Virtual table */ struct Mappli_shell { void* (*cast)(void* this, const unsigned char* type) reentrant; void (*start)(void* __this) reentrant; };

28 Arnaud Constancin 28/29 Think/Tini : Composant Interfaces multiples : meth Référence Dinterface 1 Descripteur Itf1 m1 m2 m3 Structure de méthode de linterface data Variable statiques m4 meth Référence Dinterface 2 Descripteur Itf 2 data

29 Arnaud Constancin 29/29 Think/Tini : Composant struct serialshelldata { Rappli_shellitf; charin_buffer[256]; }; static void start(void* __this) reentrant{/* implementation */} static struct Mappli_shell serialshellMeth = { meth = &serialshellMeth selfdata = &d; };

30 Arnaud Constancin 30/29 Think/Tini : Composant void serialshellProbe(void) reentrant{ static struct serialshelldata d; serialshellMeth.start = start; Rthink_Name* rtn; rtn =(Rthink_Name *) CALL1(Trader, lookupfirst, "serial"); refserial =(Rdrivers_serial *)CALL2(defaultBF, bind, rtn, 0); /* Enregistrement aupres du trader */ Rthink_Top* itfptr = (Rthink_Top *)(&(d.itf)); rtn = CALL2(defaultNC,export,itfptr,0); CALL2(Trader,_register,rtn,"shell"); }

31 Arnaud Constancin 31/29 Conclusion Relativement facile à programmer --> Enseignement Prochaines étapes : Reconfiguration dynamique Multitâche Communication évènementielle

32 Arnaud Constancin 32/29 Petite démo Application : interpréteur de commande Saisie des commandes Lecture de caractère sur le port série Appels des jeux de test des composants Test des Leds, Affichage de message sur le LCD, Envoie de chaîne de caractères sur le port série


Télécharger ppt "Systèmes dexploitation pour lembarqué et THINK Etude Approfondie Arnaud CONSTANCIN 25/11/2003."

Présentations similaires


Annonces Google