Non-Uniform Memory Access: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 15:
Oramai qualsiasi processore è dotato di una piccola zona di memoria molto veloce ad accesso esclusivo chiamata cache. Queste cache migliorano le prestazioni del sistema perché sfruttano il [[principio di località]] dei programmi ma la loro gestione introduce un notevole carico di lavoro aggiuntivo all'architettura NUMA.
 
Sebbene semplice da progettare un'architettura NUMA senza cache non viene normalmente implementata date le scarse prestazioni del sistema. Un architettura NUMA che non mantenga le cache coerenti sarebbe anch'essa semplice da progettare ma la sua programmazione sarebbe praticamente impossibile. Quindi tutte le architetture NUMA hanno al loro interno hanno dei meccanismi hardware che provvedono a gestire la coerenza delle cache, queste architetture sono chiamate '''ccNUMA'''.
 
Questi sistemi normalmente utilizzano comunicazioni inter-prcessointerprocesso tra i gestori delle cache che tengono traccia del fatto che più processori abbinoabbiano copie della stessa zona di memoria e questi provvenodo a invalidare le cache se uno dei processori modifica una di queste zone di memoria controllate.
Per questa ragione le architetture NUMA forniscono delle prestazioni scarse se i processori accedono alle stesse zone di memoria in rapida successione.
I [[sistema operativo|sistemi operativi]] che sopportano le architetture NUMA cercano di ridurre il problema allocando i processi in modo da sfruttare la divisione dell'architettura e fornendo algoritmi di gestione e di bloccaggio della memoria in modo da ridurre gli accessi contemporanei alla stessa zona di memoria.