Skip to main content

Cos'è la falsa condivisione?

La falsa condivisione è una situazione che può verificarsi in un programma per computer quando due applicazioni che eseguono contemporaneamente tentano di accedere alle informazioni nella stessa regione di memoria logica che ciascun programma o processo ha archiviato nella propria cache.I dati nella cache di ciascuna applicazione vengono copiati da una fonte comune, quindi la modifica di una cache fa ricaricare l'altra dalla fonte.Il falso aspetto della condivisione sorge quando le modifiche apportate alla riga della cache da un programma non influiscono effettivamente i dati che il secondo programma sta utilizzando, nel qual caso costringere la cache è uno spreco di risorse di sistema e può influire negativamente sule prestazioni del programma.Il problema della falsa condivisione è difficile da rilevare, perché non è un risultato diretto di qualsiasi codice contenuto all'interno delle applicazioni, sebbene ci siano modi efficaci per prevenire la falsa condivisione, come lo spostamento dei dati che si trovano in una linea attualmente memorizzata nella cache su una linea separata.

Si trova uno dei motivi principali per cui si può verificare false condivisione su come un sistema operativo o hardware gestisce i dati di lettura e scrittura.Quando le informazioni da un disco rigido o altra fonte vengono lette o scritte da un programma, di solito vengono caricate in una cache temporanea in modo da poter accedere rapidamente.La quantità di informazioni memorizzata nella cache dalla posizione della sorgente è chiamata linea cache ed è un blocco logico di memoria che normalmente può essere tra 2 byte e 256 byte di lunghezza.In base a alcuni sistemi operativi o architetture di sistema, i programmi sono in grado di eseguire contemporaneamente, ad esempio nell'elaborazione parallela.Ciò significa che è possibile che due programmi separati tentino di accedere alle informazioni nella stessa linea di cache, quindi ogni programma avrà una propria copia dei dati di origine, causando potenzialmente le modifiche in una cache da non riflettere nell'altra cache, invalidando ilDati che contiene.

Esistono numerosi meccanismi impiegati per gestire la situazione in cui due programmi tentano di accedere alla stessa linea di cache, ma il risultato più spesso è che un programma è costretto a ricaricare la sua cache con le informazioni aggiornate l'altro programmaha modificato.Questo tipo di incidente è noto come falsa condivisione quando i dati all'interno della linea della cache a cui ogni programma accede non sono correlati, quindi costringere un programma a ricaricare la cache è uno spreco di potenza di elaborazione e altre risorse.Questo più spesso è un problema per un programma che non modificherà mai le informazioni nella sua cache, quindi non vi è alcun rischio che l'applicazione sovrascrivesse le modifiche all'altro processo.

Esistono due modi prevalenti per prevenire o mitigare gli effetti di Falsecondivisione.Il primo è quello di aggiungere informazioni vuote prima o dopo i dati in memoria, costringendole essenzialmente a una linea di cache separata a cui non viene accessibile da un altro programma.Il secondo metodo è limitare la frequenza di lettura e scrittura sulla linea della cache in modo che venga ricaricato il meno possibile.Soluzioni più complesse prevedono una gestione a livello di cache o addirittura modifiche a come un sistema operativo gestisce la condivisione.