[004 Système d'exploitation] Quelles ressources sont partagées par les threads ? La pile est-elle unique en elle-même ?

Les ressources partagées sont :

  • tas. Puisque le tas est ouvert dans l'espace de processus, il est partagé systématiquement ; par conséquent, tout ce qui est nouveau est partagé (les plates-formes 16 bits sont divisées en tas global et tas local, et le tas local est exclusif).
  • Variables globales. Cela n'a rien à voir avec une fonction spécifique, donc cela n'a rien à voir avec un thread spécifique ; par conséquent, il est également partagé.
  • variables statiques. Bien que les variables locales soient "placées" dans une certaine fonction du code, leurs emplacements de stockage sont les mêmes que les variables globales. Elles sont stockées dans les sections .bss et .data ouvertes dans le tas et sont partagées.
  • fichiers et autres ressources publiques. Ceci est partagé et les threads utilisant ces ressources publiques doivent être synchronisés. Win32 propose plusieurs façons de synchroniser les ressources, notamment les signaux, les sections critiques, les événements et les mutex.

Les ressources exclusives comprennent :

  • empiler. La pile est exclusive.
  • registre. Cela peut être mal compris, car les registres de l'ordinateur sont physiques, n'est-il pas différent pour chaque thread d'obtenir la valeur ? En fait, ce qui est stocké dans le thread est une copie, y compris le compteur du programme PC.
     

Je suppose que tu aimes

Origine blog.csdn.net/qq_41709234/article/details/132312384
conseillé
Classement