généralités_V2.0

Download Report

Transcript généralités_V2.0

Généralités
jc/md/lp-01/06
Généralités
1
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
2
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
3
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
4
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
5
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
6
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
7
Processeurs supportés
Processor Family
CPU
SDB
BSP Name
ARM
Intel SA1110
Intel SA111x
Assabet SDB
SA11X0BD
ARM920
ARM Integrator
AP SDB
ARMINTEGRATOR
Intel Xscale
Intel Lubbock SDB
TBD
NEC Vr4122
NEC DDB-Vr4122
Eagle SDB
EAGLE
NEC Vr5432
NEC DDB-Vrc5476
Boston SDB
DDB5476
SH4-7750
Hitachi SH4
Aspen SDB
ASPEN
SH3-7729
Hitachi SH3
Keywest SDB
KEYWEST
P5/P4/PIII/PII/
CelK6x/Athlon
CEPC
CEPC
NS Geode
National Geode Reference
Platform
GEODE
ARM1020
MIPS
SHx
x86
jc/md/lp-01/06
Généralités
8
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
9
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 hommemachine
• Internet Appliance (Borne Internet avec écran et clavier)
jc/md/lp-01/06
Généralités
10
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
11
ARCHITECTURE
APPLICATION
NOYAU STANDARD
ADAPTATION
HARDWARE
jc/md/lp-01/06
Généralités
12
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
13
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
14
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
15
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
16
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
17
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
18
Système de base NOYAU (1)
• Principaux blocs constitutifs
GWES
KERNEL
DEVICE
MANAGER
FILESYS
DEVICE DRIVERS
OAL
jc/md/lp-01/06
Généralités
19
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
20
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
21
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
22
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
23
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
24
Conclusion
• Survol de quelques notions de base des
systèmes d’exploitation appliquées à nos
développements avec Windows CE
jc/md/lp-01/06
Généralités
25