Cours systèmes temps réel, Chapitre 2 - freeRTOS
27 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

En 2019, FreeRTOS était l'un des systèmes d'exploitation en temps réel les plus populaires sur le marché des systèmes embarqués.

True

FreeRTOS est un système d'exploitation en temps réel propriétaire et fermé.

False

Combien d'architectures FreeRTOS prend-il en charge ?

34

FreeRTOS ne prend en charge que 18 chaînes de compilation.

<p>False</p> Signup and view all the answers

Quel est le rôle de l'ordonnanceur dans un système multitâche ?

<p>Gérer les tâches et les exécuter de manière efficace en partageant les ressources du processeur.</p> Signup and view all the answers

Parmi les états suivants, lequel n'est PAS un état possible d'une tâche dans un système FreeRTOS ?

<p>Terminé</p> Signup and view all the answers

Une tâche à l'état 'Prêt' est en train d'utiliser le processeur.

<p>False</p> Signup and view all the answers

Qu'est-ce qui se passe lorsqu'une tâche est bloquée ?

<p>La tâche arrête son exécution temporairement en attendant la résolution d'un problème, comme l'accès à une ressource indisponible.</p> Signup and view all the answers

L'état 'Suspendu' est le plus utilisé dans FreeRTOS.

<p>False</p> Signup and view all the answers

Les tâches dans FreeRTOS partagent la même pile mémoire.

<p>False</p> Signup and view all the answers

Expliquez brièvement le concept de 'pile' dans le contexte des tâches FreeRTOS.

<p>La pile est un espace mémoire réservé à chaque tâche pour stocker les informations nécessaires à son exécution, comme les variables locales, les paramètres de fonction et l'adresse de retour.</p> Signup and view all the answers

La fonction xTaskCreate() crée une nouvelle tâche et l'ajoute à la file d'attente des tâches prêtes.

<p>True</p> Signup and view all the answers

La fonction vTaskStartScheduler() démarre l'ordonnanceur et commence l'exécution des tâches.

<p>True</p> Signup and view all the answers

Quelle est la principale raison de l'utilisation de mécanismes de synchronisation dans les systèmes multitâches ?

<p>Pour gérer les ressources rares et éviter les conflits d'accès entre les tâches.</p> Signup and view all the answers

Les interruptions sont un exemple de mécanisme de synchronisation.

<p>True</p> Signup and view all the answers

Donnez un exemple de conflit d'accès à une ressource partagée qui peut se produire dans un système multitâche.

<p>Deux tâches essayant d'écrire dans le même fichier mémoire simultanément.</p> Signup and view all the answers

La communication entre les tâches ne nécessite pas de synchronisation.

<p>False</p> Signup and view all the answers

Quel est le but principal d'une queue de messages dans un système multitâche ?

<p>Permettre aux tâches de communiquer entre elles en envoyant et en recevant des messages.</p> Signup and view all the answers

Expliquez la différence entre xQueueSend() et xQueueSendToBack().

<p>La fonction <code>xQueueSend()</code> ajoute le message à la tête de la file d'attente, tandis que <code>xQueueSendToBack()</code> l'ajoute à la fin de la file d'attente.</p> Signup and view all the answers

Que se passe -t-il lorsqu'une tâche appelle xQueueReceive() sur une queue de messages vide ?

<p>La tâche est bloquée jusqu'à ce qu'un message soit disponible dans la queue de messages.</p> Signup and view all the answers

Quel est le rôle du délai d'expiration portMAX_DELAY dans le contexte de la communication entre tâches via les queues de messages ?

<p>Le délai d'expiration <code>portMAX_DELAY</code> spécifie le temps maximum pendant lequel une tâche peut attendre un message avant d'être débloquée.</p> Signup and view all the answers

Quels sont les deux mécanismes de synchronisation fondamentaux utilisés dans les systèmes multitâches ?

<p>Les queues de messages et les sémaphores</p> Signup and view all the answers

Les sémaphores et les mutex ont exactement la même fonction.

<p>False</p> Signup and view all the answers

Que se passe-t-il lorsqu'une tâche tente de prendre un sémaphore binaire déjà pris ?

<p>La tâche est bloquée jusqu'à ce que le sémaphore soit libéré.</p> Signup and view all the answers

Le protocole 'Priority Inheritance' est utilisé pour résoudre le problème d'inversion de priorité.

<p>True</p> Signup and view all the answers

Quel est le principal avantage du protocole 'Priority Inheritance' ?

<p>Il permet d'éviter que des tâches de haute priorité ne restent bloquées inutilement par des tâches de basse priorité.</p> Signup and view all the answers

L'inversion de priorité est un cas particulier du problème d'accès critique.

<p>True</p> Signup and view all the answers

Study Notes

Cours systèmes temps réel, Chapitre 2 - Exécutif temps réel (freeRTOS)

  • Le cours porte sur les systèmes temps réel, plus spécifiquement sur l'exécutif temps réel freeRTOS.
  • Le conférencier est Mariem TURKI.
  • L'année académique est 2024/2025.
  • Le niveau est LISI3.

Introduction (Diapositive 2)

  • Une étude de marché de 2019 a identifié les systèmes d'exploitation les plus utilisés dans l'embarqué.
  • Embedded Linux et Android sont en tête des systèmes d'exploitation utilisés.
  • L'étude régionale montre que l'Europe utilise plus Embedded Linux, tandis que l'Asie-Pacifique utilise plus Android.

Introduction (Diapositive 3)

  • En 2019, FreeRTOS est un leader sur le marché de l'embarqué.
  • Il est libre d'utilisation et open source (licence MIT).
  • Il est officiellement supporté par 34 architectures (ARM, TI, Microchip, Atmel, NXP, Intel...) et 18 chaînes de compilation.
  • Il a été téléchargé plus de 100 000 fois en 2020, ce qui indique une communauté d'utilisateurs active.

