[storm_irccyn] Re: Implémentation d'un nouveau modèle de tâches dans STORM ?

  • From: urunuela <Richard.Urunuela@xxxxxxxxxxxxxxxxxxx>
  • To: Nicolas Dandrimont <Nicolas.Dandrimont@xxxxxxxxxxxxx>
  • Date: Thu, 5 May 2011 12:02:33 +0200

Bonjour

Je ne suis pas familier avec ce modèle mais cela ne me semble pas insurmontable :)
Par contre j'ai deux questions :

- Les dates d'activation de ces tâches sont programmer ou aléatoire (dans le cas du clavier on attend un evt extérieur ) ?
- Est ce qu'on modélise la tâche d'attente active ?
Pour vous familiariser avec les fonctionnalités de storm au sujet des tirs de durée d'exécution je vous invite à lire le document suivant (c'est un draft )
http://storm.rts-software.org/trac/attachment/wiki/architecture/tâche%20et%20durée%20execution%20tests%20et%20info.pdf?rev=&format=raw

Dans storm on utilise un AETRule qui définit les règle de tirage de l'AET. AET est le budget temporelle dont un tâche a besoin pour finir son execution. Le cas le plus simple c'est lorsque l'AET est toujours égale à WCET. On utilise assez souvent l'AETRule RANDOM qui pour chaque exécution (c'est à dire après chaque activation) tire une valeur IN[BCET,WCET]. Si vos besoins c'est juste de définir que l'AET suit une séquence particulière cela ne me semble pas très compliqué pour nous.

Est ce que dans cet objectif au vue du fichier d'entrée XML de storm vous pouvez me faire une spéc un peu plus détaillés. Par exemple est ce que vous voulez que l'on exprime cette séquence d'AET dans une balise XML ou dans un fichier externe .... Et quel serait le diagramme que vous vous attendez à voir. En gros est ce que vous pouvez faire un exemple de fichier XML et un diagramme de GANTT résultat (même avec |XX-|X--| :) )

Cordialement
Richard



Ps: Pour nous le WCET est une borne sup, je pense que ce que vous décrivez comme WCET dans votre précédent mail est l'AET pour nous (AET = Actual execution time)

quelques slides sur ces variables temporelles dans STORM :

http://storm.rts-software.org/trac/attachment/wiki/architecture/slide-V0.pdf?rev=&format=raw




Le 3 mai 11 à 10:02, Nicolas Dandrimont a écrit :


Bonjour,

Le modèle multiframe est en fait une extension assez simple du modèle de
Liu et Layland dans lequel le WCET n'est pas constant sur chacune des
périodes, mais va évoluer selon une suite périodique. Une alternance de tâches de périodicité 3 avec un WCET de 1 et de 2 serait représentée par
le couple [(1,2),3]. Une représentation pourrait être donnée comme
ceci :

(X : tâche en cours, - : idle)
   |X--|XX-|X--|XX-|

Ce cas est trivial, mais il est par exemple possible de modéliser des
tâches de type "traîtement sur évènement" (par exemple lecture clavier)
où le taux d'utilisation dans le pire cas est très grand, mais est en
pratique très peu souvent atteint. En pseudocode :

boucle infinie:
attente horloge (processeur libre)
lecture_clavier ();
si lecture clavier OK:
   /* long traitement == WCET */
fin boucle infinie

Si la lecture clavier est OK 20% des périodes, le processeur est "libre" 80% du temps et peut être utilisé pour d'autres opérations. Ceci ne peut
être représenté simplement dans le modèle de L&L. En multiframe, cela
donnerait une tâche du type : [(15,1,1,1,1),20] (utilisation de 15/20
une période sur 5, 1/20 sinon).

J'espère avoir été clair dans mes explications.

Merci,

Le 22/04/2011 à 09:42, Richard Urunuela <Richard.Urunuela@xxxxxxxxxxxxxxxxxxx > écrivit :
Quoting Nicolas Dandrimont <Nicolas.Dandrimont@xxxxxxxxxxxxx>:
Bonjour
Tout d'abord merci de  l'intérêt que vous portez à notre outil STORM.
Concernant vos besoins il est tout à fait possible d'étendre le modèle
de tâche.
En effet il s'agit de la même approche modulaire que pour les
processeurs et les ordonnanceurs. Le seul problème c'est que nous
n'avons pas rédiger de documentation à ce sujet. Je peux vous indiquer
une trame pour vous aider dans vos développement :)
Par contre pour bien cerner vos besoins et les difficultés
d'implémentation pouvez me donnez plus d'informations concernant vos
besoins ?  Quels sont les comportement attendus ? les impacts sur les
valeurs temporelles ....
Merci d'avance.

Cordialement

Urunuela Richard

Ps Je suis absent pour quelques jours et je ne pourrais pas vous
répondre avant  la semaine prochaine.




Bonjour,

Je suis actuellement en stage au CEA, au laboratoire LaSTRE, et je
souhaiterais utiliser l'outil STORM pour évaluer des algorithmes
d'ordonnancement minimisant la consommation d'énergie dans le cadre du projet OASIS, ce qui me ferait gagner le temps précieux du développement
complet d'un outil de simulation.

Je vous contacte car il se trouve que le modèle de tâches simple proposé par STORM risque rapidement de se retrouver limitant afin pour modéliser
les tâches de manière réaliste par rapport à l'architecture
time-triggered d'OASIS. Un modèle de tâches approchant tout en restant
classique serait un modèle multi-frame. Ce modèle de tâches n'est
apparemment pas implémenté.

Dans la documentation du projet, je vois bien une API pour implémenter de nouveaux algorithmes d'ordonnancement (heureusement !), de nouveaux modèles de processeur (avec si je ne m'abuse prise en compte du DPM et du DVFS), mais rien ne laisse à entendre que la définition d'un nouveau
modèle de tâche est possible.

Auriez-vous quelques pistes à me suggérer pour que je puisse implémenter
ceci ?

Merci d'avance,
--
Nicolas Dandrimont


Other related posts: