font-the-27-club


Significato Cache - Glossario Informatico per Internet

Con il termine cache in informatica si indica un'area di memoria estremamente veloce ma solitamente di un basso ordine di grandezza di capacità. Il suo scopo è di velocizzare l'esecuzione dei programmi. 



Un esempio di cache è la Cache memory, utilizzata per recuperare velocemente dati e programmi che si prevede debbano essere utilizzati nel breve termine. 

Una cache è associata ad una memoria "principale", in cui risiedono i dati. Essa è tipicamente di capienza inferiore rispetto alla memoria principale, ma il suo utilizzo è più conveniente in termini di tempo di accesso e/o carico sul sistema. Quando è necessario l'accesso ad un dato, una copia di questo viene prima cercata nella cache: se è presente e valida, viene utilizzata tale copia; altrimenti il dato viene recuperato dalla memoria principale, e memorizzato nella cache, nel caso possa servire successivamente. La memoria principale può essere hardware come una RAM (memoria principale di un processore) o un disco rigido, ma anche un complesso database distribuito, come il DNS o il Web. In questi casi, la memoria principale può essere modificata senza passare dalla cache, il che comporta problemi di coerenza tra i dati "originali" e quelli nella cache, ovvero un possibile disallineamento. In alcuni casi è possibile convalidare i dati contenuti nella cache interrogando la memoria principale per verificare se sono ancora sincronizzati e corretti. Questo è compito che nel web, per esempio, fanno i server proxy: chiedono al server HTTP se la pagina che posseggono è stata modificata dopo la sua memorizzazione, e se non lo è evitano di trasferirla e la ripropongono direttamente al client. In altri casi, si utilizza un meccanismo di scadenza a tempo dei dati memorizzati, e fino a quando un dato presente nella cache non è scaduto questo viene utilizzato, anche se non corrisponde a quanto presente nella memoria principale. Questo è il meccanismo adottato dal DNS. Una cache riduce il carico di richieste che deve essere smaltito dalla memoria principale, e dal collegamento tra questa e l'utilizzatore dei dati. Anche questo può contribuire a migliorare le prestazioni del sistema. 


Si pensi per esempio ad un server proxy utilizzato da molti utenti: quando un utente richiede una pagina che era già stata richiesta da un altro, il proxy potrà rispondere senza doversi collegare al sito originale, ed eviterà così di caricare sia il sito originale che la rete, migliorando così le prestazioni del sistema anche per le richieste che devono essere inoltrate ai siti originali. Una cache utilizza un algoritmo per decidere quali dati mantenere e quali scartare, che tiene conto delle pagine utilizzate più di recente, della contiguità delle pagine, o di diversi altri fattori. Una cache può indicizzare i dati memorizzati sulla base del loro indirizzo (un blocco di memoria o di dati su disco fisso) o del loro "nome" (cache associativa, ad esempio una pagina Web o un nome DNS). In alcuni casi la memoria cache supporta anche la modifica dei dati. Questo è di implementazione semplice se la cache è l'unico percorso di accesso alla memoria principale, come nel caso della cache della memoria RAM presente nei processori: la cache "accetta" una operazione di scrittura verso la RAM, permettendo al processore di proseguire l'elaborazione, presenta subito al processore i dati aggiornati se questo ne chiede nuovamente la lettura, e si prende carico di scriverli sulla RAM prima di eliminare la pagina. In questo modo, se un dato in memoria è modificato frequentemente dal processore, è possibile mantenere le modifiche nella cache ed evitare continui trasferimenti verso la RAM (vedi Coerenza della cache). 

 Fonte Wikipedia

Posta un commento

0 Commenti