Vous êtes sur la page 1sur 12

Gestion des ressources

Brique ROSE Samuel Tardieu sam@rfc1149.net


cole Nationale Suprieure des Tlcommunications

Samuel Tardieu (ENST)

Gestion des ressources

1 / 12

Introduction

Dans un systme embarqu, les ressources sont limites : la mmoire est souvent faible on manque souvent dun coprocesseur arithmtique lnergie est critique les entres-sorties sont minimales

Samuel Tardieu (ENST)

Gestion des ressources

2 / 12

Gestion de la mmoire

Allocateur classique
permet dallouer des blocs de taille quelconque gre des listes de blocs libres et occups peut dsallouer explicitement ou faire de la garbage collection

Allocateur ddi
gre une zone alloue statiquement alloue des blocs de taille xe utilise un bitmap pour reprsenter lespace occup

Samuel Tardieu (ENST)

Gestion des ressources

3 / 12

Utilisation dun bitmap

Ide : marquer avec un seul bit les blocs occups en mmoire Initialisation : tous les blocs sont zro Allocation : recherche dun bit zro Dsallocation : remise dun bit zro
8 bits

Bloc 1

Bloc 2

Bloc 3

Bloc 4

Bloc 5

Bloc 6

Bloc 7

Bloc 8

Taille du bloc en octets 8 64 256

Cot de gestion 1, 6% 0, 2% 0, 05%

Samuel Tardieu (ENST)

Gestion des ressources

4 / 12

Optimisations

Possibilit de recherche par mots machine entiers Possibilit de dichotomie sur mots entiers Utilisation des oprations assembleur de recherche du premier bit zro dans un mot Possibilit de se souvenir du rsultat de la dernire allocation avec remise zro en cas de dsallocation

Samuel Tardieu (ENST)

Gestion des ressources

5 / 12

Oprations numriques
Il existe deux reprsentations des nombres virgule : 1 Virgule ottante :
position de la virgule conserve dans le nombre prcision dpendante du nombre (5 chires signicatifs par exemple) ncessit de renormalisation chaque opration coprocesseur arithmtique bienvenu utiliss pour des grandeurs trs variables (108 108 par exemple)
2

Virgule xe :
position de la virgule gre par le programmeur prcision absolue indpendante du nombre (0,0001 par exemple) mise lchelle eectue par le programmeur lorsque cest ncessaire utiliss pour des grandeurs limites (0, 0001 100, 9999 par exemple) calculs en gnral beaucoup plus lgers

Samuel Tardieu (ENST)

Gestion des ressources

6 / 12

Choix des reprsentations

Virgule ottante :
Reprsentation dune grandeur avec une prcision de n%

Virgule xe :
Logiciels bancaires : on souhaite garder la valeur dun compte au centime prs, pas une approximation 1% prs Logiciels de navigation : la prcision doit tre de 0, 01 et doit rester identique 0 et 180

Le choix de la virgule ottante se fait souvent par ignorance de la virgule xe, ou par fainantise des dveloppeurs.

Samuel Tardieu (ENST)

Gestion des ressources

7 / 12

Virgule xe

Le nombre utilis est entier La mise lchelle nest pas toujours ncessaire :
Des grandeurs de mme unit sajoutent et se soustraient Exemple : angle = angle angle

Des oprateurs de mise lchelle (scaling ) permettent de simuler les oprations avec dautres nombres rels :
Problme : tant donn un rayon en millimtres, comment calculer une aire en millimtres carrs (A = R 2 ) en restant en entiers ? Solution : utiliser une approximation de (A 3142RR ) 1000 Certains langages orent un oprateur S(a, b, c) calculant ab en c utilisant un rsultat intermdiaire de double prcision

Samuel Tardieu (ENST)

Gestion des ressources

8 / 12

Fractions continues
Problme :
Trouver lapproximation dun nombre rel par une fraction Trouver une fraction irrductible la plus prcise possible

Fractions continues : 3 + 0, 141592653589 3+ 1


1 0,14159265

3 1

3+ 1

1 22 1 3+ = 7 + 0, 06251330 7 7 3+ 1 355 1 = 113 7 + 16

3+ Prcision :

7+

1 15+0,99659592

355 113

< 106
355RR 113

Calcul de laire : A
Samuel Tardieu (ENST)

= S(R R, 355, 113)


9 / 12

Gestion des ressources

Fonctions relles
Problme : reprsenter une fonction relle Solution
Choisir la reprsentation du domaine de la fonction en virgule xe Choisir la prcision du rsultat Utiliser une table pour stocker les valeurs tudier la possibilit dinterpoler (linairement ou avec un polynme plus complexe) les valeurs intermdiaires

Exemples dinterpolation
Doublement des valeurs : (cas particulier) f( a+b f (a) + f (b) ) 2 2

Interpolation linaire : (k [0, 1]) f (a + k(b a)) = f (a) + k(f (b) f (a))
Samuel Tardieu (ENST) Gestion des ressources 10 / 12

Gestion de lnergie

Lnergie est souvent critique Souhaits


Ne rien dpenser lorsquon ne fait rien Ne rien dpenser pour surveiller sil y a quelque chose faire

Solutions
Ne jamais faire dattente active (polling ) Utiliser le mode veille du systme Bloquer sur des ressources prvues pour cela (smaphores, variables conditionnelles) lorsquelles sont fournies par le systme dexploitation

Le repos est une chose sacre dans les systmes embarqus.

Samuel Tardieu (ENST)

Gestion des ressources

11 / 12

Entres-sorties
Comment dverminer un programme ? Avec une LED : changement dtat chaque passage dans la boucle principale Avec une LED : changement dtat chaque interruption Avec une LED : changement dtat chaque passage dans une routine suspecte Avec une LED : allumage chaque assertion incorrecte Tout cela fonctionne aussi avec un moteur (allumage pendant 1 seconde puis extinction) Tout cela fonctionne aussi avec un buzzer Avec un port srie : traces slectives, slectionnables par macros (lorsque cest applicable au langage choisi)

Samuel Tardieu (ENST)

Gestion des ressources

12 / 12

Vous aimerez peut-être aussi