Maison > développement back-end > Golang > Les Split Stacks sont-elles nécessaires sur les architectures x86_64 ?

Les Split Stacks sont-elles nécessaires sur les architectures x86_64 ?

Patricia Arquette
Libérer: 2024-11-06 03:27:02
original
586 Les gens l'ont consulté

Are Split Stacks Necessary on x86_64 Architectures?

Split Stacks inutile sur x86_64 ?

Le sujet des split stacks dans les modèles d'exécution a soulevé des questions sur leur nécessité sur les architectures 64 bits comme x86_64. Certains avis suggèrent que les piles fractionnées ne sont plus nécessaires en raison de l'espace d'adressage élargi disponible.

Réponse à la question 1 : Interprétation des opinions

Oui, les opinions citées dans la question implique que les piles divisées ne sont pas nécessaires sur les architectures x86_64. Les références aux « millions de threads » et au « cas d'utilisation étroit » sur les systèmes 32 bits indiquent que le grand espace d'adressage des systèmes 64 bits peut accueillir un nombre suffisant de plages de pile.

Réponse à la question 2 : justification de l'inutilité

Les piles divisées ne sont plus nécessaires sur les architectures 64 bits en raison de l'espace d'adressage virtuel beaucoup plus grand. Cela permet à chaque pile de disposer d'une plage d'adresses dédiée et importante, comparable à l'ensemble de l'espace d'adressage de 32 bits.

Dans les modèles de mémoire plate modernes, l'unité matérielle de gestion de la mémoire (MMU) traduit les adresses virtuelles en adresses physiques. emplacements mémoire. Sur x86_64, il s'avère plus efficace d'allouer de grandes parties d'espace d'adressage virtuel à chaque pile et de mapper uniquement la page initiale à la RAM réelle.

Cette approche permet à la pile de croître et de se réduire selon les besoins, en utilisant des espaces virtuels contigus. adresses. Le système d'exploitation peut reconfigurer la MMU pour mapper des pages supplémentaires de mémoire virtuelle à la mémoire réelle à mesure que la pile augmente ou diminue au-delà des seuils spécifiés.

En sélectionnant soigneusement ces seuils, les piles peuvent se comporter comme des tableaux dynamiques avec O(1 ) complexité moyenne des opérations de pile. Ils conservent l'avantage de prendre en charge des millions de piles qui peuvent atteindre des tailles arbitraires tout en consommant uniquement la mémoire qu'elles utilisent.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal