Cache

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Notă despre dezambiguizare.svg Dezambiguizare - Dacă sunteți în căutarea altor semnificații, consultați Cache (dezambiguizare) .

Termenul cache, în informatică , indică o zonă de memorie extrem de rapidă, dar, de obicei, cu un ordin de mărime scăzut al capacității. Scopul său este de a accelera executarea programelor .

Un exemplu este memoria cache , utilizată pentru recuperarea rapidă a datelor și programelor care se așteaptă să fie utilizate pe termen scurt.

Etimologie și pronunție

„Cache” este o adaptare în engleză a termenului francez „caché” (în italiană „ascuns”). De obicei se pronunță / ˈkaʃ / (influențat de engleză / ˈkæʃ / ). Originea numelui derivă din faptul că cache-ul și utilizarea acestuia sunt „transparente” pentru programator, în practică „ascunse” deoarece sunt administrate direct de sistemul de operare sau de hardware .

Descriere

O memorie cache este asociată cu memoria principală, unde se află datele. De obicei are o capacitate mai mică decât memoria principală, dar utilizarea sa este mai convenabilă în ceea ce privește timpul de acces și / sau încărcarea sistemului.

Când este necesar accesul la date, se caută mai întâi o copie a acesteia în cache: dacă este prezentă și valabilă, se folosește această copie; în caz contrar, datele sunt preluate din memoria principală și stocate în memoria cache, în cazul în care pot fi utilizate ulterior.

Memoria principală poate fi hardware precum o memorie RAM (procesor principal) sau un hard disk , dar și o bază de date distribuită complexă, cum ar fi DNS sau web . În aceste cazuri, memoria principală poate fi schimbată fără a trece prin cache, ceea ce duce la probleme de consistență între datele „originale” și datele din cache - o posibilă nealiniere.

În unele cazuri, este posibil să validați datele conținute în cache interogând memoria principală pentru a vedea dacă este încă sincronizată și corectă. Aceasta este sarcina pe care o realizează pe web, de exemplu, serverele proxy : întreabă serverul HTTP dacă pagina pe care o dețin a fost modificată după ce a fost stocată și, dacă nu, evită transferul și o propun din nou direct clientului .

În alte cazuri, se utilizează un mecanism de expirare temporizată pentru datele stocate și până când datele din cache au expirat, este utilizat, chiar dacă nu se potrivește cu ceea ce este prezent în memoria principală. Acesta este mecanismul adoptat de DNS.

Un cache reduce sarcina de solicitare care trebuie ștearsă din memoria principală și din legătura dintre acesta și utilizatorul de date. Acest lucru poate ajuta, de asemenea, la îmbunătățirea performanței sistemului. De exemplu, gândiți-vă la un server proxy utilizat de mulți utilizatori: atunci când un utilizator solicită o pagină care fusese deja solicitată de un altul, proxy-ul va putea răspunde fără a fi nevoie să se conecteze la site-ul original și, astfel, să evite încărcarea atât a originalului site-ului și rețelei, îmbunătățind astfel performanța sistemului chiar și pentru cererile care trebuie redirecționate către site-urile originale.

Un cache utilizează un algoritm pentru a decide ce date să păstreze și pe care să le arunce, care ia în considerare cele mai recente pagini utilizate, contiguitatea paginilor sau alți factori.

O memorie cache poate indexa datele stocate pe baza adresei sale (un bloc de memorie sau date de pe hard disk) sau „nume” (memorie cache asociativă, cum ar fi o pagină web sau un nume DNS ).

În unele cazuri, memoria cache acceptă și modificarea datelor. Acest lucru este simplu de implementat dacă cache-ul este singura cale de acces la memoria principală, ca în cazul cache-ului de memorie RAM prezent în procesoare: cache-ul „acceptă” o operație de scriere pe RAM, permițând procesorului să continue procesarea , prezintă imediat procesorului datele actualizate dacă cere să fie citite din nou și are grijă să le scrie pe RAM înainte de a șterge pagina. În acest fel, dacă datele din memorie sunt modificate frecvent de procesor, este posibilă păstrarea modificărilor în cache și evitarea transferurilor continue către RAM (vezi Coerența cache-ului ).

Toate tipurile de cache stocate pe memoria non-volatilă pot fi ușor eliminate fie acționând direct în folderele respective, fie utilizând comenzile sistemului de operare sau ale aplicației sau utilizând unul dintre numeroasele produse de curățare terță parte [1], cum ar fi, de exemplu, CCleaner .

Tipologie

Termenul cache preia semnificații diferite în funcție de termenul cu care este asociat și în funcție de context. Așadar, să vorbim despre: Memoria cache , Memoria cache, TLB - Traducere Lookaside Buffer (Pagina Tabel cache, Branch Prediction cache, Branch history table, Branch Target Address Cache, Trace cache), care sunt amintiri fizice.

