25
jc/md/lp-01/06 Généralités 1 Généralités

Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

Embed Size (px)

Citation preview

Page 1: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

jc/md/lp-01/06 Généralités 1

Généralités

Page 2: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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

Page 3: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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

Page 4: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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

Page 5: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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

Page 6: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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…)

Page 7: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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

Page 8: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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

Page 9: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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

Page 10: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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)

Page 11: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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)

Page 12: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

jc/md/lp-01/06 Généralités 12

ARCHITECTURE

APPLICATION

ADAPTATION

NOYAU STANDARD

HARDWARE

Page 13: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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

Page 14: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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

Page 15: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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

Page 16: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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é

Page 17: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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

Page 18: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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

Page 19: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

jc/md/lp-01/06 Généralités 19

Système de base NOYAU (1)

• Principaux blocs constitutifs

KERNELGWES

DEVICE DRIVERSOAL

DEVICEMANAGER

FILESYS

Page 20: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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

Page 21: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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)

Page 22: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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

Page 23: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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

Page 24: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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

Page 25: Jc/md/lp-01/06Généralités1. jc/md/lp-01/06Généralités2 Objectif du chapitre Présentation de notions de base –Système temps réel –Système embarqué –Configurations

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