Upload
fabienne-binet
View
104
Download
1
Embed Size (px)
Citation preview
jc/md/lp-01/06 Généralités 1
Généralités
jc/md/lp-01/06 Généralités 2
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
jc/md/lp-01/06 Généralités 3
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
jc/md/lp-01/06 Généralités 4
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
jc/md/lp-01/06 Généralités 5
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
jc/md/lp-01/06 Généralités 6
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…)
jc/md/lp-01/06 Généralités 7
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
jc/md/lp-01/06 Généralités 8
Processeurs supportés
Processor Family CPU SDB BSP Name
ARM Intel SA1110 Intel SA111x Assabet SDB
SA11X0BD
ARM920 ARM Integrator AP SDB
ARMINTEGRATOR
ARM1020
Intel Xscale Intel Lubbock SDB TBD
MIPS NEC Vr4122 NEC DDB-Vr4122 Eagle SDB
EAGLE
NEC Vr5432 NEC DDB-Vrc5476Boston SDB
DDB5476
SHx SH4-7750 Hitachi SH4 Aspen SDB
ASPEN
SH3-7729 Hitachi SH3 Keywest SDB
KEYWEST
x86 P5/P4/PIII/PII/CelK6x/Athlon
CEPC CEPC
NS Geode National Geode Reference Platform
GEODE
jc/md/lp-01/06 Généralités 9
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
jc/md/lp-01/06 Généralités 10
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)
jc/md/lp-01/06 Généralités 11
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)
jc/md/lp-01/06 Généralités 12
ARCHITECTURE
APPLICATION
ADAPTATION
NOYAU STANDARD
HARDWARE
jc/md/lp-01/06 Généralités 13
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
jc/md/lp-01/06 Généralités 14
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
jc/md/lp-01/06 Généralités 15
PROCESS (CE6.0)
• 2 GB d’adressage virtuel par process
• CE6.0 peut gérer jusqu’à 32000 process simultanément
jc/md/lp-01/06 Généralités 16
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é
jc/md/lp-01/06 Généralités 17
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
jc/md/lp-01/06 Généralités 18
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
jc/md/lp-01/06 Généralités 19
Système de base NOYAU (1)
• Principaux blocs constitutifs
KERNELGWES
DEVICE DRIVERSOAL
DEVICEMANAGER
FILESYS
jc/md/lp-01/06 Généralités 20
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
jc/md/lp-01/06 Généralités 21
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)
jc/md/lp-01/06 Généralités 22
PROCESS SYSTÈME
• Windows CE utilise 4 des 32 process disponibles
– NK.EXE et COREDLL.DLL– FILESYS.EXE– DEVICE.EXE– GWES.EXE
jc/md/lp-01/06 Généralités 23
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
jc/md/lp-01/06 Généralités 24
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
jc/md/lp-01/06 Généralités 25
Conclusion
• Survol de quelques notions de base des systèmes d’exploitation appliquées à nos développements avec Windows CE