Altele sunt amintiri gestionate de software pentru a stoca date temporare în spații MM rezervate, cum ar fi: Disk cache, Page cache, System cache, Application cache, Database cache , Web cache , DNS cache , Browser cache, Router cache etc.

Unele dintre acestea din urmă sunt doar tampoane , adică memorii neasociative cu acces secvențial (șiruri de date) comparativ cu accesările aleatorii prin asociații de adrese de memorie-cache ale cache-urilor clasice.

Memorie cache

Pictogramă lupă mgx2.svg Același subiect în detaliu: memoria cache .

Este folosit pentru a accelera accesul la locațiile de memorie RAM cele mai frecvent utilizate și în special în sistemele multiprocesor cu memorie partajată (partajată), pentru a reduce magistrala de sistem și traficul de memorie principală, care este unul dintre blocajele majore ale acestor sisteme. Aceasta este o cantitate mică de memorie rapidă instalată direct pe sau în imediata apropiere a procesorului. Această memorie este utilizată pentru a stoca instrucțiunile unui program și date despre cine să opereze. Este utilizată memoria de tip SRAM (comparativ cu o memorie principală DRAM ) datorită vitezei sale de acces mai mari. Din punct de vedere istoric, acesta a fost primul cache utilizat. Această memorie era (și se numește în continuare) „Memorie cache” sau „Memorie cache” sau pur și simplu „ cache ”. Uneori, dar foarte rar, acest lucru se mai numește, cu un termen inadecvat, „ cache CPU ” (vezi nota din memoria cache ). Pe de altă parte, toate celelalte cache-uri, care stochează alte tipuri de date, sunt întotdeauna definite prin asocierea funcției lor cu termenul „ cache ”.

Memoria cache a paginii

Constă în a avea o parte din memoria RAM utilizată de sistemul de operare în care datele utilizate în prezent sunt copiate de pe hard disk. În acest caz, accesul RAM este mai rapid decât accesul la disc. Deoarece memoria disponibilă este în general limitată, sistemul de operare încearcă să păstreze o pagină în memorie cât mai mult posibil, menținând un tabel de pagini care nu sunt utilizate în prezent, dar au fost în trecut. Atunci când trebuie încărcată o pagină nouă, cea mai veche care nu este încă utilizată va fi suprascrisă.

Cache de disc

Acesta constă în a avea un hard disk care are o parte din RAM în interiorul său, unde pot fi încărcate sectoarele discului în mod logic contigu cu cel necesar. Când discul este accesat în modul de citire, dacă datele necesare sunt prezente în cache, mișcarea capului de citire a discului este evitată, accelerând recuperarea informațiilor și contribuind la reducerea uzurii pe disc în sine.

Cache DNS

Pictogramă lupă mgx2.svg Același subiect în detaliu: Sistem de nume de domeniu § Caching .

Este un server DNS care nu are informații autoritare, dar este capabil să solicite serverele autorizate și să stocheze răspunsurile. Serverele DNS utilizate de utilizatorii de Internet sunt de obicei servere cache. DNS folosește un mecanism de expirare, prin care fiecare înregistrare preluată de pe un server autorizat este valabilă pentru un anumit timp, după care trebuie aruncată.

Cache web

Pictogramă lupă mgx2.svg Același subiect în detaliu: cache web .

Este o parte a hard diskului dedicată de un server proxy http sau de browserul unui utilizator, pentru a salva paginile pe măsură ce acestea sunt încărcate în timpul navigării, ceea ce poate fi re-propus fără a fi nevoie să solicitați din nou sistemul de la distanță. În acest caz, blocajul pe care doriți să îl eliminați este cel al benzii largi. Cu toate acestea, operațiunea de stocare în cache a unei pagini nu este întotdeauna legitimă: gândiți-vă, de exemplu, la momentul în care efectuați o operațiune bancară online. În general, este aceeași pagină web care este trimisă împreună cu instrucțiuni despre utilizarea sa posibilă într-un cache; în unele cazuri, puteți forța browserul să reîncărce pagina ținând apăsată tasta „ctrl” sau „Shift” în timp ce faceți clic pe pictograma reîncărcare.

Cache Google

Mai bine cache-ul motorului de căutare , acesta constă din copii ale paginilor web salvate pe serverele unui motor de căutare. Acestea sunt utilizate din două motive: pentru a efectua căutări locale în cadrul paginilor și pentru a oferi posibilitatea de a vedea o copie, chiar dacă nu este actualizată, a unei pagini care nu este disponibilă, din cauza unor probleme de moment sau pentru că a fost eliminată de pe serverul original.

Memoria cache a browserului

Browserele utilizate pe orice dispozitiv păstrează, pe lângă istoricul de navigare, numele de utilizator și parolele introduse, cookie-urile și datele site-ului, informații pentru completarea formularelor, chiar și memoria cache. Aceasta este reprezentată de conținutul navigat: fișiere, imagini, texte etc. Această memorie cache poate fi ușor eliminată fie prin ștergerea, în folderele utilizatorului, a elementelor individuale, atât prin utilizarea comenzilor browserului, cât și prin utilizarea așa-numitelor „produse de curățare”.

