Vous êtes sur la page 1sur 8

Prosit n°5

A/ Rôles :
Animateur : Leonhard

Secrétaire : Victor

Gestionnaire : Romain

Scribe : Thomas

B/ Mots-clés :

 Allocation dynamique
 Pile d’exécution
 Taille de la pile
 Bibliothèques
 Etat de la pile

C/ Contexte :
Après avoir réduit la complexité de notre programme, nous avons un problème avec la taille de la
pile d’exécution.

D/ Problèmes :
 Comment gérer le problème de la taille de la pile d’exécution ?
 Comment gérer la gestion de notre tableau ?

E/ Contraintes :
 La taille de la pile d’exécution
 Temps d’accès aux variables

F/ Livrable :
 Le code optimisé  Nouvel algorithme
 Etat de la pile d’exécution avec la simulation du programme (Mémoire)

G/ Généralisation :
 Optimisation d’un temps d’exécution / des performances
H/ Pistes de solutions et hypothèses :
 Faire une allocation dynamique
 Utiliser la bibliothèque StdLib
 La taille de la pile d’exécution sera trop grande avec le code de base
 Faire une optimisation spatiale
 Utiliser les pointeurs
 Définir les structures
 Variable statique  Variable globale
 Organiser la mémoire de la pile d’exécution

I/ Plan d’actions :
I. Définition des mots-clés
II. WS
III. Ressources
IV. Ajouter la bibliothèque de la gestion de mémoires (Code)
V. Analyser l’algorithme mis à disposition
VI. Trouver la taille de sa pile d’exécution
VII. Optimiser le code pour la taille de la pile
VIII. Validation des hypothèses
IX. Conclusion et Bilan personnel
X. Bibliographie

Définir les mots clés  :


 Pile  : En informatique, une pile (en anglais stack) est une structure de
données fondée sur le principe « dernier arrivé, premier sorti » (en
anglais LIFO pour last in, first out), ce qui veut dire, qu'en général, le dernier élément,
ajouté à la pile, sera le premier à en sortir .
 En informatique, la pile d’exécution (souvent abrégée en la pile ; en anglais, call
stack) est une structure de données de type pile qui sert à enregistrer des
informations au sujet des fonctions actives dans un programme informatique1
 L'allocation de mémoire vive désigne les techniques et les algorithmes sous-jacents
permettant de réserver de la mémoire vive à un programme informatique pour son
exécution.

Analyse des ressources  :


La pile  :
La plupart des microprocesseurs gèrent nativement une pile pour les appels de routine.
Elle correspond alors à une zone de la mémoire, et le processeur retient l'adresse du
dernier élément.

La pile est une zone de RAM où un programme stocke des données temporaires lors
de l'exécution de blocs de code
Les types de données stockées dans la pile incluent :

 variables locales.
 Adresses de retour.
 arguments de fonction.
 Temporaires du compilateur.
 Contexts d’interruption.

La mémoire de la pile doit être allouée statiquement par le


développeur. La pile croît généralement vers le bas en mémoire. Si la zone
mémoire allouée à la pile n'est pas assez grande, le code d'exécution écrit
dans la zone allouée sous la pile et une situation de débordement se
produit. La zone d'écriture est généralement la zone où les variables
globales et statiques sont stockées. Par conséquent, la sous-estimation
de l'utilisation de la pile peut entraîner de graves erreurs d'exécution
telles que des variables écrasées, des pointeurs sauvages et des adresses
de retour corrompues. Toutes ces erreurs peuvent être difficiles à
trouver. Dans le même temps, la surestimation de l'utilisation de la pile
gaspille des ressources mémoire, ce qui augmente les coûts.
Lorsque les données à stocker sont supérieures à la capacité de la pile, elles sont
généralement écrites dans la zone mémoire allouée aux variables globales et statiques.

La pile

 Accès très rapide

 Ne devez pas explicitement désallouer des variables

 L’espace est géré efficacement par le processeur, la mémoire ne sera pas fragmentée

 Variables locales uniquement.

 Limite sur la taille de la pile (dépend du système d’exploitation).

 Les variables ne peuvent pas être redimensionnées.

 
Le tas

 Les variables sont accessibles globalement

 Pas de limite sur la taille de la mémoire

 Accès (relativement) plus lent

 L’utilisation efficace de l’espace n’est pas garantie, la mémoire peut se fragmenter

dans le temps lorsque des blocs de mémoire sont alloués, puis libérés
 Vous devez gérer la mémoire (vous êtes responsable de l’allocation et de la libération

des variables)

 Les variables peuvent être redimensionnées en utilisant realloc()

Les bibliothèques  :
Une bibliothèque est un ensemble de fonctions qui s’ajoutent aux fonctions
de base du logiciel de l’Arduino et qui adressent plus particulièrement un
domaine spécifique de la programmation.

Par exemple :

 EEPROM - lire et écrire dans cette zone de mémoire permanente du


microcontrôleur ;
 Ethernet - accéder à un réseau TCP/IP comme Internet, mais ça peut
être aussi un réseau local à votre domicile, avec l’aide de la carte
Ethernet ;
 Liquid Crystal - utiliser un écran LCD ;
 SD - lire et écrire une carte SD de technologie flash et formatée en
FAT16 ou FAT32, sauf reformatage de votre part, toutes les cartes
SD le sont ;
 Servo - piloter des servo mécanismes ;
 WiFi - se connecter à un réseau sans fil à partir d’une carte WiFi ;
 Wire - Communiquer entre Arduino et avec des périphériques
capteurs, actionneurs avec le protocole I2C.
Ces bibliothèques sont installées en même temps que l’IDE.

IDE : c’est le logiciel qui nous permet de programmer notre carte Arduino
Livrable :

Analyse :
Cet algorithme est un pseudo code qui enregistre des données acquisespar les capteurs
dans une tableau à l’aide de fonction.

Premièrement, nous avons convertit le code de l’algorithme en code fonctionnelle en C Arduino .


Je pense que la résultat est fausse parce que la taille est très négligeable par rapport a
notre code

Validation des hypothèses :


 Faire une allocation dynamique
 Utiliser la bibliothèque StdLib
 La taille de la pile d’exécution sera trop grande avec le code de base
 Faire une optimisation spatiale
 Utiliser les pointeurs
 Définir les structures
 Variable statique  Variable globale
 Organiser la mémoire de la pile d’exécution

Vous aimerez peut-être aussi