250 likes | 395 Views
Généralités. Objectif du chapitre. Présentation de notions de base Système temps réel Système embarqué Configurations de base Process, thread, tâche Operating System (OS) Architecture mémoire. Système PC et système embarqué. PC ou station de travail Prix élevé
E N D
Généralités Généralités
Objectif du chapitre • Présentation de notions de base • Système temps réel • Système embarqué • Configurations de base • Process, thread, tâche • Operating System (OS) • Architecture mémoire Généralités
Système PC et système embarqué • PC ou station de travail • Prix élevé • Processeur très puissant • Mémoire de grande taille • OS adapté à de nombreuses applications • Système embarqué • Contrainte de prix • Processeurs de consommation minimale • Mémoire limitée • OS dédié à l’application souhaitée Généralités
Système embarqué • Embedded system • Système enfoui • Image en ROM ou en FLASH • Exemples • Injection électronique • Téléphone portable • Appareil photo numérique • … • Système éventuellement modifiable par téléchargement Généralités
TEMPS RÉEL • Système qui doit faire un ensemble d’actions dans un temps imparti • Temps réel critique : résultat catastrophique si le temps imparti est dépassé • Temps réel mou : résultat non catastrophique et cependant encore utile malgré le non respect des contraintes de temps Généralités
Objectifs de CE 4.x • OS entièrement réécrit « from scratch » (CE 3.X) • OS compact et modulaire • Construit à partir d’un catalogue de composants • OS temps réel mou • Peut couvrir 90% des besoins temps réel actuels • Nombreuses possibilités de communication • Réseaux filaires et sans fils (Bluetooth, WiFi) • Orienté multimédia et multilingue • Grand nombre de codecs audio et vidéo • Nombreux langages (chinois, coréen, japonais…) Généralités
Outils de développement • Platform Builder • Construction de l’OS : Kernel + BSP • Construction d’applications simples • Téléchargement et debug sur émulateur et cible • Embedded Visual C++ • Applications C++ natives complexes • Téléchargement et debug sur émulateur et cible • Visual Studio.net • Applications en : C++, C#, VB.net, etc. • Nécessite le Compact FrameWork • Téléchargement et debug sur émulateur Généralités
Processeurs supportés Généralités
Création de l’OS • Construction à partir du catalogue de composants • On met dans le noyau un à un tous les composants désirés • Utilisation de configurations préétablies, orientées pour cibler des applications • En fonction du projet à réaliser choisir une configuration proche des besoins comprenant un ensemble de composants de base • Retirer les composants inutiles • Ajouter les composants manquants Généralités
Configurations de base (1) • Digital Media Receiver • Appareils légers gérant l’audio et/ou la vidéo • Enterprise Terminal • Points de vente, caisses enregistreuses, bornes libre service • Enterprise Web Pad • Client internet sans fil avec interface tactile • Gateway • Partage de connexions internet sur de petits réseaux privés • Industrial Controller • Applications industrielles avec ou sans interface homme-machine • Internet Appliance (Borne Internet avec écran et clavier) Généralités
Configurations de base (2) • IP Phone • Voix sur IP avec ou sans graphisme • Mobile Handheld • Assistants personnels de poche (PDA) • Mobile Phone (téléphonie mobile) • Set Top Box • Appareils connectables à la télé (internet, décodeurs…) • Tiny Kernel (Noyau minimal) • Windows Thin Client • Petite configuration permettant la prise de contrôle à distance d’un poste de travail ou d’un serveur en utilisant le protocole RDP (Remote Desktop Protocol) Généralités
ARCHITECTURE APPLICATION NOYAU STANDARD ADAPTATION HARDWARE Généralités
BOARD SUPPORT PACKAGE (BSP) • La couche d’adaptation est à la charge du concepteur du hardware • Elle comprend • des fonctions d’adaptation au hardware OAL (OEM Adaptation Layer, OEM:Original Equipment Manufacturer) • un certain nombre de drivers (pilotes de périphériques) • Le Boot Loader • L’ensemble de cette couche est appelé BSP • Des BSP existent pour des cartes industrielles de référence Généralités
PROCESS (CE4.2) • Un process ou processus est une instance d’application en cours ou en attente d’exécution • Allocation de ressources au niveau du process • 32 MB d’adressage virtuel par process • Un process démarre avec un seul thread (Primary Thread) mais il peut créer d’autres threads • Plusieurs threads peuvent s’exécuter simultanément • Un process peut aussi créer d’autres process • Windows CE peut gérer jusqu’à 32 process simultanément Généralités
PROCESS (CE6.0) • 2 GB d’adressage virtuel par process • CE6.0 peut gérer jusqu’à 32000 process simultanément Généralités
THREAD • La plus petite unité d’exécution • Plusieurs threads peuvent s’exécuter simultanément • Les threads ont accès à l’ensemble des ressources du process • Ordonnancé (schédulé) par le noyau • Quantum de temps configurable (100ms) • Préemptif • 256 niveaux de priorités • Priorité tournante pour des threads de même priorité Généralités
Synchronisation des tâches • Il est bien évident puisque les threads peuvent s’exécuter simultanément qu’il faut coordonner les exécutions pour obtenir un résultat valide dès que plusieurs threads sont en jeu • Une situation désespérée se présente lorsque une tâche est bloquée en attente d’un résultat d’une autre tâche (voire sur elle-même) et réciproquement • Nous consacrerons un chapitre à ce sujet • Dans certains cas, l’inversion de priorité suffit Généralités
Inversion de priorité • Si un thread A de haute priorité est en attente d’une ressource bloquée par un thread B de moindre priorité, la priorité de B est alignée temporairement sur celle de A pour permettre la libération de la ressource bloquante • Ce mécanisme qui peut perturber le fonctionnement déterministe d’un système, est à éviter dans la mesure du possible Généralités
Système de base NOYAU (1) • Principaux blocs constitutifs KERNEL GWES DEVICE MANAGER FILESYS DEVICE DRIVERS OAL Généralités
NOYAU (2) • KERNEL • OS minimal ; il gère les process, les threads, la mémoire, les interruptions, etc. • GWES (Graphics Windowig Events Subsystem) • Gère l’interface graphique et les entrées-sorties (I/O) des utilisateurs • DEVICE DRIVERS • Native Drivers : interface utilisateur de base sauf clavier, écran et souris qui sont gérés par GWES et chargés lors du boot • Stream Drivers : gérés par le Device Manager Généralités
NOYAU (3) • DEVICE MANAGER • Gère les Stream Drivers : charge lors du boot ceux qui sont listés dans la Registry • Gère de manière dynamique les drivers chargeables à la demande • FILESYS • Gère le système de fichiers, la registry et la Property Data Base (base de donnée non hiérarchisée pour stocker des adresses, des mails et des informations) Généralités
PROCESS SYSTÈME • Windows CE utilise 4 des 32 process disponibles • NK.EXE et COREDLL.DLL • FILESYS.EXE • DEVICE.EXE • GWES.EXE Généralités
Architecture mémoire • Espace virtuel de 4 GB • Partage mémoire • Adresses de 0 à 2GB : user mode (process) • Adresses de 2GB à 4GB : kernel mode (system) • Mémoire user mode ou mode application • 33 slots de 32MB • 32 slots pour les process (numéros 1 à 32) • 1 slot pour le process en cours (numéro 0) • Le reste (1GB moins 32MB) est partagé entre tous les process Généralités
Gestion mémoire • Mémoire gérée par le mécanisme de pages à la demande • Page de 4KB ou de 1KB suivant les versions de CE et les processeurs cibles • Possibilité de réserver des régions de 64KB • Les process s’exécutant dans des slots distincts il y aura un problème de communication entre process Généralités
Conclusion • Survol de quelques notions de base des systèmes d’exploitation appliquées à nos développements avec Windows CE Généralités