Memorie tampon

În procesarea datelor , o memorie tampon , desemnată în mod obișnuit prin termenul englezesc tampon , este o zonă de memorie sau disc cu acces aleatoriu utilizat pentru stocarea temporară a datelor , în special între două procese sau echipamente care nu funcționează la aceeași viteză.

Descriere

Datorită diferenței de viteză dintre procesor și periferic, datele trimise către un periferic (intern sau extern) sunt cel mai adesea stocate în tampoane în așteptarea trimiterii efective la periferic, pentru a economisi computerul așteptarea datorită diferenței de debit între interne microprocesor și diverse periferice adesea lente. De asemenea, datele primite din exterior sunt cel mai adesea colectate în tampoane, în așteptarea prelucrării lor de către computer (din motive de eficiență și, de asemenea, pentru a evita recepționarea unor date prea apropiate, ceea ce face ca unele, netratate, să nu se piardă).

Dispozitivele, cum ar fi porturile seriale, sunt cel mai adesea echipate cu buffere de coadă  : datele primite sau primite sunt prelucrate mai întâi. O transmisie prea rapidă poate umple tamponul; procesul de trimitere este apoi în general blocat. Recepția prea rapidă poate bloca tamponul, cu riscul pierderii datelor; prin urmare, un dispozitiv de control al debitului este adesea folosit, spunând emițătorului să oprească transmisia atunci când tamponul este periculos de aproape de limită și să pornească din nou când nivelul a devenit din nou acceptabil.

utilizare

În unele limbaje de programare, cum ar fi C , bufferele sunt utilizate sistematic pentru a regla I / O , de exemplu, citirea sau scrierea într-un fișier. Concret, bufferul este un șir de caractere însoțit de un index sau un pointer care desemnează poziția curentă de citire. În cazul unei scrieri, conținutul bufferului este copiat parțial sau integral în ieșire, apoi este actualizat și procesul se repetă de un anumit număr de ori; în cazul unei citiri, la fiecare pas, o parte a intrării este copiată în buffer pentru utilizare. Acest sistem limitează apelurile de sistem de citire și scriere , care sunt mult mai lente decât alte tipuri de instrucțiuni. Programatorul care dorește să forțeze spălarea bufferului pentru un anumit scop va face bine să examineze comanda fflush din biblioteca standard .

Note și referințe

  1. Vezi de ex. JM Helary și R. Pedrono , Cercetare operațională: Lucrare regizată , Paris, Hermann , col.  „Metode”,1983, 352  p. ( ISBN  2-7056-5955-2 ) , p.  16, 83, 269
  2. (în) Brian Kernighan și Dennis Ritchie , Limbajul de programare C [ ediții cu amănuntul ], pp. 246-247
  3. Cf. Claude Delannoy , Programare în limbaj C: cursuri și exerciții corectate , Eyrolles ,2006( repr.  5, 2009) ( ISBN  978-2-212-11072-2 ) , p.  57
  4. A se vedea PJ Plauger , Biblioteca Standard C , Prentice Hall ,1992, 498  p. ( ISBN  0-13-838012-0 ) , „12. stdio.h”, p.  236-237

Vezi și tu