Evaluation du coût des threads dans un système temps réel

De Wiki de Projets IMA
Révision datée du 10 février 2014 à 14:30 par Mlelaure (discussion | contributions) (Semaine 07)

Cahier des charges

Objectif

L'objectif du projet est mesurer les coûts d'utilisation (mémoire, changement de contexte, ...) d'un grand nombre de threads dans un système temps.

Description

Dans le cadre de travaux de recherche sur le regroupement des tâches pour limiter le nombre de threads, l'idée est de mesurer l'impact de ces nombreux threads sur un système temps réel. Pour cela, deux programmes fesant les mêmes tâches mais avec un nombre de threads différents seront tester sur un microcontrôleur (Hercules TMS570) avec un OS Temps Réel.

Gestion de projet

Date clées

  • Début du projet: lundi 27/01
  • Rendu du dossier: mardi 25/02 à 13h
  • Soutenance: jeudi 27/02

Planning

Matériel et logiciels utilisé

Pour ce projet le matériel utilisé est:

  • un kit de dévellopement Hercules TMS570 fabriqué par Texas Instruments
  • l'IDE Code Composer Studio (CCS) de Texas Instruments

CCS peut être téléchargé ici et les instructions pour l'installer sous Linux sont disponibles .

  • le logiciel HalCoGen de Texas Instruments
  • le système d'exploitation temps réel FreeRTOS

Avancement du projet

Semaine 05

Lundi 27/01 au Dimanche 02/02

Objectifs de la semaine

  • Réussir à exécuter un programme quelconque sur la carte.
  • Réussir à exécuter un programme Temps réel sur la carte.

Réalisation

  • Prise en main du sujet et du matériel.
  • Lecture d'un article et de documentations.
  • Installation des logiciels nécessaire à la programmation du microcontrolleur sur une plateforme Windows (l'IDE Code Composer Studio et HalCoGen).
  • Essais pour lancer un programme d'exemple sur le microcontrôlleur.

Les programmes d'exemples fournient par Texas Instruments (avec ou sans OS Temps Réel) ont des erreurs difficiles à réparer étant donné les messages d'erreurs du compilateur ("unresolved symbol remain", rien de plus). Il a donc été décidé de passer sous une platforme Linux (Ubuntu 10.04 ici) afin de pouvoir compiler le projet avec GCC au lieu du compilateur de TI en espérant que les messages d'erreur soit plus clair.

  • Installation des bibliothèques nécessaires et de l'IDE Code Composer Studio (basé sur Eclipse) fournit par Texas Instruments.
  • Essais pour lancer un programme d'exemple sur le microcontrôlleur avec Linux.

Il s'avère qu'une erreur plus précise à permis de se rendre compte qu'un paramètre du compilateur n'était pas bon et donc de finalement compiler un des programmes d'exemple, celui avec un OS Temps Réels appelée FreeRTOS.

Cependant, avec cet exemple les tâches temps réels ne se lance pas. Il est seulement possible d'allumer une LED dans la fonction principale.

Reste à faire

  • Réussir à éxecuter des tâches temps réel sur le microcontrolleur.

Semaine 06

Lundi 03/02 au Dimanche 09/02

Objectifs de la semaine

  • Réussir à éxecuter des tâches temps réels sur le microcontrolleur.
  • Commencer les mesures de mémoires utiliser par les tâches et les temps d'éxecution.

Realisation

  • Essais de lancement de tâches temps réels sur le microcontrolleur.

Il s'avère que dans le programme d'exemple avec FreeRTOS utilisé jusqu'à présent le timer n'est pas bien régler et aucun tick n'est généré. Les tâches ne se lancent donc jamais.

Cependant, le logiciel HalCoGen permet de généré le code C nécessaire au bon fonctionnement du microcontrolleur. Il est également possible de généré le code en intégrant FreeRTOS. Ce code généré est correct, compile et fonctionne en utilisant Windows comme Linux.

  • Mesures de la mémoire utiliser par les tâches.

FreeRTOS permet de choisir lors de la création d'une tâche la quantité de mémoire alloué à celle-ci. On veut donc vérifier si ce qu'on mesures correspond à ce qui est annoncé par FreeRTOS.

D'après les mesures effectuer le quantité de mémoire alloué pour chaque tâches varie selon quelques paramètres et calculable facilement.

Reste à faire

  • Mesurer les temps d'execution des tâches.

Semaine 07

Lundi 10/02 au Dimanche 16/02

Prévisions

  • Finir les mesures sur les coûts mémoires et de temps d'éxecution.

Objectifs de la semaine

  • Mesurer les temps d'execution d'un grand nombre de tâches.
    • Réaliser une tâche qui prend du temps à s'executer (mesurable).
    • Déterminer le nombre de tâches maximum qui peuvent être créer sur le microcontrolleur (limite de mémoire)
    • Générer un jeux de test: créer un grand nombre de tâches identiques

Réalisation

Reste à faire

Semaine 08

Lundi 17/02 au Dimanche 23/02

Prévisions

  • écriture du rapport

Semaine 09

Lundi 24/02 au Dimanche 02/03

Prévisions

  • finalisation du rapport
  • préparation de la soutenance

Résultats

Coûts mémoire

Temps d'éxecution

Bilan

Rapport