Cours:InfoEmbarqueeThread : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
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 à 17:49

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 :

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

ThreadPosix.png

spécialisation de la classe QThread

Mutex

Ressources