Académique Documents
Professionnel Documents
Culture Documents
1
• Définition
2
• À propos ecos
3
• Domaine d’application
4
• Architecture du système
5
• Avantages et limites
6
Conclusion
2
Définition
• ECOS Embedded Configurable Operating System (Système
d'exploitation embarqué configurable).
• C'est un système d'exploitation embarqué et temps réel.
• Permet de développer des programmes dans lesquels le temps de réponse et la
réactivité sont des contraintes fortes (dit temps réel dur).
• La spécificité d'eCos est d'être extrêmement configurable
3
À propos ecos
La Hardware Abstraction Layer (HAL, couche d'abstraction matérielle) est une couche logicielle
qui permet d'isoler les spécificités matérielles de la couche logicielle
La couche HAL est composé de trois modules distincts
▪ l'architecture: 1 architecture dans eCos = 1 famille de processeurs.
▪ les variantes: Une variante est un processeur spécifique au sein de la famille de processeurs décrite par
l'architecture qui gèrerait une MMU (Memory Management Unit).
▪ la plate-forme : regroupe le code spécifique à la partie du matériel qui supporte le processeur
(typiquement une carte d’évaluation).
7
Kernel (noyau)
Le Kernel est le noyau du système eCos.Le Kernel d'eCos fournit toutes les fonctions
standards d'un OS temps-réel :
gestion des exceptions
interruptions
ordonnancement
synchronisation Mécanismes
….
8
“
Gestion des exceptions
La gestion des exceptions peut se faire de deux manières
dans Système eCos :
Il est également possible de ne pas les activer du tout, mais cela n'est pas recommandé.
“ Interruptions
• cyg_thread_create() • cyg_thread_yield()
• Créer un thread dans un état suspendu • Permet de préempter un thread afin de plus
favoriser l’exécution qu'un autre thread de
même niveau de priorité
• cyg_thread_exit() • cyg_thread_kill()
• Permet a un thread de se terminer • Force la terminaison d'un thread
• cyg_thread_release() • cyg_thread_delay()
• Permet la libération de la mémoire • Place le thread dans un état de sommeil
utilisée par un thread qui s'est termine
“ Ordonnancement
Les travails de l'ordonnanceur est de sélectionner le
thread appropriées pour l'exécution, prévoir des
mécanismes de ces threads d'exécution de
synchroniser et de contrôler l'effet des interruptions
sur l'exécution du thread
On a deux ordonnanceurs différents :
Multilevel queue
-Chaque thread se voit assigner lors de sa
création une priorité comprise entre 0 et 31
-La gestion entre les threads de priorités
différentes se fait par préemption du thread de
priorité
- la gestion entre les threads de même priorité se
fait par fenêtre de temps d'exécution
Bitmap
- L'ordonnanceur bitmap permet l'exécution de
threads à niveaux multiples de priorité, mais un
seul thread peut exister à chaque niveau de
priorité
- Le nombre de niveaux de priorité est une
option de configuration à partir 1 à 32,
correspondant aux numéros de priorité 0 à 31
Fonctions API pour l’ordonnanceur
• Cyg_scheduler_start() • Cyg_read_lock()
• Demarre l’ordonnanceur, bitmap ou • Retourne l’état actuel de la lock
multilevel queue, selon les points de ordonnanceur
configuration sélectionnées
• Cyg_scheduler_lock() • Cyg_scheduler_unlock()
• Verrouillage de l’ordonnanceur • Decremente le compteur de verrouillage
ordonnanceur
“
Synchronisation Mécanismes
Le noyau eCos fournit les mécanismes permettant aux
threads du système de communiquer avec les uns les
autres et synchronisez l’accès aux ressources
partagées. Les mécanismes fournis par les eCos
noyau sont:
• Mutex.
• Sémaphores
• Variables de condition
• Drapeaux
• Boîtes de message
• Spinlocks
Avantages Limites