Cours:InfoEmbarqueeThread : Différence entre versions
Ligne 10 : | Ligne 10 : | ||
|- | |- | ||
| Heap (tas) || sans objet || allocation dynamique || un peu moins rapide (gestion du tas, partage entre thread => doit être thread-safe) | | Heap (tas) || sans objet || allocation dynamique || un peu moins rapide (gestion du tas, partage entre thread => doit être thread-safe) | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! utilisation de la pile !! utilisation du tas | ||
+ | |- | ||
+ | | | ||
+ | <source lang=cpp> | ||
+ | |||
+ | int f1(int n) | ||
+ | { | ||
+ | int res; | ||
+ | res= ...n1; | ||
+ | return res; | ||
+ | } | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | int a,b; | ||
+ | b=f1(a); | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | || | ||
+ | |||
|} | |} | ||
Version du 20 septembre 2023 à 16:49
Sommaire
Kesako
Pile/Tas
zone mémoire | Taille | Usage | Performances |
---|---|---|---|
Stack (pile) | fixe | variables/paramètres ... des fonctions | selon mémoire |
Heap (tas) | sans objet | allocation dynamique | un peu moins rapide (gestion du tas, partage entre thread => doit être thread-safe) |
utilisation de la pile | utilisation du tas |
---|---|
int f1(int n)
{
int res;
res= ...n1;
return res;
}
int main()
{
int a,b;
b=f1(a);
}
|
Processus
Le lancement d'un programme sous Unix (norme posix ) entraîne la création d'un nouveau processus et donc l'allocation d'une zone mémoire avec plusieurs parties :
- le segment texte qui contient le programme exécutable
- le segment statique qui contient les objets globaux et statiques
- le segment de pile ( stack ) qui contient les données des fonctions
- le segment de tas ( heap ) qui contient les données allouées dynamiquement ( new / malloc )