Ricerca

2.2. Ticket Spinlocks

download PDF
Molta importanza in qualsiasi design è quello di assicurare che un processo non alteri la memoria usata da un altro processo. Modifiche non controllate dei dati in memoria possono risultare in una loro corruzione ed eventuale crash del sistema. Per impedire il verificarsi di queste situazioni il sistema operativo permette ad un processo di bloccare una sezione di memoria, eseguire una operazione e sblocare o "liberare" la sezione interessata.
Una implementazione comune del blocco della memoria viene eseguita tramite spin locks, i quali permettono ad un processo di controllare la disponibilità di un blocco e prenderlo appena quest'ultimo risulta disponibile. In presenza di processi multipli in competizione tra loro per lo stesso blocco, il primo processo che esegue la richiesta otterrà l'uso del blocco. Quando tutti i processi hanno lo stesso accesso alla memoria, questo tipo di impostazione risulta essere la più "imparziale".
Sfortunatamente su un sistema NUMA non tutti i processi hanno un accesso simile ai blocchi. I processi presenti sullo stesso nodo NUMA del blocco, hanno un vantaggio nell'ottenere il blocco rispetto ad altri processi. I processi su nodi NUMA remoti spesso presentano un lock starvation il quale impatta negativamente sulle rispettive prestazioni.
Per risolvere questo problema Red Hat Enterprise Linux implementa i ticket spinlocks. Questa funzione apporta un meccanismo di prenotazione per il blocco, e permette a tutti i processi di ottenere il blocco seguendo un ordine basato sulla cronologia delle richieste. Questa impostazione elimina il problema relativo ai tempi della richiesta e di imparzialità.
Anche se un ticket spinlock presenta un overhead maggiore rispetto ad un spinlock ordinario, esso risulta essere quello più idoneo nei sistemi NUMA.
Red Hat logoGithubRedditYoutubeTwitter

Formazione

Prova, acquista e vendi

Community

Informazioni sulla documentazione di Red Hat

Aiutiamo gli utenti Red Hat a innovarsi e raggiungere i propri obiettivi con i nostri prodotti e servizi grazie a contenuti di cui possono fidarsi.

Rendiamo l’open source più inclusivo

Red Hat si impegna a sostituire il linguaggio problematico nel codice, nella documentazione e nelle proprietà web. Per maggiori dettagli, visita ilBlog di Red Hat.

Informazioni su Red Hat

Forniamo soluzioni consolidate che rendono più semplice per le aziende lavorare su piattaforme e ambienti diversi, dal datacenter centrale all'edge della rete.

© 2024 Red Hat, Inc.