Existența acestui cache facilitează și personalizează experiența de navigare. Evident, când este șters, paginile încărcate „își pierd” înregistrările anterioare.

Memorii cache specifice

Orice sistem de operare [2] , indiferent de tipul dispozitivului, utilizează conceptul de cache în mai multe scopuri. Unele cache pot fi ușor șterse (fie direct, fie folosind produse de curățat), altele, pe de altă parte, sunt, ca să spunem așa, semi-permanente în sensul că datele lor sunt stocate în folderele / fișierele sistemului sau în bazele de date de configurare (cum ar fi „ registru „ Windows ). Prin urmare, curățarea cache-urilor de acest tip necesită de obicei o operare avansată. Pentru unele sisteme, este chiar necesar să efectuați o resetare pentru a șterge anumite cache.

În acest caz, cache-ul are funcția de a optimiza experiența utilizatorului. În practică, utilizarea dispozitivului se face mai rapid, mai ușor și mai personalizat.

Exemple de cache-uri ale sistemului de operare sunt:

  • cuvinte de căutare introduse și selectate (caseta „căutare” sau „căutare”)
  • fișiere temporare
  • imagini încărcate anterior pentru tapet, ecran de blocare, ecran de conectare, economizor de ecran, profil de utilizator sau cont, pictograme etc.
  • căile instalațiilor periferice
  • previzualizări ale imaginilor, videoclipurilor, documentelor, astfel încât acestea să fie afișate mai rapid la deschiderea folderului care le conține
  • comenzi tastate și executate
  • setări stocate de: bare, notificări, meniuri, liste, istorice etc.
  • dimensiunile ferestrelor și setările grafice aferente
  • informații (date, fișiere, diverse conținuturi) utilizate de aplicații sau de sistemul de operare (așa-numitele „recente” sau jurnale)
  • date despre cele mai utilizate programe (utilizate pentru creșterea vitezei de deschidere)
  • referințe la aplicații și periferice dezinstalate (drivere)
  • imagini ale „stărilor” anterioare ale sistemului, cum ar fi în cazul restaurării, actualizării, resetării sau reinstalării
  • accesări făcute la foldere și fișiere, căi și dispozitive de rețea, utilizatori, periferice, diverse servicii
  • informații despre accesurile la domeniu
  • Cheie și parolă de criptare recuperare dispozitiv TPM

Probleme legate de utilizare

A avea o memorie cache poate complica foarte mult proiectarea unui dispozitiv electronic sau a unui software de gestionare, deoarece este necesar să se mențină coerența între memoria cache și memoria principală. Acest lucru este văzut mai ales în mașinile multiprocesor în care dezvoltarea procesorelor și a plăcilor de bază trebuie să ia în considerare potențialele probleme de coerență a cache-ului și trebuie să ofere mecanisme adecvate pentru a evita corupția datelor din cauza problemelor de sincronizare între cache și memoria principală.

În plus, software-ul de gestionare a memoriei cache trebuie să fie extrem de sofisticat atât în ​​implementare, cât și în strategia de recuperare a datelor (algoritmul), pentru a evita așa-numitul overhead de recuperare. Practic, nu trebuie să se întâmple niciodată ca căutarea sau stocarea unei date de memorie cache să utilizeze resurse (în special timp), astfel încât recuperarea însăși să fie prea împovărătoare, ceea ce, paradoxal, ar deveni mai convenabil din memoria RAM.

În general, algoritmii de gestionare a datelor cache sunt legați de două concepte fundamentale:

  1. localitatea codului
  2. ștergerea celor mai puțin utilizate date din cache

Primul aspect este direct legat de elaborarea codului care afectează paginile de memorie bine definite în fiecare fază de procesare: odată ce procesarea unei anumite părți a codului a fost finalizată, paginile de memorie utilizate nu ar trebui să mai fie referite în așa fel pentru a schimba locația codului, dar și a datelor care vor fi utilizate din acel moment.

Al doilea aspect, prin urmare, prevede că o dată prezentă în cache și aparținând unei pagini de memorie la care se face referire atunci când locația codului era diferită poate fi ștearsă din cache pentru a face loc pentru datele referitoare la locația curentă a codului.

Notă

  1. ^ Acest lucru nu se aplică iOS .
  2. ^ Trebuie remarcat faptul că Windows, Linux și Android oferă comenzi pentru a șterge memoria cache sau, în orice caz, permite aplicațiilor terțe să facă acest lucru, chiar și în profunzime. Cu sistemele Apple, este istoric complicat, dacă nu deliberat imposibil (resetarea trebuie efectuată).

Elemente conexe

linkuri externe

Controlul autorității LCCN (EN) sh88007957 · GND (DE) 4362843-6
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT