Cours:InfoEmbarqueeThread : Différence entre versions
Ligne 14 : | Ligne 14 : | ||
==Processus== | ==Processus== | ||
+ | Le lancement d'un programme sous Unix (norme [https://fr.wikipedia.org/wiki/POSIX posix] ) entraîne la création d'un nouveau processus et donc l'allocation d'une zone mémoire avec plusieurs parties : | ||
[[Image:ProcessusUnix.gif]] | [[Image:ProcessusUnix.gif]] | ||
+ | |||
+ | *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 ) | ||
==Thread== | ==Thread== |
Version du 20 septembre 2023 à 16:41
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) |
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 )