2.2. Ticket Spinlocks


Une partie clé de tout design de système consiste à s'assurer qu'aucun processus n'altère la mémoire utilisée par un autre processus. Des changements incontrôlés dans la mémoire peuvent provoquer la corruption de données et l'échec du système. Pour prévenir ceci, le système d'exploitation autorise un processus à verrouiller une portion de mémoire, à effectuer une opération, puis à déverrouiller, ou « libérer » la mémoire.
Une implémentation commune du verrouillage de la mémoire est avec les spin locks (ou verrous tournants), qui permettent à un processus de continuer à vérifier si un verrou est disponible et de prendre le verrou dès qu'il devient disponible. Si de multiples processus sont en compétition pour le même verrou, le premier à requérir le verrou une fois qu'il a été « libéré » l'obtiendra. Lorsque tous les processus ont le même accès à la mémoire, cette approche est « juste » et fonctionne plutôt bien.
Malheureusement, sur un système NUMA, tous les processus n'ont pas le même accès aux verrous. Les processus sur le même nœud NUMA que le verrou ont un avantage injuste pour obtenir le verrou. Les processus sur des nœuds NUMA distants seront en manque de verrous et leurs performances en seront dégradées.
Pour répondre à ce problème, Red Hat Enterprise Linux a implémenté « ticket spinlocks ». Cette fonctionnalité ajoute un mécanisme de file de réservation au verrou, permettant ainsi à tous les processus de prendre un verrou dans l'ordre dans lequel ils ont été requis. Cela élimine les problèmes de chronologie et les avantages injustes dans les requêtes de verrous.
Lorsqu'un « ticket spinlock » possède légèrement plus de temps système qu'un verrou tournant ordinaire, il évolue mieux et fournit des meilleures performances sur les systèmes NUMA.
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.