KARlab Flashcards
OSEK : Comment sont définis les services utilisés (tâches, messages, etc) ?
Le système est défini de façon statique lors de la compilation, les services sont définis dans le langage OIL (OSEK Implementation Langage)
OSEK : Quel est l’avantage de définir le système de manière statique ?
Contrairement aux systèmes temps réel de type POSIX. Cela entraîne une faible empreinte mémoire et un très faible surcoût processeur dû au système.
OSEK : Qu’est ce qu’une tâche ? et quels sont le 2 types de tâches d’OSEK ?
Une tâche est une portion de code séquentiel. OSEK OS fournit deux types de tâches :
- les tâches de base
- les tâches étendues
OSEK : Quand est-ce qu’une tâche de base rend la main au processeur ?
Quelles sont les états qu’une tâche de base peut prendre ?
Une tâche de base rend la main au processeur si :
- elle est terminée
- OSEK OS laisse la main à une tâche de priorité plus haute
- une interruption arrive
Les états sont :
- suspended : la tâche est passive mais peut être activée
- ready : la tâche est candidate à l’exécution
- running : la tâche est en cours d’exécution
OSEK : Qu’est-ce qu’apporte une tâche étendue ?
Les tâches étendues ont les mêmes caractéristiques que les tâches de base avec en plus la possibilité d’utiliser la gestion des évènements.
Cette possibilité leur « donne accès » a un quatrième état : Waiting. Les tâches étendues ont par ailleurs les trois mêmes états que les tâches de base (Running, Suspended, Ready).
Dans l’état « Waiting », la tâche étendue ne peut pas continuer à s’exécuter car elle doit attendre l’arrivée d’au moins un évènement.
OSEK : Gestion des priorités de tâche
Une tâche qui a été préemptée est considérée comme étant la plus ancienne dans la file FIFO des tâches de même priorité, et sera donc la première à en sortir. À l’inverse, une tâche qui sort de l’état « Waiting » est placée comme la première dans la file FIFO des tâches de même priorité, et sera donc la dernière à en sortir.
Pour déterminer la prochaine tâche qui sera exécutée, l’ordonnanceur suit l’algorithme suivant :
recherche de toutes les tâches qui sont dans l’état « Ready »
à partir de cet ensemble de tâche, l’ordonnanceur détermine celles qui ont la plus haute priorités
parmi cet ensemble de tâches à la priorité la plus haute, l’ordonnanceur détermine la plus ancienne (celle qui a été activée en premier), et l’exécute.
OSEK : Quels sont les 3 niveaux de traitement ?
- les interruptions
- l’ordonnanceur
- les tâches
OSEK : Quelles sont les 2 formes d’ISR ?
- ISR catégorie 1 : l’ISR ne fait pas appel aux services de l’OS. Ces interruptions sont transparentes pour l’OS, sont rapides et ne nécessitent pas de synchronisation avec l’OS.
- ISR catégorie 2 : l’ISR fait appel aux services de l’OS, c’est-à-dire que le code de l’interruption contient des appels à l’API.
Qu’est ce que CANOpen ?
CANopen est un protocole traitant de la couche réseau (couche 3 du modèle OSI) à la couche application (couche 7 du modèle OSI), originellement pour les Bus de terrain du type CAN (Controller area network) fonctionnant en temps réel.
Qu’est-ce que l’interface PCI ?
L’interface PCI (de l’anglais Peripheral Component Interconnect) est un standard de bus local (interne) permettant de connecter des cartes d’extension sur la carte mère d’un ordinateur. L’un des intérêts du bus PCI est que deux cartes PCI peuvent dialoguer entre elles sans passer par le processeur.