Notion de tâche (Diapositive 4)

  • En environnement multitâches, une application est divisée en unités de travail indépendantes appelées tâches.
  • L'ordonnanceur gère ces tâches, permettant potentiellement l'exécution simultanée de plusieurs tâches.
    • Exemple de code C (Task1)

Notion de tâche: Différentes états (Diapositive 5)

  • Chaque tâche dans un environnement multitâches possède un état.
  • Les tâches doivent d'abord être créées et initialisées.

Notion de tâche: Différentes états (Diapositive 6)

  • Une tâche à l'état "Ready" est prête à s'exécuter et sa priorité détermine son ordre d'exécution.
  • Une tâche en exécution ("Running") est en possession du processeur.
  • Une tâche bloquée ("Blocked") attend un événement pour continuer son exécution.
    • Les causes de blocage sont : ressource non disponible, zone protégée, ou communication bloquée...
  • Une tâche suspendue ("Suspended") est hors contrôle de l'ordonnanceur.

Notion de tâche: Gestion mémoire (Diapositive 7)

  • Description de la gestion mémoire au niveau des tâches (code d'exemple).
  • Illustration graphique de la pile d'exécution.
    • Affichage des variables (Main Stack, TCB Task1, Task1 Stack, TCB Task2, Task2 Stack, Heap)

Notion de tâche: Gestion mémoire (Diapositive 8)

  • Exemple d'implémentation d'une tâche.
    • Passage de paramètres à la tâche.
    • Création d'une tâche, avec des détails sur les paramètres (pointeur, chaînes de caractères utilisés).
    • Code illustratif dans le langage C à l'aide d'exemples pour une fonction Task1

Mécanismes TR (Diapositive 9)

  • Les résultats d'une tâche peuvent être nécessaires à l'exécution d'une autre tâche. ( Exemple décompression MPEG2.)
  • Les tâches peuvent partager des ressources (mémoire, périphériques). (Exemple: navigateur et application de visioconférence)

Mécanismes TR: Problème d'interférence (Diapositive 10)

  • Dans un environnement multitâche, les ressources partagées peuvent entraîner des problèmes d'interférence (accès concurrent).
  • Illustré sur la diapositive par le code (exemple de lecture et écriture sur une variable commune).
    • Illustre schématiquement le chemin d'accès des tâches à la ressource partagée.
      • Code montrant l'interférence entre plusieurs tâches accédant à la même ressource simultanément.

Mécanismes TR: Communication entre les tâches (Diapositive 11)

  • Communication entre les tâches (échanges d'informations).
  • Utilisation de la queue des messages dans les systèmes temps réels pour satisfaire les contraintes d'échanges.
  • Utilisation des sémaphores pour la synchronisation entre tâche
  • Utilisation des mutex (mutuellement exclusive) pour des accès simultanés à des ressources partagées.

Mécanismes TR: Queue de message (Diapositive 12)

  • Les queues de messages permettent un échange de données entre tâches.
  • Structure de données FIFO en général (First In First Out).
  • Définition des queues de messages en termes de nombre et taille d'éléments.

Mécanismes TR: Queue de message (Diapositive 13)

  • Fonctionnalités des messages (FreeRTOS)
  • Détails sur xQueueSend(), xQueueSendToBack(), xQueueReceive() et les temps mort (Timeout).

Mécanismes TR: Queue de message (Diapositives 14 et 15)

  • Exemple avec deux producteurs (priorité 1) et un consommateur (priorité 2).
  • Illustration schématique du flux entre les tâches, les threads et la queue.
    • Schéma de l'échange des messages entre plusieurs threads et la queue.
      • Détail du rôle de taskYIELD (code).

Mécanismes TR: Le sémaphore (Diapositive 17)

  • Le sémaphore permet de gérer l'accès à des ressources partagées dans les applications temps réel.
  • Principe fonctionnel analogue à celui des queues de messages, et préservation de l'ordre d'arrivée des tâches.
  • Mécanisme binaire: sémaphore en tant que variable booléenne
  • Opérations: Prise ("Take")/Libération ("Give") du sémaphore
    • Code décrivant l'opération d'accès et de libération du sémaphore.

Mécanismes TR: Le sémaphore (Diapositives 18 et 19)

  • Exemple du fonctionnement d'un sémaphore pour synchroniser l'accès à une ressource partagée entre trois tâches.

Mécanismes TR: Le sémaphore (Diapositive 20)

  • Code d'exemple utilisant les sémaphores en C
    • Description du code C avec éléments clés (incluant header, définitions et fonctions).

Mécanismes TR: Inversion de priorité (Diapositive 21)

  • Explication du problème d'inversion de priorités dans les systèmes temps réel.
  • Illustration schématique de tâches avec des priorités différentes et des interactions sur les ressources.
    • Rôle du délai et de la gestion des ressources dans l'inversion des priorités.

Mécanismes TR: Inversion de priorité (Diapositives 22 et 23)

  • Le protocole d'héritage de priorité (PIP) et mécanisme d'atténuation du problème d'inversion de priorités.
  • Illustration d'un exemple de résolution du problème de l'inversion de priorités.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

Description

Ce quiz porte sur le chapitre 2 du cours sur les systèmes temps réel, axé sur l'exécutif temps réel freeRTOS. Il examine l'utilisation croissante de freeRTOS dans l'embarqué et met en lumière ses caractéristiques et son adoption mondiale. Préparez-vous à tester vos connaissances sur ce système d'exploitation libre et open source.

Use Quizgecko on...
Browser
Browser