In informatica, la memoria condivisa è la capacità di memoria a cui è possibile accedere e utilizzare contemporaneamente da un numero di programmi diversi, consentendo a tali programmi di condividere dati ed evitare la creazione di copie ridondanti delle stesse informazioni. I programmi possono essere impostati per funzionare su processori diversi o utilizzano tutti lo stesso processore. A volte noto come calcolo simultaneo o calcolo parallelo, questo approccio consente a più utenti di condividere i dati senza la necessità di copiarli in un programma diverso, un approccio che aiuta a risparmiare tempo agli utenti finali e consente anche un uso più efficiente delle risorse di sistema.
In genere, la memoria condivisa in relazione all’hardware effettivo si riferisce all’uso di blocchi della memoria ad accesso casuale (RAM) disponibile su un determinato sistema di computer a più processori. In questo ambiente più processori differenti possono utilizzare la memoria disponibile senza creare alcun tipo di interferenza o riduzione di efficienza per gli altri processori. Ciò significa che tutti i processori stanno essenzialmente lavorando sullo stesso insieme di programmi senza rallentare le attività effettive che vengono eseguite da ciascun processore.
C’è la possibilità che almeno alcuni problemi possano svilupparsi con l’uso di una configurazione di memoria condivisa. Questo approccio presenta alcune limitazioni in termini di quante unità di elaborazione possono essere effettivamente incluse nel sistema multiprocessore. Questo perché i processori a volte memorizzano nella cache. Con un numero inferiore di processori coinvolti, ciò non influisce in modo significativo sull’efficienza del sistema. Per evitare questo tipo di problema, è imperativo assicurarsi che la quantità di memoria ad accesso casuale disponibile sul sistema sia mantenuta proporzionalmente maggiore del numero di processori. Ciò contribuirà a prevenire lo sviluppo di qualsiasi tipo di problema di ridimensionamento o prioritizzazione e a mantenere le prestazioni del sistema con un’efficienza non ottimale anche durante i periodi di picco di utilizzo.
La memoria condivisa non è l’unico approccio possibile alla gestione delle attività eseguite da più processori. Una strategia diversa, nota come memoria distribuita, alloca essenzialmente la capacità di memoria a ciascun processore attualmente in uso. Come con la memoria condivisa, esiste un certo potenziale per la creazione di colli di bottiglia, a seconda del numero di processori coinvolti e della natura delle attività attualmente in esecuzione. Esiste anche un approccio ibrido noto come memoria condivisa distribuita che cerca di sfruttare i punti di forza di entrambi gli approcci, riducendo al minimo il potenziale per lo sviluppo di eventuali problemi operativi.